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

Daly的游戲人生

資源和內存管理學習總結

整理了手頭上幾本書中關于資源和內存管理的章節


<Understanding the linux kenel 第三版> 8.1.7 the buddy system
    Buddy算法, 解決內存碎片問題. 張貼書本原文如下:

The technique adopted by Linux to solve the external fragmentation problem is based on the well-known buddy system algorithm. All free page frames are grouped into 11 lists of blocks that contain groups of 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, and 1024 contiguous page frames, respectively. The largest request of 1024 page frames corresponds to a chunk of 4 MB of contiguous RAM. The physical address of the first page frame of a block is a multiple of the group sizefor example, the initial address of a 16-page-frame block is a multiple of 16 x 212 (212 = 4,096, which is the regular page size).


We'll show how the algorithm works through a simple example:

Assume there is a request for a group of 256 contiguous page frames (i.e., one megabyte). The algorithm checks first to see whether a free block in the 256-page-frame list exists. If there is no such block, the algorithm looks for the next larger blocka free block in the 512-page-frame list. If such a block exists, the kernel allocates 256 of the 512 page frames to satisfy the request and inserts the remaining 256 page frames into the list of free 256-page-frame blocks. If there is no free 512-page block, the kernel then looks for the next larger block (i.e., a free 1024-page-frame block). If such a block exists, it allocates 256 of the 1024 page frames to satisfy the request, inserts the first 512 of the remaining 768 page frames into the list of free 512-page-frame blocks, and inserts the last 256 page frames into the list of free 256-page-frame blocks. If the list of 1024-page-frame blocks is empty, the algorithm gives up and signals an error condition.

The reverse operation, releasing blocks of page frames, gives rise to the name of this algorithm. The kernel attempts to merge pairs of free buddy blocks of size b together into a single block of size 2b. Two blocks are considered buddies if:

  • Both blocks have the same size, say b.

  • They are located in contiguous physical addresses.

  • The physical address of the first page frame of the first block is a multiple of 2 x b x 212.

The algorithm is iterative; if it succeeds in merging released blocks, it doubles b and tries again so as to create even bigger blocks




<Modern C++ design 泛型編程與設計模式> Chapter 4 small object allocation
    本書討論的是loki庫。第4章探討了小對象的內存分配

<STL源碼解析>  2.2 STL空間分配器  翻譯by 侯捷
    SGI的STL實現中,allocator的實現例子。
    二級分配器:大于128byte交給一個分配器,直接分配內存。小數據塊交給次級分配器。
    次級分配器用一個freelist數組維護可分配的小塊內存區域。freelist數組中的項是一個固定內存大小的鏈表。freelist中的項

這 里用了一個小技巧(union)
    
union obj {
    union obj*  free_list_link;
    char client_data[1];
}
  
    這個既可用于空閑列表節點,又能作為數據指針(強制轉換), 這樣就可以節省信息記錄的空間。
    詳細說明參考原書


< 游戲編程精粹1> 1.6 通用的基于句柄的資源管理器

    該文章實現HandleMgr模板類實現不同類型資源的管理器.handle為整數值
    基本思路
  1. vector<DATA>存放實際數據, vector儲存magic number, FreeVector儲存數據vector中的空閑索引值
  2. Acquire根據 handl值返回數據指針(引用計數+1), Release釋放data( 引用計數減1 )

    技巧1: 利用空結構實現類型匹配(STL內經常用這個技巧)
        struct tagTexture {}
        typedef Handle<tagTexture> HTexture
    技巧2:資源釋放時不需要析構,只需要把相應index加入空閑列表。分配時重用該對象,重新初始化值,可以提高效率。
    技巧3:一般資源管理器類作為Singleton

    擴展1:為標準功能增加自動引用計數(參考智能指針的實現?)

< 游戲編程精粹1> 1.9 基于幀的內存分配 by steven ranck
    思路:棧方式(后進先出)的內存分配器。預先分配大塊內存,然后按棧順序分配和釋放內存。
            僅適用于分配,釋放有嚴格順序的資源(如關卡資源)

<游戲編程精粹1> 1.1
    技巧:所謂的數據繼承
    對于不變的對象屬性,具體類用引用指向這些固定屬性,而不是繼承。
    因為僅通過對象繼承,每個對象都有這些固定屬性的拷貝,浪費空間。
    Sprite(速度,滿血值,攻擊力) <-- SpriteInstance( 對sprite引用, 位置,當前生命值)

posted on 2010-05-02 00:02 Daly 閱讀(2271) 評論(1)  編輯 收藏 引用 所屬分類: C/C++游戲開發

評論

# re: 資源和內存管理學習總結 2010-05-05 08:47 欣萌

