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

隨筆 - 119  文章 - 290  trackbacks - 0

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

常用鏈接

留言簿(12)

隨筆分類

我的博客

搜索

  •  

積分與排名

  • 積分 - 305652
  • 排名 - 84

最新評論

閱讀排行榜

最近寫新項(xiàng)目,希望能從內(nèi)存管理、指針引用的問題上前進(jìn)一小步,于是在網(wǎng)上爬出云風(fēng)以前寫的一個gc庫,姑且稱為yfgc吧
粗看了一下接口,很少很正交,使用例子也非常簡單。只是我對垃圾收集的原理不是很熟悉,又或者這些接口太接近gc的底層原理,因此我并不是很確定如何運(yùn)用這些接口。
借用某句著名的話,“源碼面前,了無秘密”。為了了解如何運(yùn)用這些接口,我決定去看看這個不到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庫的,約摸著底下也就是初始化一些數(shù)據(jù)結(jié)構(gòu),分配一些初始內(nèi)存等等。不過至于做了什么,以后再談。
gc_exit,一看就知道是在程序退出時(shí)析構(gòu)gc庫的,多半是釋放內(nèi)存。如果實(shí)現(xiàn)不是很復(fù)雜的話,不調(diào)用這個函數(shù)也不會怎樣。
gc_collect,一定是收集垃圾的了,不過現(xiàn)在就深入這個函數(shù)的話,一定是本末倒置。因?yàn)檫€不知道內(nèi)存在哪里分配,就去看內(nèi)存收集顯然是不對的。
gc_malloc,可以肯定,這就是gc庫的內(nèi)存分配接口了。好吧,先看看這個函數(shù),我都有點(diǎn)迫不及待了。

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

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

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

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

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

至于手動collect,在我看來和后臺自動collect無啥區(qū)別  回復(fù)  更多評論
  
# re: 垃圾收集的那點(diǎn)事(A) 2008-09-10 22:45 陳梓瀚(vczh)
還是有的,譬如new失敗的時(shí)候后臺可以中斷然后collect然后再幫你new。  回復(fù)  更多評論
  
