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的過程中,發現一個很生動的當代GC(垃圾收集器)實現的類比,拿出來和大家分享,能幫助其他人理解GC當然再好不過,幫不上的話(言下之意你已經知道分代式GC的原理),就當是消遣吧。

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

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

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


          Feedback

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

          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  回復  更多評論   

          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  回復  更多評論   

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

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

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

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

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

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

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

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

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

          2006-04-28 15:37 by Harryson
          謝謝!
          blogjava的肯定訂閱了.
          您不是訂閱了100多個了嗎?
          我是想偷懶,想從您那撒選一些我感興趣的rss
          主站蜘蛛池模板: 页游| 巴彦淖尔市| 济源市| 水富县| 邳州市| 临澧县| 红原县| 遂宁市| 社旗县| 阳山县| 尉犁县| 曲水县| 洪湖市| 汾西县| 台中市| 黔西县| 安徽省| 扎赉特旗| 武功县| 郧西县| 双柏县| 济南市| 武山县| 神木县| 葫芦岛市| 平塘县| 应用必备| 马鞍山市| 南投市| 武清区| 宁国市| 桂东县| 柳江县| 长宁县| 八宿县| 仁怀市| 平顶山市| 阳朔县| 石狮市| 太原市| 报价|