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

隨筆 - 119  文章 - 290  trackbacks - 0

博客搬家了哦,請移步
叫我abc

常用鏈接

留言簿(12)

隨筆分類

我的博客

搜索

  •  

積分與排名

  • 積分 - 305651
  • 排名 - 84

最新評論

閱讀排行榜

繼上一篇,現在可以來看看gc_malloc的源碼了,初窺究竟。
 1void*
 2gc_malloc(size_t sz,void *parent,void (*finalizer)(void *))
 3{
 4    void *ret=my_malloc(sz);
 5    int id=map_id(ret);
 6    E.pool[id].u.n.finalizer=finalizer;
 7    if (parent) {
 8        gc_link(parent,0,ret);
 9    }

10    else {
11        stack_push(id);
12    }

13    return ret;
14}

首先,第4行分配了指定大小的內存。
然后是第5行map_id(ret),這是什么呢?先不深究其實現,我簡單的說說他所做的工作:
因為這是一個gc庫,所以本質工作就是管理內存,因此將分配出來的新內存記錄到一個容器中以便于以后的管理。yfgc管理采用的容器是一個數組。分配新內存后,在數組容器中找到一個空閑的位置,將內存指針記錄到該位置上。
不過光做這個還是不夠的,以后要是再遇上這塊內存,怎么知道它被記錄在數組容器的哪個位置上呢?雖然遍歷查找也可以,不過我想應該沒人會那么做吧。源碼采用了hash_map,將這塊內存的指針map到數組的索引上。
綜上,map_id(ret)大體這么做了
pool[id].mem = ret;
map[ ret ] 
= id;
不過由于這個gc庫是用C寫的,沒有STL,里面的代碼就不可能那么簡單啦。

總而言之,id就是內存在容器中的索引啦。從第6行可以看出,E.pool就是這個管理容器了。這句用來設置內存的析構回調函數。

E.pool是一個node結構數組,現在來看看node的定義,簡單起見,我暫時去掉了不相關的東西:
1struct node {
2    union {
3        struct {
4            void * mem;
5            struct link *children;
6            void (*finalizer)(void *);
7        }
 n;
8    }
 u;
9}
;
mem和finalizer很眼熟對吧,因為剛剛才看過。children可以先不管,不過從名稱看來,是管理父子關系,更準確的說是依賴關系的東東了。

OK,現在來看看7、8、9行,出現了gc_link,我記得這是一個public接口,用來管理兩塊內存之間的依賴關系的。現在,因為傳入了parent實參,要在新分配的內存和parent之間建立依賴關系,所以調用了gc_link。

我想else部分可以先不管,只要記住出現了stack_push即可。現在非常好奇,gc_link是如何建立這一依賴關系的,采用了何種數據結構,所以接下來就要去看看gc_link的實現了。
posted on 2008-09-11 19:53 LOGOS 閱讀(1955) 評論(1)  編輯 收藏 引用

