青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

最近一直在學(xué)習(xí)ACE在內(nèi)存方面的資料,可以看了無數(shù)回,都記不住而且每次看都有點暈,現(xiàn)在我把有關(guān)自己的一些理解貼上來,希望對大家有些幫助。
首先我們要理解幾個概念:分配器、內(nèi)存池
分配器:就是分配內(nèi)存的方式,在C++中我們使用的是new,malloc等操作符,分配器就有點new和malloc的意思。ACE提供的很多豐富數(shù)據(jù)分配方式后面我會進行講述一些ACE的分配方式
內(nèi)存池:我們都知道在C++中我們使用new或malloc時候就是想系統(tǒng)提交一個需要內(nèi)存的申請,系統(tǒng)根據(jù)情況會給我分配需要的空間,在一般的應(yīng)用下是沒有問題,但是如果我們頻繁快速的申請和釋放就會帶來一個效率問題,這個時候我們就需要一個內(nèi)存池,一次性申請非常多的內(nèi)存供程序使用。這個時候問題就來了,我們怎么把這些內(nèi)存給程序中使用了,這個時候ACE的分配器就起作用了。

總體而言:內(nèi)存池申請一大塊內(nèi)存區(qū)域,而分配器來管理內(nèi)存池的區(qū)域分配與回收。這樣我們就減少了系統(tǒng)分配釋放內(nèi)存的次數(shù),同時這種做法也可以避免內(nèi)存泄漏。

分配器:

ACE_Allocator 
ACE中的分配器類的接口類。這些類使用繼承和動態(tài)綁定來提供靈活性。

ACE_Static_Allocator 
該分配器管理固定大小的內(nèi)存。每當收到分配內(nèi)存的請求時,它就移動內(nèi)部指針、以返回內(nèi)存chunk(“大塊”)。它還假定內(nèi)存一旦被分配,就再也不會被釋放。

ACE_Cached_Allocator 
該分配器預(yù)先分配內(nèi)存池,其中含有特定數(shù)目和大小的內(nèi)存chunk。這些chunk在內(nèi)部空閑表(free list)中進行維護,并在收到內(nèi)存請求(malloc())時被返回。當應(yīng)用調(diào)用free()時,chunk被歸還到內(nèi)部空閑表、而不是OS中。

ACE_New_Allocator 
為C++ new和delete操作符提供包裝的分配器,也就是,它在內(nèi)部使用new和delete操作符,以滿足動態(tài)內(nèi)存請求。

內(nèi)存池
ACE_MMAP_Memory_Pool       基于內(nèi)存映射的內(nèi)存池 
ACE_Lite_MMAP_Memory_Pool  基于內(nèi)存映射文件的內(nèi)存池的輕量級版本 
ACE_Shared_Memory_Pool     基于System V共享內(nèi)存的內(nèi)存池 
ACE_Local_Memory_Pool      基于C++new操作的內(nèi)存池 
ACE_Pagefile_Memory_Pool   基于從windows頁面文件分配的匿名內(nèi)存區(qū)內(nèi)存池 
ACE_Sbrk_Memory_Pool       基于sbrk(2)的內(nèi)存池 

下面我們通過一些簡單的代碼來說明分配器和內(nèi)存池的使用

ACE_Cached_Allocator 的使用:

int _tmain(int argc, _TCHAR* argv[])
{

// 申明一個數(shù)組類型
 typedef char MEMORY_BLOCK[1024];

//申明分配器 使用MEMORY_BLOCK的意思就是 ACE_Cached_Allocator中每一個chunk的長度為1024個字節(jié)
 typedef ACE_Cached_Allocator<MEMORY_BLOCK, ACE_SYNCH_MUTEX> Allocator;

 Allocator allocator_(10);
 char* mesg_array_ = (char*)allocator_.malloc(1025); // 如果我們需要的內(nèi)存大于每個chunk 那么就會分配失敗 這句話的執(zhí)行結(jié)果就是mesg_array_ == NULL
 char* mesg_array1 = (char*)allocator_.malloc(100); // 分配成功
 allocator_.free(mesg_array1); //釋放mesg_array1的內(nèi)存,實際上內(nèi)存并沒有釋放的OS,而是還停留在allocator_.中,如果有興趣你可以看看ACE的源代碼
 getchar();
 return 0;
}
從上面的DEMO我們可以看出ACE_Cached_Allocator 實際上也是一種內(nèi)存池,但是我們把它叫做分配器

