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

隨筆 - 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>
              国产视频在线一区二区| 一区二区三区免费观看| 一本色道久久综合狠狠躁篇怎么玩 | 欧美一区二区三区喷汁尤物| 亚洲视频中文字幕| 亚洲影院一区| 久久精品毛片| 久久精品国产综合| 亚洲欧美综合网| 久久精品国产亚洲高清剧情介绍 | 免费观看成人鲁鲁鲁鲁鲁视频| 久久久精品五月天| 欧美美女bbbb| 国产精品一二三视频| 韩国av一区二区三区在线观看| 欧美一区二区三区日韩视频| 国产精品激情| 国产精品一区二区三区四区五区| 国产精品久久999| 国产日韩精品视频一区二区三区| 雨宫琴音一区二区在线| 一本色道久久88综合亚洲精品ⅰ | 欧美一级片在线播放| 欧美在线视频观看免费网站| 美女视频黄 久久| 一本色道久久综合亚洲精品婷婷| 欧美一区二区三区在| 欧美韩日亚洲| 激情欧美一区| 亚洲欧美一区二区激情| 欧美日本一区| 91久久精品国产91久久| 一区二区三区欧美亚洲| 欧美一级网站| 亚洲高清视频的网址| 一道本一区二区| 久久综合影音| 国产乱子伦一区二区三区国色天香 | 亚洲欧美日韩成人高清在线一区| 美女国内精品自产拍在线播放| 亚洲精品小视频在线观看| 亚洲人成在线观看| 欧美一区二区三区在线| 99国产精品久久久| 裸体丰满少妇做受久久99精品| 亚洲精品欧美| 狠狠综合久久av一区二区老牛| 亚洲激情婷婷| 久久久久9999亚洲精品| 99国内精品久久| 免费久久99精品国产自| 国产一区二区视频在线观看| 亚洲欧美激情视频| 亚洲美女av网站| 欧美69视频| 在线精品视频免费观看| 久久综合九色| 久久九九有精品国产23| 激情久久久久久| 久久精品99久久香蕉国产色戒| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 性感少妇一区| 国产精品视频99| 亚洲特级毛片| 国产精品99久久不卡二区| 国产精品高潮粉嫩av| 亚洲无线视频| 亚洲自拍偷拍视频| 国内综合精品午夜久久资源| 久久精品91| 久久国产精品一区二区三区| 韩日欧美一区| 欧美激情网友自拍| 欧美精品一区二区三区视频| 亚洲视频免费| 欧美一区午夜精品| 亚洲国产成人不卡| 日韩视频一区二区在线观看 | 香蕉久久夜色精品国产使用方法| 中文有码久久| 伊人久久综合| 亚洲日本理论电影| 国产精品国产自产拍高清av| 午夜精品亚洲| 久久免费黄色| 亚洲午夜电影在线观看| 欧美在线高清| 在线综合欧美| 欧美一区二区三区婷婷月色| 亚洲肉体裸体xxxx137| 中文日韩欧美| 亚洲电影免费观看高清完整版在线观看| 欧美国产日本在线| 国产精品爽爽ⅴa在线观看| 欧美mv日韩mv国产网站| 久久精品1区| 美女图片一区二区| 亚洲欧美久久久| 久久久久久伊人| 正在播放日韩| 久久免费国产精品1| 亚洲一区视频在线观看视频| 久久国产黑丝| 一区二区三区久久久| 久久不射2019中文字幕| 亚洲精品一区在线| 欧美综合国产精品久久丁香| 一区二区日韩欧美| 久久久久久网| 亚洲欧美日韩在线一区| 免费观看成人| 久久久久久网| 在线欧美一区| 久久精品电影| 欧美成人黄色小视频| 欧美国产日韩在线观看| 国产亚洲精品v| 亚洲美女精品久久| 在线观看欧美日本| 欧美亚洲综合在线| 国外视频精品毛片| 亚洲嫩草精品久久| 亚洲午夜未删减在线观看| 欧美大色视频| 亚洲第一在线| 亚洲人成人一区二区三区| 久久精品中文字幕免费mv| 欧美一区国产二区| 国产精品久久久久久久久久免费看| 亚洲精品乱码| 日韩小视频在线观看专区| 欧美精品九九| 国产九区一区在线| 亚洲毛片播放| 亚洲精品久久久蜜桃| 久久午夜电影| 另类尿喷潮videofree| 国内精品免费在线观看| 性8sex亚洲区入口| 久久精品视频导航| 国产视频一区免费看| 亚洲免费一在线| 午夜宅男久久久| 国产精品亚洲а∨天堂免在线| 一本色道婷婷久久欧美| 亚洲免费小视频| 美日韩精品免费| 欧美刺激午夜性久久久久久久| 伊人成人网在线看| 欧美专区18| 免费在线欧美黄色| 伊人久久av导航| 亚洲高清视频一区| 国内精品国产成人| 久久国产欧美精品| 久久免费偷拍视频| 一区二区三区我不卡| 久久久久九九视频| 欧美激情视频在线播放| 妖精视频成人观看www| 欧美人与性禽动交情品 | 夜夜夜精品看看| 欧美日韩国产一中文字不卡 | 欧美成人午夜免费视在线看片| 亚洲欧洲精品一区二区三区不卡| 99热免费精品| 国产视频欧美视频| 欧美日韩成人综合天天影院| 亚洲尤物视频网| 久久久久国产精品麻豆ai换脸| 免费成人高清| 亚洲制服欧美中文字幕中文字幕| 亚洲一区二区毛片| 韩国亚洲精品| 欧美成人综合| 亚洲一区二区三区国产| 欧美午夜精品久久久久久人妖 | 好吊日精品视频| 欧美日韩国产综合视频在线观看中文| 亚洲日本va午夜在线影院| 久久久国产一区二区| 一片黄亚洲嫩模| 一区二区亚洲欧洲国产日韩| 欧美日韩视频在线| 久久亚洲综合色| 亚洲一区在线直播| 亚洲欧洲精品一区二区精品久久久| 亚洲男人的天堂在线观看| 亚洲福利国产精品| 欧美日韩伊人| 亚洲精品一区中文| 国产精品视频999| 欧美大片在线观看一区二区| 亚洲欧美卡通另类91av| 亚洲福利视频免费观看| 欧美在线观看一区二区| 日韩视频在线一区二区| 在线成人av| 国产在线拍偷自揄拍精品| 欧美色视频一区|