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

隨筆 - 119  文章 - 290  trackbacks - 0

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

常用鏈接

留言簿(12)

隨筆分類

我的博客

搜索

  •  

積分與排名

  • 積分 - 306389
  • 排名 - 84

最新評論

閱讀排行榜

最近寫新項目,希望能從內存管理、指針引用的問題上前進一小步,于是在網上爬出云風以前寫的一個gc庫,姑且稱為yfgc吧
粗看了一下接口,很少很正交,使用例子也非常簡單。只是我對垃圾收集的原理不是很熟悉,又或者這些接口太接近gc的底層原理,因此我并不是很確定如何運用這些接口。
借用某句著名的話,“源碼面前,了無秘密”。為了了解如何運用這些接口,我決定去看看這個不到1000行的gc庫的源碼,順便寫些東西,畢竟好久沒寫了。

yfgc的地址
svn地址:http://manualgc.googlecode.com/svn/trunk

撇去weak table和再分配不談,yfgc有以下接口
 1void gc_init();
 2void gc_exit();
 3
 4void gc_enter();
 5void gc_leave(void *p,);
 6
 7void* gc_malloc(size_t sz,void *parent,void (*finalizer)(void *));
 8
 9void gc_link(void *parent,void *prev,void *now);
10void gc_collect();

先看幾個明顯易懂的
gc_init,一看就知道是初始化這個gc庫的,約摸著底下也就是初始化一些數據結構,分配一些初始內存等等。不過至于做了什么,以后再談。
gc_exit,一看就知道是在程序退出時析構gc庫的,多半是釋放內存。如果實現(xiàn)不是很復雜的話,不調用這個函數也不會怎樣。
gc_collect,一定是收集垃圾的了,不過現(xiàn)在就深入這個函數的話,一定是本末倒置。因為還不知道內存在哪里分配,就去看內存收集顯然是不對的。
gc_malloc,可以肯定,這就是gc庫的內存分配接口了。好吧,先看看這個函數,我都有點迫不及待了。

先看一下gc_malloc的三個參數
1.sz,請求分配的內存大小
2.parent,按字面意思是父親,如果用工廠模式做類比的話,也許會更容易理解些。工廠生產一個對象,就申請一塊內存,parent則是工廠本身。
更通用和接近的解釋是,parent即持有或者用指針引用這塊新內存的那些對象。垃圾收集的概念就是,當一塊內存在程序里不被任何對象持有或者指針引用的時候,它就是一塊廢棄的內存,可以被系統(tǒng)回收。當有任何一個指針引用著這塊內存的時候,他就必然不能被回收。
所以,parent這個參數,或者說,新分配的內存必須要比parent那塊內存活得更長久,因為parent擁有或者引用著這塊新分配的內存。
3.finalizer,析構函數,如果分配內存用來實例化一個類的話,那么這塊內存要回收的時候,顯然要有一個時機來調用類的析構函數才行。這個回調函數正好可以完成這個任務。

干脆寫一個yfgc的源碼解析系列好了

posted on 2008-09-10 20:22 LOGOS 閱讀(4797) 評論(5)  編輯 收藏 引用 所屬分類: 垃圾收集

FeedBack:
# re: 垃圾收集的那點事(A) 2008-09-10 20:37 陳梓瀚(vczh)
語言們用的垃圾收集器都不需要我們顯示collect而能夠在適當的時候【中斷程序】并【開始搜索并收集】。所以這個東西最多算個池。以前我見過一個可以在C++用的垃圾收集器,不用自己collect,他后臺自動執(zhí)行了。

這個gc看起來是讓你顯式地維護一個圖,然后手動對一定不能收集的節(jié)點進行標記,然后自己collect。算是【理論上】實現(xiàn)了那個功能。  回復  更多評論
  
# re: 垃圾收集的那點事(A) 2008-09-10 21:10 Don't tell u
研究win2k泄漏代碼里面的gc似乎也是一種方法,雖然不像.net java那么徹底,似乎夠用,^_^。  回復  更多評論
  
# re: 垃圾收集的那點事(A) 2008-09-10 21:14 LOGOS
@陳梓瀚(vczh)
不錯,確實如你所說,這東西強迫人手動去維護依賴關系
如果不這么做,就無法從中得到任何好處

至于手動collect,在我看來和后臺自動collect無啥區(qū)別  回復  更多評論
  
# re: 垃圾收集的那點事(A) 2008-09-10 22:45 陳梓瀚(vczh)
還是有的,譬如new失敗的時候后臺可以中斷然后collect然后再幫你new。  回復  更多評論
  
# re: 垃圾收集的那點事(A) 2008-09-11 15:49 空明流轉
說實話我真覺得不比shared_ptr好多少,RAII才是C++一類貨的王道。  回復  更多評論
  