下面我們來說明內(nèi)存池的使用:
內(nèi)存池一般我們與ACE_MALLOC和 ACE_Allocator_Adapter配合使用
typedef  ACE_Malloc<ACE_LOCAL_MEMORY_POOL, ACE_SYNCH_MUTEX> MUTEX_MALLOC;
typedef ACE_Allocator_Adapter<MUTEX_MALLOC> Mutex_Allocator;
那么我們操作Mutex_Allocator就跟操作分配一樣。通過malloc和free來分配釋放內(nèi)存
int _tmain(int argc, _TCHAR* argv[])
{

 typedef  ACE_Malloc<ACE_LOCAL_MEMORY_POOL, ACE_SYNCH_MUTEX> MUTEX_MALLOC;
 typedef ACE_Allocator_Adapter<MUTEX_MALLOC> Mutex_Allocator;

Mutex_Allocator allocator_;
 char* mesg_array_ = (char*)allocator_.malloc(1025); // 分配成功
 char* mesg_array1 = (char*)allocator_.malloc(100); // 分配成功
 allocator_.free(mesg_array1); //釋放mesg_array1的內(nèi)存
 getchar();
 return 0;
}
關(guān)于內(nèi)存池我也只懂的如何應(yīng)用可是我還是不知道,里面內(nèi)部的實現(xiàn)機制,就我個人理解而言,ACE的內(nèi)存池主要還是為了滿足進程間共享內(nèi)存過兩天我會把這方面的代碼貼出來。

posted on 2011-04-14 22:56 arrow8209 閱讀(1335) 評論(0)  編輯 收藏 引用