不錯。  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一区二区免费在线观看| 欧美不卡三区| 亚洲一二三区精品| 国产精品激情av在线播放| 在线视频日韩精品| 亚洲在线观看免费视频| 国产亚洲精品久| 免费中文日韩| 欧美精品日日鲁夜夜添| 亚洲一区二区视频在线| 中文在线不卡视频| 国模精品一区二区三区| 亚洲国产片色| 国产精品久久福利| 久久综合伊人77777麻豆| 久久综合给合久久狠狠色| 99精品免费视频| 午夜国产精品视频免费体验区| 国内偷自视频区视频综合| 欧美激情按摩| 国产精品一区在线观看| 欧美黑人在线观看| 国产精品久久久一区二区三区| 久久天堂av综合合色| 欧美日在线观看| 麻豆成人小视频| 欧美性色视频在线| 欧美第一黄色网| 国产精品亚洲成人| 91久久久亚洲精品| 精品99一区二区| 亚洲少妇在线| 亚洲伦理自拍| 久久久久久999| 亚洲免费在线电影| 欧美激情精品久久久六区热门 | 久久天天躁狠狠躁夜夜av| 日韩亚洲精品视频| 久久午夜视频| 久久精品二区亚洲w码| 欧美日韩国产精品成人| 欧美国产日本| 国产主播一区二区三区四区| 国产欧美日韩不卡免费| 日韩图片一区| 亚洲精品一二区| 久久一区二区三区超碰国产精品| 香蕉成人伊视频在线观看| 欧美福利小视频| 欧美国内亚洲| 亚洲国产综合91精品麻豆| 久久精品动漫| 久久人91精品久久久久久不卡| 国产精品极品美女粉嫩高清在线| 亚洲人精品午夜在线观看| 亚洲国产高清视频| 久久久久国产一区二区| 麻豆成人综合网| 在线电影一区| 美女久久一区| 亚洲电影免费观看高清完整版在线 | 国产精品99久久久久久久vr| 一本到高清视频免费精品| 欧美大片在线看免费观看| 欧美激情aⅴ一区二区三区| 亚洲福利一区| 欧美高清视频在线播放| 最新成人av网站| 99国内精品久久| 欧美日韩天天操| 亚洲天堂av在线免费| 亚洲欧美成人一区二区三区| 国产精品国产馆在线真实露脸| 这里只有精品丝袜| 欧美一区二区三区久久精品茉莉花| 国产精品久久久99| 香蕉乱码成人久久天堂爱免费 | 亚洲国产91色在线| 欧美国产日韩一二三区| 亚洲老板91色精品久久| 亚洲无线一线二线三线区别av| 欧美视频在线免费| 亚洲视频免费观看| 久久国产天堂福利天堂| 在线成人黄色| 欧美日本国产一区| 亚洲欧美一区二区视频| 老司机aⅴ在线精品导航| 最新中文字幕亚洲| 国产精品a久久久久久| 亚洲欧美日韩国产综合| 久色成人在线| 亚洲视频久久| 黑人巨大精品欧美黑白配亚洲| 欧美成年网站| 亚洲欧美高清| 亚洲国产成人久久综合| 午夜精品亚洲| 亚洲日本免费电影| 国产精品亚发布| 欧美成年视频| 久久精品网址| 亚洲一二三区精品| 欧美激情精品久久久久久变态| 亚洲天堂av在线免费观看| 狠狠色狠狠色综合人人| 欧美日韩精品一区二区三区四区| 欧美伊人久久大香线蕉综合69| 亚洲精品视频在线观看网站| 久久午夜精品| 欧美韩日一区二区| 久久se精品一区精品二区| 亚洲麻豆视频| 免费在线观看一区二区| 性18欧美另类| 中文av一区二区| 亚洲欧洲一区二区在线播放| 国产揄拍国内精品对白| 国产精品vvv| 欧美国产第一页| 久久蜜桃香蕉精品一区二区三区| 亚洲在线一区二区| 99亚洲一区二区| 亚洲国产精品久久久久婷婷884| 久久久国产精品一区二区三区| 亚洲永久网站| 一区二区日韩| 日韩视频免费观看高清在线视频 | 亚洲免费在线| 亚洲男女毛片无遮挡| 一区二区日韩| 国产精品99久久久久久人| 亚洲乱码国产乱码精品精98午夜| 亚洲大胆在线| 亚洲第一搞黄网站| 亚洲第一色在线| 一区二区在线视频播放| 激情婷婷欧美| 在线观看91精品国产麻豆| 黄色成人在线网站| 激情久久一区| 亚洲国产一区在线观看| 精品成人一区二区三区四区| 国产主播一区二区三区| 狠久久av成人天堂| 亚洲大胆人体在线| 亚洲乱码日产精品bd| 一区二区三区**美女毛片| 中文av字幕一区| 亚洲欧美国产不卡| 久久精品国产96久久久香蕉| 久久久91精品国产一区二区三区| 久久琪琪电影院| 欧美高清在线一区二区| 亚洲国产成人久久综合| 99国产欧美久久久精品| 亚洲一区二区在线播放| 久久福利电影| 欧美大片一区| 国产精品a级| 狠狠色伊人亚洲综合网站色| 亚洲高清视频在线| 这里只有精品丝袜| 欧美影院久久久| 欧美国产日韩一区二区三区| 亚洲精品国产精品国自产在线| 在线一区二区日韩| 久久九九热免费视频| 欧美国产一区视频在线观看 | 久久久精品tv| 欧美日韩精品在线| 国内精品国语自产拍在线观看| 亚洲欧洲另类| 欧美一级免费视频| 欧美大片一区二区| 亚洲一区二区精品在线| 久久香蕉国产线看观看av| 欧美日韩国产在线观看| 国内精品写真在线观看| 99精品国产在热久久| 久久亚洲美女| 一区二区精品在线观看| 久久资源在线| 国产乱肥老妇国产一区二| 日韩亚洲欧美一区| 久久久综合激的五月天| 精品动漫一区二区| 中国成人在线视频| 欧美大香线蕉线伊人久久国产精品| 一区二区三区高清在线| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品毛片va一区二区三区| 91久久精品美女高潮| 久久精品视频网| 夜夜狂射影院欧美极品| 免费看亚洲片| 国内久久精品视频| 久久高清福利视频| 亚洲自拍偷拍视频| 欧美日韩亚洲国产精品|