FeedBack:
# re: 垃圾收集的那點事(B) 2008-09-11 20:20 陳梓瀚(vczh)
我在博客上的vczh free script里面有一個垃圾收集器。  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              亚洲国产综合视频在线观看 | 亚洲自啪免费| 在线观看日韩av电影| 尤物网精品视频| 亚洲福利视频专区| 亚洲精品视频一区二区三区| 亚洲美女视频| 亚洲一级高清| 久久九九热re6这里有精品| 久久一区亚洲| 亚洲人成网站影音先锋播放| 在线亚洲免费视频| 久久精品视频在线免费观看| 欧美—级在线免费片| 国产精品日本欧美一区二区三区| 国产农村妇女精品| 亚洲激情国产精品| 亚洲欧美美女| 美女露胸一区二区三区| 亚洲精品美女在线| 欧美一区二区三区四区在线| 欧美黄色影院| 国产一区二区三区四区hd| 亚洲毛片视频| 亚洲欧美一区二区原创| 最新成人av网站| 亚洲欧美bt| 欧美极品在线视频| 国模精品一区二区三区色天香 | 亚洲专区一区二区三区| 裸体女人亚洲精品一区| 一区二区欧美日韩视频| 免费国产自线拍一欧美视频| 国产精品一区二区久久国产| 亚洲精品一线二线三线无人区| 性色一区二区三区| 亚洲精品日产精品乱码不卡| 久久深夜福利免费观看| 国产精品欧美日韩一区二区| 99国产精品久久久久久久成人热 | 亚洲网在线观看| 欧美激情aⅴ一区二区三区| 今天的高清视频免费播放成人| 亚洲午夜视频| 亚洲人体一区| 欧美国产三级| 最近中文字幕mv在线一区二区三区四区| 久久久国产精品一区二区三区| 国产精品99久久久久久人| 欧美日韩www| 亚洲美女免费视频| 亚洲国产精品ⅴa在线观看| 看片网站欧美日韩| 亚洲国产欧美在线| 欧美大片在线看| 美女主播精品视频一二三四| 亚洲国产高清在线观看视频| 欧美成人免费在线| 美女黄网久久| 亚洲精品欧美日韩专区| 亚洲电影免费观看高清| 欧美成人午夜免费视在线看片| 亚洲国产精品高清久久久| 美国十次成人| 男人的天堂亚洲在线| 亚洲免费观看高清完整版在线观看| 欧美大片免费观看| 欧美激情偷拍| 亚洲一区二区三区四区五区黄| 一区二区三区欧美成人| 国产精品剧情在线亚洲| 欧美在线观看一区二区| 久久久久99| 亚洲人成艺术| 亚洲精品美女免费| 国产精品稀缺呦系列在线| 香蕉精品999视频一区二区 | 亚洲日韩欧美视频一区| 欧美日韩三级| 欧美资源在线| 欧美韩国日本一区| 亚洲视频专区在线| 国产亚洲精品综合一区91| 久久亚洲精品欧美| 欧美国产日韩二区| 亚洲欧美综合一区| 久久久久久尹人网香蕉| 99re热这里只有精品视频| 亚洲一区免费在线观看| 在线播放亚洲| 一片黄亚洲嫩模| 黄网站免费久久| 99视频精品全部免费在线| 国产亚洲精品v| 亚洲精品国产欧美| 国产欧美日韩精品丝袜高跟鞋| 麻豆精品一区二区av白丝在线| 欧美精品久久一区二区| 欧美在线一二三四区| 欧美成人免费网| 久久精品国产精品亚洲综合 | 欧美激情精品久久久久久蜜臀 | 欧美.日韩.国产.一区.二区| 亚洲一区二区久久| 麻豆精品在线播放| 欧美一区二区视频在线| 欧美护士18xxxxhd| 欧美在线观看视频在线| 欧美日韩国产亚洲一区| 免费在线成人av| 国产伦精品一区二区三区视频孕妇| 亚洲福利视频网站| 国产综合色产| 亚洲自拍偷拍色片视频| 一区二区三区欧美激情| 麻豆精品91| 免费日韩视频| 亚洲激情电影在线| 欧美mv日韩mv国产网站| 欧美日韩专区| 亚洲国产精品成人一区二区| 国内精品久久久久伊人av| 中文亚洲字幕| 亚洲网站视频| 欧美另类在线播放| 亚洲国产另类久久久精品极度| 国产日韩在线视频| 亚洲网站视频| 亚洲影院在线| 国产精品久久影院| 亚洲视屏一区| 香蕉成人啪国产精品视频综合网| 欧美视频日韩视频| 一区二区av在线| 亚洲综合色婷婷| 国产精品午夜久久| 午夜欧美大片免费观看| 久久精品国产在热久久| 国语自产精品视频在线看8查询8| 欧美一区亚洲二区| 老司机精品福利视频| 久久尤物视频| 亚洲人成毛片在线播放| 久久青青草原一区二区| 老司机aⅴ在线精品导航| 好吊色欧美一区二区三区视频| 欧美一区久久| 男人插女人欧美| 亚洲另类视频| 国产精品成人国产乱一区| 亚洲一区黄色| 久久精品人人做人人综合| 很黄很黄激情成人| 美女国产一区| 99国产精品私拍| 欧美一区二区视频在线观看2020| 国产午夜精品一区理论片飘花| 久久久蜜桃一区二区人| 亚洲国产1区| 亚洲欧美激情四射在线日 | 性欧美1819sex性高清| 国产午夜精品一区二区三区视频| 久久久久久亚洲综合影院红桃| 亚洲电影毛片| 午夜日韩在线| 影音欧美亚洲| 欧美日韩视频第一区| 欧美亚洲尤物久久| 亚洲国产精品一区二区www| 亚洲欧美综合另类中字| 亚洲成色www8888| 欧美色中文字幕| 久久久久综合一区二区三区| 亚洲美女视频在线观看| 久久免费视频一区| 亚洲色无码播放| 在线观看欧美成人| 国产精品99免费看 | 久久精品综合一区| 亚洲免费观看视频| 狠久久av成人天堂| 欧美亚一区二区| 免费视频久久| 欧美诱惑福利视频| 国产精品99久久久久久www| 欧美成人资源网| 午夜精品偷拍| 日韩亚洲欧美一区二区三区| 国产一区二区精品丝袜| 欧美亚州韩日在线看免费版国语版| 久久综合九色综合欧美狠狠| 午夜久久99| 亚洲一区二区三区免费在线观看| 亚洲国产欧美日韩| 免费观看在线综合色| 久久精品国产清自在天天线| 亚洲综合丁香| 亚洲亚洲精品三区日韩精品在线视频| 亚洲国产另类精品专区 | 欧美在线一级va免费观看|