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

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 閱讀(2277) 評論(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>
            久久久久久久网站| 一区二区三区 在线观看视频| 久久久精品动漫| 你懂的一区二区| 欧美婷婷六月丁香综合色| 久久精品中文字幕免费mv| 亚洲国产精品成人一区二区| 久久久久久有精品国产| 欧美一区二区三区久久精品茉莉花 | 亚洲一区二区免费视频| 国产欧美一区二区三区在线看蜜臀 | 亚洲精品国产精品国自产观看浪潮 | 亚洲视频在线观看视频| 亚洲永久免费精品| 亚洲高清在线| 欧美三级乱人伦电影| 久久久国产精彩视频美女艺术照福利 | 亚洲淫片在线视频| 国产精品视屏| 一区二区日韩精品| 亚洲激情在线视频| 欧美女人交a| 免费视频最近日韩| 亚洲一区三区电影在线观看| 久久精品99无色码中文字幕 | 国产乱码精品| 欧美精品www在线观看| 久久综合色综合88| 国内外成人免费视频 | 久久不射中文字幕| 99国产精品一区| 亚洲精品久久嫩草网站秘色| 亚洲第一在线综合在线| 久久成人羞羞网站| 久久亚洲综合色| 美女诱惑黄网站一区| 久久久久久久综合日本| 性欧美大战久久久久久久免费观看 | 久久精品一二三| 久久精品久久综合| 六月婷婷久久| 欧美香蕉大胸在线视频观看| 国产日本欧美在线观看| 亚洲精品专区| 欧美高清视频免费观看| 亚洲国产精品一区二区第一页| 亚洲天堂成人| 亚洲激情网站免费观看| 久久久亚洲人| 亚洲视频导航| 欧美日韩一区在线观看| 伊人久久亚洲美女图片| 久久久久久亚洲精品中文字幕| 在线一区亚洲| 国产九色精品成人porny| 浪潮色综合久久天堂| 国产精品区一区二区三区| 亚洲综合电影一区二区三区| 欧美黄色aaaa| 国产精品啊v在线| 亚洲一区二区三区涩| 一区二区国产日产| 国产区精品视频| 麻豆国产va免费精品高清在线| 久久精品亚洲一区二区| 久热re这里精品视频在线6| 日韩视频专区| 亚洲一区二区三区国产| 国产在线观看精品一区二区三区| 午夜久久tv| 久久久噜噜噜久久中文字幕色伊伊| 国产日韩欧美视频| 亚洲精品欧美在线| 在线看片一区| 亚洲午夜激情网页| 一区一区视频| 日韩视频在线观看免费| 国产一区在线播放| 日韩一级精品视频在线观看| 亚洲欧洲日韩在线| 久久精品一区二区三区四区| 99精品国产热久久91蜜凸| 欧美一区网站| 欧美综合第一页| 国产精品久久久久9999高清| 国产欧美一区二区精品仙草咪 | 欧美精品日韩| 亚洲欧美日韩精品久久久| 欧美在线视频播放| 日韩五码在线| 久久精品二区亚洲w码| 亚洲免费观看高清在线观看| 亚洲综合丁香| 国产精品99久久久久久久女警| 午夜精品久久久久久99热| 亚洲电影免费观看高清完整版| 亚洲国产成人久久综合| 狠狠色丁香婷婷综合影院| 亚洲精品免费在线观看| 久久九九全国免费精品观看| 亚洲视频一区二区| 老司机成人网| 久久噜噜噜精品国产亚洲综合| 国产日韩av在线播放| 亚洲午夜一区二区| 欧美一级夜夜爽| 国外成人网址| 美国成人直播| 亚洲国产综合91精品麻豆| 亚洲国产小视频| 你懂的国产精品永久在线| 久久成人国产| 亚洲国产精品久久久久秋霞不卡| 欧美在线亚洲综合一区| 老司机精品视频一区二区三区| 久久久久综合网| 亚洲日本理论电影| 中文一区在线| 午夜伦理片一区| 亚洲精品日韩久久| 亚洲精品亚洲人成人网| 亚洲电影免费| 亚洲精品自在在线观看| 亚洲一区二区黄| 午夜宅男欧美| 嫩模写真一区二区三区三州| 久久一区中文字幕| 欧美高清视频免费观看| 欧美激情女人20p| 亚洲国产1区| 亚洲人线精品午夜| 在线一区二区视频| 欧美一区二区免费| 久久青草欧美一区二区三区| 欧美黄色网络| 国产精品久久影院| 欧美国产在线电影| 国产精品va| 欧美国产激情二区三区| 欧美夫妇交换俱乐部在线观看| 欧美怡红院视频| 欧美成人精品1314www| 裸体一区二区三区| 久久成人羞羞网站| 亚洲欧美日韩直播| 日韩一区二区精品葵司在线| 亚洲桃花岛网站| 久久精品国产亚洲5555| 美女在线一区二区| 99视频一区| 久久精品99| 欧美精品在线观看91| 国产亚洲欧洲一区高清在线观看| 在线免费观看成人网| 免费成人黄色av| 国产一区二区三区四区| 亚洲精品中文字幕在线| 久久色在线观看| 亚洲香蕉伊综合在人在线视看| 欧美在线视频在线播放完整版免费观看| 欧美寡妇偷汉性猛交| 美女国产精品| 久久久国产亚洲精品| 欧美特黄一区| 亚洲淫性视频| 欧美影院在线| 欧美国产精品| 麻豆精品传媒视频| 在线不卡中文字幕| 蜜桃av综合| 美女在线一区二区| 亚洲视频日本| 国产精品99久久久久久白浆小说 | 久久久久久亚洲精品杨幂换脸 | 亚洲在线播放电影| 久久久久久69| 老司机aⅴ在线精品导航| 久久成人综合网| 亚洲国产精品电影| 亚洲欧美日韩视频二区| 欧美精品在线一区二区三区| 国产午夜亚洲精品羞羞网站| 日韩一区二区精品葵司在线| 亚洲在线观看免费| 狂野欧美激情性xxxx| 狠狠色狠狠色综合日日小说| 亚洲乱码视频| 国产精品ⅴa在线观看h| 亚洲欧美日韩国产综合在线| 欧美在线观看一区二区| 国产午夜精品美女毛片视频| 久久久91精品国产一区二区三区| 亚洲在线观看| 国产精品久久91| 亚洲国产高清在线| 9人人澡人人爽人人精品| 国产精品家庭影院| 久久久亚洲精品一区二区三区 | 久久九九热re6这里有精品 | 欧美日韩国内自拍|