# re: 垃圾收集的那點(diǎn)事(A) 2008-09-11 15:49 空明流轉(zhuǎn)
說實(shí)話我真覺得不比shared_ptr好多少,RAII才是C++一類貨的王道。  回復(fù)  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              欧美性大战久久久久久久| 99热精品在线| 久久av一区二区三区漫画| 国产精品久久一级| 欧美一区午夜视频在线观看| 亚洲国产精品传媒在线观看| 麻豆精品一区二区综合av| 久久久久国产精品一区| 亚洲高清在线观看| 亚洲狼人综合| 国产女人精品视频| 欧美黑人在线观看| 欧美色精品天天在线观看视频| 亚洲综合第一| 国产亚洲激情| 久久久久久久一区二区| 欧美成人视屏| 亚洲直播在线一区| 久久免费观看视频| 亚洲一区激情| 久久综合网络一区二区| 亚洲性图久久| 久久久久久久性| 亚洲色图制服丝袜| 久久精品一区二区三区不卡牛牛| 欧美成人蜜桃| 亚洲视频免费| 久久久国产精品一区二区三区| 欧美日韩综合视频| 久久亚洲欧美国产精品乐播| 欧美日韩国产精品一区| 久久综合久久综合久久综合| 欧美激情一区二区三区蜜桃视频| 国产亚洲一区二区精品| 欧美激情一区二区三区在线| 国产美女精品| 99热精品在线| 亚洲毛片在线| 久久精品夜夜夜夜久久| 午夜视频一区在线观看| 欧美精品福利| 欧美激情aⅴ一区二区三区| 国产精品天天看| 亚洲美女av网站| 亚洲国产综合在线看不卡| 欧美一区二区国产| 亚洲欧美日本国产专区一区| 欧美日韩999| 亚洲国产欧美一区二区三区久久 | 欧美国内亚洲| 久久国产精品第一页| 欧美日韩在线电影| 亚洲国产女人aaa毛片在线| 国产精品有限公司| 99亚洲精品| 一区二区日韩| 欧美日韩123| 亚洲精品日韩精品| 99日韩精品| 欧美日韩视频在线观看一区二区三区 | 蜜桃久久精品一区二区| 国产精品乱码妇女bbbb| 一本大道久久a久久精二百| 99国产精品视频免费观看| 看欧美日韩国产| 欧美国产在线电影| 最新国产の精品合集bt伙计| 欧美成人免费在线观看| 亚洲激精日韩激精欧美精品| 亚洲精品三级| 欧美日韩网址| 亚洲一区二区三区在线| 久久av资源网| 国产在线乱码一区二区三区| 亚洲网站在线观看| 国产精品亚洲综合色区韩国| 香港久久久电影| 免费不卡在线观看av| 亚洲国产精品第一区二区三区| 99视频一区二区| 一本一本久久a久久精品综合妖精| 亚洲图片在线| 久久精品亚洲国产奇米99| 一区二区在线视频观看| 欧美成年人在线观看| 日韩午夜电影在线观看| 欧美一区二区精品久久911| 国产午夜亚洲精品羞羞网站 | 午夜精品网站| 国产自产v一区二区三区c| 久久青草欧美一区二区三区| 亚洲人成啪啪网站| 午夜亚洲伦理| 亚洲国产中文字幕在线观看| 欧美视频免费看| 久久九九久久九九| 亚洲九九精品| 久久久久久一区二区| 99这里只有精品| 国产亚洲精品福利| 欧美日韩国产三区| 久久狠狠久久综合桃花| 亚洲美女免费视频| 美女黄网久久| 午夜伦理片一区| 亚洲日本欧美| 国产香蕉97碰碰久久人人| 欧美日韩hd| 久久久久久伊人| 亚洲一区二区日本| 欧美国产91| 国产精品久久福利| 亚洲美女中文字幕| 久久亚洲国产精品一区二区| 亚洲一区二区三区四区在线观看| 久久精品国产亚洲高清剧情介绍| 亚洲视频在线二区| 国产亚洲精品一区二区| 欧美精品久久久久久久久久| 午夜精品亚洲一区二区三区嫩草| 亚洲一区二区三区四区中文| 精品成人一区二区三区| 国产精品精品视频| 欧美日韩123| 欧美好骚综合网| 另类欧美日韩国产在线| 欧美一区二区久久久| 亚洲美女色禁图| 亚洲人成网站在线播| 狂野欧美激情性xxxx| 久久高清国产| 亚洲欧美日韩国产成人| 一本色道久久综合一区| 亚洲国产专区| 亚洲激情在线激情| 激情亚洲网站| 狠狠色丁香久久婷婷综合丁香 | 久久网站免费| 亚洲特级毛片| 一区二区三区视频在线播放| 亚洲视频成人| 亚洲在线观看视频网站| 亚洲特级毛片| 亚洲一区二区三区久久 | 久久综合久久久| 久久精品夜色噜噜亚洲a∨| 亚洲欧美日本另类| 亚洲制服av| 性8sex亚洲区入口| 久久久欧美一区二区| 久久久国产精品一区二区三区| 欧美激情亚洲另类| 亚洲激情视频在线播放| 欧美高清视频一区二区| 最新国产拍偷乱拍精品| 一本久道久久综合中文字幕| 中文一区字幕| 欧美在线一区二区三区| 老牛嫩草一区二区三区日本| 欧美精品免费播放| 欧美午夜三级| 亚洲欧洲日本专区| 日韩视频精品在线观看| 亚洲欧美日韩国产综合| 久久国产主播精品| 欧美韩日视频| 国产精品大片免费观看| 激情婷婷欧美| 99精品国产高清一区二区| 欧美一级理论片| 欧美成人乱码一区二区三区| 一本一本久久a久久精品牛牛影视| 久久久水蜜桃| 嫩草国产精品入口| 一区二区三区国产精品| 久久国产精品黑丝| 欧美精品一区二区三区四区| 国产欧美一区二区三区国产幕精品| 欧美成人资源网| 国产精品一区二区男女羞羞无遮挡| 亚洲精品综合| 久久久久国产精品麻豆ai换脸| 日韩亚洲在线观看| 欧美一区二区视频97| 麻豆国产va免费精品高清在线| 午夜欧美理论片| 欧美激情一区三区| 亚洲欧美成人一区二区三区| 韩日精品视频| 亚洲欧洲综合另类在线| 亚洲愉拍自拍另类高清精品| 免费欧美电影| 亚洲欧美日韩视频一区| 欧美久久综合| 亚洲国产精品www| 久久久一区二区| 亚洲视频一二区| 欧美精品一区二区高清在线观看| 久久在线视频在线| 国产精品乱码|