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

Daly的游戲人生

資源和內存管理學習總結

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


<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實現(xiàn)中,allocator的實現(xiàn)例子。
    二級分配器:大于128byte交給一個分配器,直接分配內存。小數(shù)據(jù)塊交給次級分配器。
    次級分配器用一個freelist數(shù)組維護可分配的小塊內存區(qū)域。freelist數(shù)組中的項是一個固定內存大小的鏈表。freelist中的項

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


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

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

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

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

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

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

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

評論

# 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>
            亚洲性xxxx| 欧美在线啊v| 欧美精品一区二区三区在线播放| 红桃视频欧美| 欧美风情在线| 欧美韩日一区二区| 亚洲精选在线| 一区二区三区欧美| 国产精品美女| 久久夜精品va视频免费观看| 久久免费高清视频| 亚洲乱码精品一二三四区日韩在线| 亚洲二区在线视频| 欧美日韩精品中文字幕| 亚洲午夜极品| 欧美影院在线| 亚洲高清不卡在线| 亚洲精品一区二区三| 国产精品久99| 久久一区中文字幕| 欧美日本在线播放| 久久国产主播| 鲁大师影院一区二区三区| 亚洲美女福利视频网站| 亚洲自拍偷拍网址| 亚洲电影av| 一本不卡影院| 亚洲国产成人久久综合一区| 日韩午夜在线视频| 国产一区二区三区无遮挡| 欧美国产日韩免费| 国产精品美女久久久| 欧美a级一区| 国产精品午夜春色av| 欧美国产精品一区| 国产精品三级视频| 亚洲大胆在线| 国产一区二区av| 99精品视频一区| 亚洲第一精品在线| 亚洲欧美在线免费观看| 亚洲另类春色国产| 久久久99国产精品免费| 亚洲视频在线免费观看| 久久伊人亚洲| 欧美一区二区大片| 欧美日韩一二区| 亚洲国产导航| 亚洲国产成人久久| 欧美在线免费观看亚洲| 午夜精品美女久久久久av福利| 久久综合久色欧美综合狠狠 | 亚洲一区二区三区高清不卡| 伊人夜夜躁av伊人久久| 亚洲专区在线视频| 在线综合亚洲欧美在线视频| 久久亚洲欧美| 久久精品视频在线播放| 国产精品av久久久久久麻豆网| 欧美成人国产| 亚洲第一页在线| 欧美伊人久久| 欧美中文日韩| 国产视频一区二区三区在线观看| 日韩亚洲精品电影| 99视频精品| 欧美日韩免费观看一区二区三区| 亚洲福利免费| 最新日韩中文字幕| 欧美成人资源| 亚洲国产欧美久久| 亚洲精品你懂的| 欧美大片在线影院| 最新国产成人av网站网址麻豆| 在线观看欧美激情| 另类图片国产| 亚洲欧洲一区二区在线播放| 亚洲精美视频| 欧美日本一区| 亚洲先锋成人| 久久久av水蜜桃| 激情一区二区三区| 久久综合九色欧美综合狠狠| 欧美国产日韩在线| 99国内精品久久| 欧美日韩免费看| 亚洲欧美国产视频| 久久综合激情| 亚洲日本va在线观看| 欧美美女福利视频| 亚洲性视频网站| 久久久噜噜噜久久人人看| 亚洲高清久久| 欧美日韩在线电影| 亚洲欧美日韩精品久久| 老司机成人网| 99这里只有久久精品视频| 国产精品高清网站| 欧美一区二区三区播放老司机| 麻豆av福利av久久av| 日韩一区二区久久| 国产一区二区三区久久| 欧美成人精品在线播放| 亚洲一二三区在线观看| 欧美成人午夜视频| 亚洲一区精品在线| 亚洲电影一级黄| 国产精品久久一区主播| 久久人人九九| 亚洲综合色视频| 亚洲国产欧美不卡在线观看| 性感少妇一区| 99精品黄色片免费大全| 国产一区二区在线观看免费| 欧美日韩久久久久久| 久久精品国产一区二区三| 亚洲精品久久久久久久久| 久久精品首页| 亚洲免费视频中文字幕| 在线观看视频亚洲| 国产欧美综合在线| 欧美日韩激情小视频| 久久日韩粉嫩一区二区三区| 亚洲一区二区三区777| 亚洲精品1区2区| 久热精品视频在线观看一区| 亚洲欧美日韩视频一区| 99爱精品视频| 亚洲精品国精品久久99热| 国产一区二区在线观看免费播放| 欧美视频一区在线| 欧美精品福利| 欧美国产日韩亚洲一区| 久久色中文字幕| 久久国产免费| 欧美一区二区三区啪啪| 午夜精品影院在线观看| 亚洲视频大全| 亚洲精品久久久久久久久| 欧美激情一区二区三区蜜桃视频| 久久青草欧美一区二区三区| 久久国产精品99久久久久久老狼| 亚洲资源av| 亚洲一区久久| 亚洲欧美成人在线| 午夜国产不卡在线观看视频| 亚洲主播在线播放| 亚洲专区一区| 香蕉亚洲视频| 久久精品免费| 男人的天堂亚洲| 免费观看日韩| 亚洲精品1区| 日韩亚洲精品电影| 亚洲午夜激情免费视频| 亚洲一区国产精品| 欧美影视一区| 麻豆精品一区二区综合av | 亚洲欧洲一区二区天堂久久| 欧美高清视频一区二区| 亚洲高清电影| 亚洲免费观看在线观看| 一区二区三区四区五区视频 | 亚洲精品久久视频| 亚洲伦理在线免费看| 99re6这里只有精品视频在线观看| 亚洲精品黄色| 亚洲视频在线观看| 香港成人在线视频| 美女视频黄免费的久久| 欧美片第一页| 国产欧美高清| 亚洲第一精品久久忘忧草社区| 亚洲人成在线观看| 午夜精品短视频| 久久男人资源视频| 最新亚洲一区| 亚洲欧美日韩精品一区二区| 久久久久国产免费免费| 欧美日韩dvd在线观看| 国产精品夜夜夜| 亚洲国产精品一区二区第一页| 一区二区三区产品免费精品久久75| 亚洲综合视频在线| 美女精品网站| 日韩亚洲欧美一区| 久久久999精品视频| 欧美日韩一区二区三区免费 | 久久亚洲国产成人| 欧美色大人视频| 在线观看精品视频| 性欧美超级视频| 亚洲高清免费在线| 欧美一区二区视频免费观看| 欧美高清不卡| 国产一区二区在线免费观看| 亚洲另类在线视频| 另类成人小视频在线| 亚洲图片在区色| 欧美精品性视频|