只有注冊用戶登錄后才能發(fā)表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              亚洲欧美在线网| 模特精品裸拍一区| 欧美四级在线观看| 欧美成人激情视频| 欧美成人一区二区在线| 欧美久久久久久| 欧美日韩亚洲一区二区三区在线| 欧美成人午夜| 国产精品vip| 黄色一区二区在线观看| 亚洲国产美女| 午夜精品区一区二区三| 久久久久久久久综合| 欧美激情1区2区3区| 日韩视频国产视频| 欧美在线观看一二区| 欧美 日韩 国产在线| 国产精品啊v在线| 伊甸园精品99久久久久久| 亚洲欧洲日本专区| 欧美一区午夜精品| 欧美大片在线看免费观看| 夜夜嗨一区二区| 久久久爽爽爽美女图片| 欧美日韩一区二区三区在线看| 国产日韩精品一区观看| 亚洲欧洲精品一区| 欧美亚洲一级片| 亚洲大片一区二区三区| 亚洲精品久久久一区二区三区| 亚洲一区久久久| 久久亚洲精品中文字幕冲田杏梨 | 亚洲午夜久久久久久尤物| 久久精品欧美日韩| 亚洲精选中文字幕| 久久人人九九| 国产精品综合av一区二区国产馆| 亚洲人成7777| 久久久另类综合| 亚洲午夜精品一区二区三区他趣| 毛片一区二区三区| 国产毛片精品视频| 中文av一区二区| 欧美国产视频在线| 久久精品在线观看| 国产无一区二区| 亚洲综合成人婷婷小说| 亚洲欧洲在线播放| 男同欧美伦乱| 在线看一区二区| 久久成人国产| 午夜国产精品影院在线观看 | 99在线热播精品免费| 今天的高清视频免费播放成人| 99热这里只有精品8| 亚洲电影中文字幕| 欧美亚洲在线观看| 亚洲一区在线观看视频 | 亚洲国产精品va在线看黑人动漫| 欧美诱惑福利视频| 国产亚洲毛片| 久久久噜噜噜久久人人看| 亚洲综合日韩| 国产精品一二三| 午夜精品久久久久久久男人的天堂| 亚洲欧洲日韩女同| 欧美人成在线| 亚洲欧美清纯在线制服| 亚洲一线二线三线久久久| 国产精品每日更新| 欧美一区二视频| 久久精品国产v日韩v亚洲 | 欧美91大片| 免费日韩av| 一本到高清视频免费精品| 欧美激情视频网站| 欧美91大片| 一区二区精品在线| 一区二区久久久久| 国产亚洲欧美激情| 老巨人导航500精品| 麻豆成人精品| 一区二区三区成人精品| 一区二区三区四区五区视频| 国产欧美精品xxxx另类| 久久精品成人一区二区三区| 久久国产精品久久w女人spa| 亚洲缚视频在线观看| 亚洲精品国产精品久久清纯直播 | 亚洲一区二区三区激情| 国产一区二区三区高清| 欧美激情第9页| 欧美日韩在线视频观看| 久久精品欧美日韩| 欧美激情综合网| 国产精品99久久久久久宅男| 一区二区三区蜜桃网| 激情综合色综合久久| 99av国产精品欲麻豆| 国产农村妇女精品一区二区| 亚洲国产天堂久久综合网| 国产精品一区二区久久精品| 欧美成人国产| 国产精品日日摸夜夜摸av| 欧美黄色一级视频| 国产日韩专区| 在线亚洲欧美视频| 亚洲黄色有码视频| 亚洲欧美三级伦理| 欧美第十八页| 久久久久久久久久看片| 欧美日韩国产999| 免费一级欧美片在线播放| 国产精品99免视看9| 欧美成人免费小视频| 国产麻豆日韩| 一本色道久久综合狠狠躁篇的优点 | 国外成人在线视频| 99日韩精品| 亚洲精品一线二线三线无人区| 午夜精品视频| 香蕉久久精品日日躁夜夜躁| 欧美日韩成人精品| 亚洲国产aⅴ天堂久久| 精品91在线| 久久不射中文字幕| 性亚洲最疯狂xxxx高清| 国产精品美女黄网| 亚洲视频中文| 亚洲一区二区三区四区视频| 欧美成人a视频| 亚洲福利小视频| 亚洲精品国产精品久久清纯直播 | 久久综合九色综合久99| 欧美一区深夜视频| 国产欧美日韩一区| 欧美在线短视频| 久久精品人人爽| 国产精品五区| 午夜欧美精品| 久久久精品欧美丰满| 国产精品无码永久免费888| 一区二区三区毛片| 先锋资源久久| 国产日韩视频| 欧美一区二区三区日韩| 久久er精品视频| 国产在线观看91精品一区| 欧美亚洲综合在线| 久久久久国内| 亚洲黄色在线看| 欧美国产日产韩国视频| 嫩草国产精品入口| 99精品久久久| 国产精品萝li| 久久激情综合网| 欧美激情综合色| 一区二区三区高清视频在线观看 | 亚洲免费观看在线视频| 欧美精品一区二区三区在线播放 | 久久精品卡一| 亚洲成人在线| 一本色道久久88精品综合| 午夜精品久久久久久久白皮肤| 国产精品日韩高清| 久久久www成人免费毛片麻豆| 开元免费观看欧美电视剧网站| 欧美激情女人20p| 亚洲激情精品| 国产午夜久久久久| 免费日韩成人| 亚洲天堂网在线观看| 久久久在线视频| 一本久道久久久| 国产一区二区三区免费在线观看| 久久尤物视频| 亚洲天堂成人| 欧美成人资源| 欧美亚洲日本网站| 亚洲人成7777| 国产视频久久网| 欧美精品一区二区三区蜜桃| 亚洲综合成人在线| 亚洲经典在线| 久久久久天天天天| 亚洲一区免费网站| 亚洲第一精品电影| 国产欧美一区二区精品忘忧草| 老司机免费视频一区二区三区| 日韩视频一区二区三区在线播放| 久久久av水蜜桃| 亚洲影院污污.| 亚洲精品欧美日韩专区| 国产精品一区亚洲| 欧美电影资源| 欧美中文在线观看| 亚洲视屏在线播放| 亚洲国产精品久久精品怡红院| 久久国产成人| 午夜精品www|