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

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>
            蘑菇福利视频一区播放| 久久精品国产亚洲精品| 亚洲国产精品女人久久久| 欧美在线免费观看亚洲| 狠狠色2019综合网| 免费成人你懂的| 欧美高清视频一区二区| 亚洲视频播放| 亚洲欧美在线磁力| 一区二区在线视频观看| 亚洲黄色免费| 国产欧美日韩亚洲精品| 久久亚洲精品一区二区| 欧美激情按摩| 久久精品国产久精国产一老狼| 久久久国产成人精品| 亚洲免费成人| 香蕉av777xxx色综合一区| 精品1区2区| 一本久久a久久免费精品不卡| 国产色综合久久| 亚洲国产美女| 国产性色一区二区| 亚洲欧洲综合另类| 国产一区日韩二区欧美三区| 欧美激情第1页| 国产欧美一区二区三区沐欲| 亚洲黄页视频免费观看| 国产精品一区在线观看| 亚洲国产精品久久91精品| 国产精品一区二区久久| 亚洲国产精品999| 国产日韩久久| 99国产麻豆精品| 亚洲国产第一页| 欧美尤物一区| 午夜日韩福利| 欧美日韩精品中文字幕| 欧美二区在线观看| 国产一区二区三区直播精品电影| 日韩午夜av电影| 亚洲人成人77777线观看| 欧美亚洲系列| 欧美在线1区| 国产精品久久久久久久久久妞妞| 亚洲国内自拍| 亚洲国产一区二区三区a毛片| 午夜天堂精品久久久久| 亚洲一区综合| 欧美日韩中文字幕综合视频| 欧美福利网址| 亚洲激情视频在线播放| 久久婷婷综合激情| 可以看av的网站久久看| 国产一区二区三区精品久久久| 9l国产精品久久久久麻豆| 亚洲麻豆一区| 欧美精品免费播放| 亚洲人在线视频| 亚洲三级色网| 欧美激情欧美狂野欧美精品| 欧美激情在线有限公司| 在线观看日韩欧美| 葵司免费一区二区三区四区五区| 久久中文欧美| 亚洲国产精品一区制服丝袜| 久久久综合视频| 亚洲第一中文字幕在线观看| 亚洲黄色免费网站| 欧美国产亚洲另类动漫| 亚洲精品久久7777| 亚洲午夜激情网站| 国产精品毛片大码女人| 午夜精品视频| 久久综合伊人77777| 怡红院精品视频在线观看极品| 久久免费观看视频| 亚洲国产精品久久久| 一二三区精品| 国产精品网站视频| 久久九九全国免费精品观看| 欧美国产在线观看| 亚洲无毛电影| 国产一区二区成人| 你懂的成人av| 亚洲一区在线免费| 免费在线观看精品| 一区二区激情| 国产亚洲精品一区二区| 你懂的网址国产 欧美| 这里只有精品丝袜| 久久综合给合| 亚洲视频精选在线| 激情欧美日韩| 欧美吻胸吃奶大尺度电影| 性做久久久久久免费观看欧美 | 国产伦精品一区二区三区高清| 性久久久久久久久| 亚洲国产精品精华液2区45| 亚洲欧美精品中文字幕在线| 伊人成人开心激情综合网| 欧美日韩一区高清| 久久综合色综合88| 亚洲欧美国产77777| 亚洲国产电影| 久久视频国产精品免费视频在线| av成人手机在线| 黄色成人在线观看| 国产精品久久久久av| 欧美激情二区三区| 欧美在线观看视频在线| 夜夜嗨av一区二区三区四区| 欧美成人蜜桃| 久久精品国产亚洲一区二区三区 | 正在播放欧美视频| 精品av久久久久电影| 国产精品久久婷婷六月丁香| 免费中文日韩| 久久琪琪电影院| 欧美怡红院视频| 午夜电影亚洲| 在线亚洲欧美视频| 亚洲精品乱码视频| 欧美寡妇偷汉性猛交| 久久免费视频这里只有精品| 欧美一区二区三区久久精品茉莉花| 亚洲久色影视| 亚洲另类在线视频| 在线看无码的免费网站| 国产亚洲成av人片在线观看桃| 欧美日韩另类在线| 欧美日韩精品欧美日韩精品| 欧美久久久久久久| 欧美福利电影网| 欧美精品久久99| 欧美精品1区| 欧美日韩国产探花| 欧美日韩精品欧美日韩精品| 欧美日韩国产一区精品一区| 欧美顶级大胆免费视频| 欧美电影在线观看| 欧美精品久久一区二区| 欧美精品在线视频| 欧美视频在线观看免费网址| 欧美日韩高清在线| 欧美日韩在线三区| 国产精品红桃| 国产视频亚洲| 一区二区三区在线观看欧美| 在线欧美电影| 99国产精品久久久久久久成人热| 亚洲久久一区二区| 亚洲影院色无极综合| 午夜视频久久久久久| 久久精品国产欧美激情| 免费一区视频| 亚洲精品资源美女情侣酒店| 亚洲网站在线观看| 久久精品一区| 欧美巨乳波霸| 国产精品国产a级| 国产综合色精品一区二区三区| 亚洲第一精品福利| 亚洲特级片在线| 久久亚洲捆绑美女| 亚洲国产片色| 午夜精品亚洲| 欧美激情成人在线| 国产欧美视频一区二区三区| 黄色av成人| 亚洲一区二区成人在线观看| 久久精品国产精品亚洲| 亚洲黄色影院| 欧美一级大片在线免费观看| 欧美a级一区二区| 国产女主播视频一区二区| 亚洲电影毛片| 午夜一区二区三区在线观看| 欧美成人a∨高清免费观看| av成人免费在线观看| 久久精品国产清高在天天线| 欧美男人的天堂| 伊人一区二区三区久久精品| 亚洲午夜黄色| 亚洲电影免费在线观看| 亚洲欧美偷拍卡通变态| 欧美日韩国产小视频在线观看| 国产亚洲精品bv在线观看| 亚洲视频综合| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲美女淫视频| 麻豆av一区二区三区| 国产亚洲一区二区三区在线播放| avtt综合网| 亚洲盗摄视频| 久久久久久亚洲精品杨幂换脸| 国产精品任我爽爆在线播放 | 欧美午夜不卡视频| 91久久精品国产| 免费美女久久99|