Read Sean

          Read me, read Sean.
          posts - 508, comments - 655, trackbacks - 9, articles - 4

          換個角度理解GC

          Posted on 2006-04-27 23:08 laogao 閱讀(1771) 評論(6)  編輯  收藏 所屬分類: The Other Side

          不知不覺中,我在NewsGator Online訂閱的Feed已超過100個,每天的閱讀壓力也在逐漸增加。在使用NewsGator的過程中,發(fā)現(xiàn)一個很生動的當(dāng)代GC(垃圾收集器)實現(xiàn)的類比,拿出來和大家分享,能幫助其他人理解GC當(dāng)然再好不過,幫不上的話(言下之意你已經(jīng)知道分代式GC的原理),就當(dāng)是消遣吧。

          我不知道大家平時怎么用NewsGator來閱讀訂閱的Feed,我的習(xí)慣是先簡單瀏覽一遍,把感興趣但是暫時沒時間看的話題加入My Clippings目錄,然后把當(dāng)前這一頁全部標(biāo)記為已讀,繼續(xù)瀏覽下一頁或者下一個目錄。等到空閑的時候,打開My Clippings仔細(xì)閱讀那些被我加進(jìn)來的文章和鏈接。My Clippings目錄和其他目錄一樣,默認(rèn)都是時間降序排列的,越新的Feed越靠前,而我通常都會把My Clippings里面的Feed數(shù)量控制在100以內(nèi)。

          由于我訂閱的Feed很多,涉及到的領(lǐng)域也較廣,加上閱讀時間有限,第一遍總會有一些原本不是我想細(xì)看的溜進(jìn)My Clippings目錄,當(dāng)我進(jìn)入My Clippings,發(fā)現(xiàn)這樣的Feed,對待它們我就是一個字:刪。然后會陸續(xù)讀掉一些Feed,分享一些Feed,這些閱讀掉和分享掉的Feed,我也會清理出My Clippings。而我的閱讀順序,默認(rèn)也是先讀新的,再讀舊的,因為越新的,越值得關(guān)注。我每次打開My Clippings也不一定總能把整個目錄從頭到尾瀏覽一遍,不過幾乎也總能發(fā)現(xiàn)、閱讀和清理掉一些Feed。這樣通過一倫又一倫的新陳代謝,我的My Clippings目錄能夠長時間保持在100個條目之內(nèi),也總是能夠留下我感興趣但是還沒來得及細(xì)看或者分享的Feed。

          想想看,一個分代式GC背后的想法和實現(xiàn)不也是這樣么?當(dāng)內(nèi)存不夠或者應(yīng)用程序主動提出垃圾收集的要求時,GC會在最新的一代對象池中找出垃圾(可能是沒有意義的,被錯誤創(chuàng)建的對象,也可能是被使用掉,失去作用的對象),清理掉,留下的被升級為第二代。為什么GC可以認(rèn)定第一代中的對象最有可能是垃圾,而第二代、第三代對象相對而言不大可能是垃圾呢?比對一下剛才的例子,沒有經(jīng)歷過清理同時又是新加進(jìn)來的Feed,最有可能是被錯誤加進(jìn)來或者已經(jīng)閱讀和分享過的,而經(jīng)歷過一次和多次清理都沒有被清除或者分享掉的,則更有可能是那些等待我閱讀和分享的Feed。換作對象的概念:那些沒有經(jīng)歷過GC、新創(chuàng)建的對象,即第一代對象中,最有可能發(fā)現(xiàn)錯誤創(chuàng)建或者已經(jīng)處理結(jié)束的對象(超出生命周期),而第二代或者更老的對象,經(jīng)歷過GC,卻沒有被清掉(因為有其他對象還在使用它),則更有可能可能是真正有用的對象。把有限的精力用在真正值得的地方,這就是分代式GC相對傳統(tǒng)GC的更高效率的來源。


          Feedback

          # re: 換個角度理解GC  回復(fù)  更多評論   

          2006-04-28 09:33 by kukoo
          If you are using the NewsGator, I suggest you may use the FeedDemon, a desktop RSS reader application. FeedDemon was purchased by NewsGator and the latest version can tightly integrate with NewsGator, ie, sync the feed between the FeedDemon and NewsGator Online, mark "star" for the feeds at both side, etc.

          # re: 換個角度理解GC  回復(fù)  更多評論   

          2006-04-28 10:25 by 大胃
          Thanks for the recommendation. In fact I have been using FeedDemon 2.0 Trial for sometime now. It turns out there still are some drawbacks, of which I would not pay $29.95 for. But thanks anyway.

          For me, the drawbacks include:
          1- The sync feature does not work properly if you have sub-folders on the Web Reader.
          2- The tabbed browsing does not feel right or normal as compared with Firefox (maybe i can configure it to use firefox instead but i would not bother to try that now).
          3- Also, for some, if not most, of my reading, I live under Ubuntu Linux, where FeedDemon does not suit itself very well.
          4- What is the point to use an offline-enabled rich-client these days which is not so "feature-rich" as compared with its web-based counterpart when one can easily get connected 7x24?

          Maybe I will keep trying new versions of FeedDemon in the future, but for now, I guess I'll do just fine with Newsgator Online. :-)

          # re: 換個角度理解GC  回復(fù)  更多評論   

          2006-04-28 12:35 by Harryson
          好東東,我也得弄一個才是了.

          # re: 換個角度理解GC  回復(fù)  更多評論   

          2006-04-28 14:42 by Harryson
          能列出一些您覺得好的rss URL嗎?

          # re: 換個角度理解GC  回復(fù)  更多評論   

          2006-04-28 15:16 by 大胃
          To Harryson,

          每個人感興趣的內(nèi)容都不一樣,而現(xiàn)在網(wǎng)絡(luò)上的RSS訂閱內(nèi)容也相當(dāng)豐富,因此要得到一個適合自己的RSS列表,需要慢慢的積累。因為我不知道你想關(guān)心哪方面的Feed,所以不知道如何推薦。

          如果實在無從下手,你可以到NewsGator.com或者Bloglines.com上面注冊一個賬戶先,它們都提供一些現(xiàn)成的RSS Feed供你選擇。

          假如你覺得我的blog還不錯的話,從訂閱我的RSS開始如何?:P

          # re: 換個角度理解GC  回復(fù)  更多評論   

          2006-04-28 15:37 by Harryson
          謝謝!
          blogjava的肯定訂閱了.
          您不是訂閱了100多個了嗎?
          我是想偷懶,想從您那撒選一些我感興趣的rss
          主站蜘蛛池模板: 邢台市| 乐亭县| 华阴市| 迁安市| 丹棱县| 天峻县| 河池市| 聂拉木县| 那坡县| 渭源县| 搜索| 肥西县| 莆田市| 平潭县| 宜兰县| 泸州市| 南阳市| 吴堡县| 莱州市| 交口县| 武鸣县| 琼结县| 读书| 绵竹市| 时尚| 通榆县| 田东县| 宁南县| 集安市| 正阳县| 中卫市| 平泉县| 林西县| 西藏| 虎林市| 高安市| 泰宁县| 太湖县| 明星| 永胜县| 阳江市|