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

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>
            先锋影院在线亚洲| aa成人免费视频| 亚洲视频在线一区观看| 新67194成人永久网站| 欧美在线免费观看亚洲| 欧美日韩在线视频一区| 亚洲精品影视在线观看| 韩国精品主播一区二区在线观看| 欧美影院一区| 亚洲在线中文字幕| 久久精品亚洲国产奇米99| 亚洲欧美国产va在线影院| 美女露胸一区二区三区| 精品1区2区| 午夜精品一区二区三区四区| 欧美一进一出视频| 国产精品一区二区久久久久| 欧美国产日韩在线| 久久激情婷婷| 国产一区二区欧美日韩| 欧美阿v一级看视频| 亚洲激情国产| 欧美美女bbbb| 欧美高清在线| 欧美第一黄网免费网站| 亚洲国产精品久久久久婷婷884| 激情久久影院| 国产精品视频免费在线观看| 99亚洲一区二区| 久久亚洲私人国产精品va媚药| 国产精品日产欧美久久久久| 亚洲精品国产精品乱码不99按摩| 欧美日韩午夜激情| 欧美国产欧美综合| 亚洲无限av看| 国产精品试看| 欧美日韩中文另类| 久久综合久久综合久久| 欧美丝袜第一区| 欧美在线亚洲综合一区| 欧美jizz19性欧美| 亚洲砖区区免费| 免费观看亚洲视频大全| 先锋影音久久久| 久久国产精品99国产精| 亚洲欧美国产制服动漫| 欧美.www| 欧美.日韩.国产.一区.二区| 亚洲国产欧美不卡在线观看| 亚洲女同在线| 亚洲二区精品| 国产精品久久二区二区| 欧美精品日日鲁夜夜添| 91久久久久久国产精品| 亚洲激情专区| 久久精品视频在线观看| 欧美伦理视频网站| 欧美ed2k| 亚洲激情黄色| 在线亚洲欧美专区二区| 性亚洲最疯狂xxxx高清| 国产有码在线一区二区视频| 亚洲欧美色婷婷| 久久在线观看视频| 香蕉久久夜色精品国产使用方法| 久久综合久色欧美综合狠狠 | 午夜在线成人av| 免费不卡中文字幕视频| 欧美一区二区视频在线| 欧美日韩国产黄| 免费成人高清| 合欧美一区二区三区| 韩日欧美一区| 一区二区三区精品视频| 欧美大片在线看| 韩日午夜在线资源一区二区| 99re国产精品| 欧美资源在线| 女女同性精品视频| 亚洲主播在线| 麻豆精品在线观看| 午夜伦欧美伦电影理论片| 欧美激情一二区| 日韩视频在线一区二区三区| 欧美制服丝袜| 欧美一级精品大片| 久久久久久久一区二区三区| 亚洲天堂成人在线观看| 久久精品国产一区二区三区| 国产精品乱码久久久久久| 久久国产高清| 亚洲成人在线视频网站| 一区二区黄色| 国产偷国产偷亚洲高清97cao| 麻豆久久精品| 国产一区二区三区久久悠悠色av | 在线亚洲欧美视频| 久久综合999| 亚洲看片网站| 亚洲欧美国产77777| 国产一区二区视频在线观看| 久久久99免费视频| 一区二区欧美日韩视频| 久久精品国产综合精品| 亚洲免费电影在线| 国产日产高清欧美一区二区三区| 欧美亚洲自偷自偷| 亚洲日本乱码在线观看| 欧美一区二区三区久久精品| 最新国产精品拍自在线播放| 国产精品欧美久久| 欧美国产精品人人做人人爱| 亚洲欧美另类在线| 亚洲精品之草原avav久久| 久久只精品国产| 亚洲一区二区三区色| 亚洲国产一二三| 在线精品国产欧美| 在线观看视频一区二区欧美日韩| 国产精品欧美一区二区三区奶水 | 久久久爽爽爽美女图片| 9i看片成人免费高清| 亚洲精品一区中文| 亚洲电影第三页| 亚洲片国产一区一级在线观看| 国产综合视频| 欲色影视综合吧| 亚洲区一区二区三区| 亚洲人成高清| 日韩午夜激情电影| 亚洲欧美国产毛片在线| 久久久久久亚洲精品中文字幕| 久久se精品一区精品二区| 久久久久久久波多野高潮日日| 久久久综合免费视频| 欧美日韩一区二区精品| 国产欧美精品xxxx另类| 亚洲电影毛片| 小嫩嫩精品导航| 亚洲国产成人精品女人久久久 | 亚洲经典视频在线观看| 日韩午夜精品| 欧美成人激情在线| 国产伦精品一区二区三区| 在线观看日韩一区| 午夜精品一区二区在线观看 | 亚洲电影在线看| 亚洲精品在线二区| 美女在线一区二区| 亚洲免费影视第一页| 老司机久久99久久精品播放免费 | 欧美在线观看www| 亚洲精品乱码久久久久久黑人| 欧美影视一区| 国产亚洲成精品久久| 国产偷国产偷精品高清尤物| 欧美日韩国产首页在线观看| 国产欧美一区二区精品仙草咪| 欧美午夜一区二区| 夜夜夜久久久| 国产精品久久久对白| 一二美女精品欧洲| 亚洲欧洲在线视频| 欧美色欧美亚洲另类二区| 一区二区三区欧美在线| 欧美色综合天天久久综合精品| 正在播放欧美一区| 亚洲神马久久| 国产在线视频欧美| 欧美成人精品高清在线播放| 欧美1区2区3区| 午夜国产欧美理论在线播放| 性欧美精品高清| 亚洲毛片在线观看| 亚洲男同1069视频| 在线观看亚洲精品视频| 99视频在线精品国自产拍免费观看| 国产精品日本一区二区 | 老司机午夜精品视频| 亚洲精品日日夜夜| 亚洲欧美清纯在线制服| 最近中文字幕日韩精品| 亚洲一区区二区| 日韩一区二区久久| 久久久久久亚洲精品杨幂换脸| 亚洲深夜激情| 欧美韩日亚洲| 亚洲福利视频在线| 国产亚洲综合在线| 亚洲综合首页| 欧美在线观看日本一区| 欧美日韩久久久久久| 亚洲国内在线| 亚洲黄色毛片| 美女在线一区二区| 亚洲国产日韩欧美在线动漫| 最新成人av网站| 欧美激情一区二区三区在线视频观看 | 狠狠色狠色综合曰曰| 亚洲一区在线免费观看|