統(tǒng)計

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲高清资源综合久久精品| 亚洲国产毛片完整版| 久久精品夜色噜噜亚洲a∨| 亚洲在线播放电影| 亚洲欧美精品在线| 99在线精品免费视频九九视| 另类天堂视频在线观看| 久久国内精品视频| 久久精彩免费视频| 久热成人在线视频| 欧美精品在线观看一区二区| 欧美视频一区二区三区…| 国产精品日韩在线播放| 国模叶桐国产精品一区| 亚洲久久一区| 欧美在线精品免播放器视频| 久久综合一区二区三区| 亚洲国产美女| 亚洲图色在线| 噜噜噜躁狠狠躁狠狠精品视频 | 日韩亚洲视频| 亚洲影院在线观看| 噜噜噜噜噜久久久久久91| 亚洲美女av黄| 久久人人看视频| 国产精品美女主播| 亚洲人成在线播放网站岛国| 亚洲欧美日韩精品一区二区| 欧美黄色免费网站| 午夜精品区一区二区三| 欧美另类videos死尸| 韩国精品久久久999| 亚洲一区二区三区精品在线| 欧美91视频| 欧美与欧洲交xxxx免费观看| 欧美日韩在线播放一区二区| 亚洲国产精品成人va在线观看| 小黄鸭精品aⅴ导航网站入口| 欧美激情视频一区二区三区在线播放| 亚洲一区在线观看视频| 欧美久久婷婷综合色| 影音先锋另类| 久久丁香综合五月国产三级网站| 亚洲免费av网站| 欧美电影免费观看| 91久久久亚洲精品| 欧美jizzhd精品欧美喷水| 欧美在线你懂的| 国产人妖伪娘一区91| 亚洲视频精选| 日韩视频一区二区三区| 欧美精品激情blacked18| 亚洲国产精品一区| 蜜桃av一区二区| 久久久久久久一区二区| 黄网动漫久久久| 蜜臀va亚洲va欧美va天堂| 香蕉久久久久久久av网站| 国产精品久久久久久久久久久久久久| 99riav久久精品riav| 欧美日韩国产综合视频在线观看中文 | 久久久国产一区二区| 亚洲午夜精品久久| 国产精品成人观看视频国产奇米| 一本色道**综合亚洲精品蜜桃冫| 亚洲国产精品传媒在线观看| 久热精品视频在线免费观看| 亚洲成人在线视频网站| 欧美激情1区2区3区| 美国十次了思思久久精品导航| 亚洲福利视频网站| 欧美激情va永久在线播放| 乱码第一页成人| 亚洲无限av看| 亚洲欧美日韩综合aⅴ视频| 国产亚洲精品资源在线26u| 久久婷婷国产麻豆91天堂| 麻豆精品在线播放| 亚洲美女诱惑| 一区二区三区四区五区精品视频 | 国语自产偷拍精品视频偷| 免费h精品视频在线播放| 欧美sm重口味系列视频在线观看| 亚洲人成久久| 亚洲色诱最新| 一区二区亚洲精品| 亚洲精品欧美日韩| 国产偷自视频区视频一区二区| 免费观看一级特黄欧美大片| 欧美大片在线观看一区二区| 亚洲一区欧美二区| 久久精品国产久精国产爱| 日韩亚洲欧美成人一区| 亚洲欧美成人| aa亚洲婷婷| 久久精品人人做人人爽| 99精品视频网| 欧美中文字幕精品| 亚洲素人一区二区| 久久久爽爽爽美女图片| 亚洲视频欧洲视频| 老牛影视一区二区三区| 亚洲淫性视频| 蜜臀久久99精品久久久久久9 | 亚洲视频中文字幕| 在线免费观看日本一区| 日韩午夜高潮| 亚洲国内精品| 欧美中文在线字幕| 午夜久久资源| 欧美日韩亚洲视频| 欧美丰满少妇xxxbbb| 国产精品视频不卡| 亚洲一区二区在线视频| 亚洲视频在线看| 99riav国产精品| 另类av导航| 蜜臀久久99精品久久久久久9 | 快she精品国产999| 国产精品高潮呻吟视频| 亚洲国产欧美日韩另类综合| 国内免费精品永久在线视频| 亚洲你懂的在线视频| 亚洲天堂偷拍| 欧美日韩综合另类| 亚洲最黄网站| 亚洲视频狠狠| 欧美新色视频| 亚洲靠逼com| 正在播放欧美视频| 欧美另类久久久品| 亚洲人永久免费| 亚洲精品久久久久久一区二区| 久久精品免费观看| 久久综合激情| 在线精品在线| 欧美承认网站| 99国产精品久久| 亚洲欧美国产精品桃花| 国产精品嫩草99av在线| 亚洲一级高清| 欧美在线播放高清精品| 国产视频亚洲| 久久激情五月丁香伊人| 欧美chengren| 日韩午夜免费| 欧美午夜精品伦理| 亚洲一区免费网站| 久久精品日韩一区二区三区| 国产综合精品| 狼人天天伊人久久| 99国产精品国产精品久久| 香蕉视频成人在线观看| 狠久久av成人天堂| 欧美国产日韩精品| 亚洲性视频h| 美脚丝袜一区二区三区在线观看| 亚洲国产欧美日韩精品| 欧美日本一区| 亚洲欧美视频一区| 女人香蕉久久**毛片精品| 一二三区精品| 国产一区二区三区久久悠悠色av | 久久国产综合精品| 影音先锋日韩有码| 欧美三级电影精品| 欧美一级大片在线观看| 欧美激情bt| 午夜亚洲福利| 亚洲欧洲日夜超级视频| 国产精品久久久亚洲一区| 久久久久99| 亚洲一区二区高清| 欧美国产1区2区| 欧美一级精品大片| 亚洲美女区一区| 韩国v欧美v日本v亚洲v| 欧美日韩一区二区国产| 中文精品一区二区三区| 欧美亚洲免费| 亚洲人成在线观看一区二区| 国产精品中文字幕欧美| 欧美精品麻豆| 久久婷婷国产综合国色天香| 中文一区在线| 亚洲人成绝费网站色www| 久久久亚洲精品一区二区三区 | 久久成人18免费观看| 亚洲精品一区中文| 美日韩精品视频| 久久精品久久99精品久久| 一区二区三区三区在线| 亚洲电影av| 好看不卡的中文字幕| 国产精品久久久一区二区三区| 欧美激情精品久久久久久变态| 欧美在线亚洲| 午夜国产不卡在线观看视频| 夜夜嗨一区二区| 亚洲激情国产|