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

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>
            欧美激情一区二区三区全黄 | 免费一级欧美在线大片| 欧美色视频一区| 亚洲一区二区精品| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲图片欧美一区| 亚洲婷婷在线| 激情欧美一区| 亚洲国产精品毛片| 欧美噜噜久久久xxx| 性欧美xxxx大乳国产app| 久久国产一区二区| 亚洲最新视频在线播放| 亚洲永久在线观看| 亚洲二区在线| 亚洲一区二区三区在线观看视频 | 国产在线视频不卡二| 欧美激情一区二区三区在线| 国产精品第一页第二页第三页| 久久精品亚洲一区| 欧美日韩精品在线观看| 久久久久久久久久久久久久一区| 蜜桃伊人久久| 久久精品国产免费| 欧美日韩午夜| 欧美福利视频在线观看| 国产日韩欧美精品在线| 91久久在线播放| 黄色成人av| 亚洲一区在线看| 一本不卡影院| 免费短视频成人日韩| 欧美在线免费一级片| 欧美日韩精品欧美日韩精品一| 久久女同精品一区二区| 国产精品sm| 亚洲精品少妇30p| 影音先锋日韩有码| 久久成人精品| 欧美一区二区三区在线视频| 欧美另类69精品久久久久9999| 老牛影视一区二区三区| 国产精品网曝门| 一区二区电影免费观看| 99精品国产99久久久久久福利| 久久综合色播五月| 老鸭窝亚洲一区二区三区| 国产美女高潮久久白浆| 99re这里只有精品6| 亚洲美女av电影| 欧美 日韩 国产精品免费观看| 久久免费少妇高潮久久精品99| 国产精品一区二区视频| 一本久道久久综合中文字幕| 9久re热视频在线精品| 欧美刺激性大交免费视频| 欧美国产日韩亚洲一区| 亚洲高清在线观看| 欧美ed2k| 亚洲精品国精品久久99热| 亚洲美女毛片| 欧美日韩一区二区三区| 一本色道久久| 性欧美激情精品| 国产日韩欧美在线播放| 久久国产高清| 免费欧美在线| 日韩视频一区二区在线观看| 欧美日韩成人综合| 亚洲在线观看视频| 久久久久久久高潮| 亚洲韩国青草视频| 欧美巨乳波霸| 亚洲在线不卡| 美女精品一区| 99成人在线| 国产精品一区=区| 久久成人精品一区二区三区| 欧美a级一区| 夜夜嗨一区二区三区| 国产精品无码专区在线观看| 午夜精品久久久久99热蜜桃导演| 久久夜色精品国产| 亚洲每日在线| 国产午夜久久久久| 免费成人网www| 中日韩在线视频| 巨胸喷奶水www久久久免费动漫| 亚洲人成毛片在线播放| 国产精品视频久久久| 久久夜色精品一区| 一区二区三区免费看| 蜜臀久久99精品久久久画质超高清| 亚洲精品视频在线看| 国产模特精品视频久久久久| 免费观看日韩av| 在线视频欧美日韩| 免费日韩av| 香蕉乱码成人久久天堂爱免费| 亚洲国产精品热久久| 国产精品久久久久久久久久三级 | 狠狠色狠狠色综合日日五| 欧美激情视频一区二区三区免费| 亚洲一区二区影院| 亚洲国产精品黑人久久久| 欧美在线网站| 亚洲精品视频免费在线观看| 国产欧美日韩精品一区| 欧美日本免费| 麻豆成人91精品二区三区| 亚洲欧美激情一区二区| 亚洲精品一区二区三区在线观看| 久久久综合香蕉尹人综合网| 亚洲专区免费| 99精品视频一区| 在线观看视频欧美| 国产日韩亚洲欧美综合| 欧美日韩黄视频| 欧美成在线视频| 久久婷婷色综合| 久久精品亚洲一区| 亚洲欧美偷拍卡通变态| 99视频日韩| 日韩网站在线| 亚洲精品中文字幕有码专区| 欧美成年人网站| 麻豆成人91精品二区三区| 久久精品91| 欧美有码视频| 欧美在线观看网址综合| 亚洲欧美在线观看| 亚洲专区免费| 亚洲欧美在线磁力| 亚洲欧洲av一区二区| 亚洲欧美一区二区在线观看| 亚洲一区二区三区精品动漫| 9国产精品视频| 这里只有精品电影| 中文有码久久| 午夜欧美精品| 欧美专区在线观看| 欧美在线观看一区二区三区| 校园春色综合网| 久久精品日产第一区二区| 久久久久在线观看| 女人色偷偷aa久久天堂| 欧美α欧美αv大片| 亚洲高清色综合| 亚洲看片一区| 亚洲一级二级| 午夜日韩福利| 久久亚洲高清| 欧美猛交免费看| 国产精品日韩在线播放| 国产一区99| 亚洲国产天堂久久国产91| 亚洲美洲欧洲综合国产一区| 亚洲一级特黄| 久久天天躁夜夜躁狠狠躁2022 | 亚洲一区二区欧美| 欧美一级片一区| 快she精品国产999| 欧美日产国产成人免费图片| 国产精品视频免费| 亚洲国产另类久久精品| 亚洲一区二区高清| 久久色在线观看| 91久久精品国产91久久性色tv| 亚洲五月婷婷| 麻豆亚洲精品| 国产精品久久久久aaaa樱花| 一色屋精品视频在线看| 一本久久综合亚洲鲁鲁五月天| 欧美制服第一页| 亚洲国产一区视频| 欧美在线播放一区二区| 欧美激情在线| 国产在线观看精品一区二区三区| 亚洲精品国产视频| 久久精品天堂| 亚洲另类春色国产| 久久久久久有精品国产| 国产精品99一区二区| 在线观看福利一区| 午夜久久影院| 亚洲精品中文字幕在线| 久久久久一区| 国产欧美二区| 亚洲天堂av高清| 欧美韩日高清| 羞羞漫画18久久大片| 欧美偷拍另类| 亚洲精品一区在线观看| 久久香蕉精品| 亚洲综合丁香| 国产精品高潮呻吟久久| 99在线视频精品| 亚洲激情综合| 噜噜噜噜噜久久久久久91| 国产一区二区三区的电影 |