<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Junky's IT Notebook

    統計

    留言簿(8)

    積分與排名

    WebSphere Studio

    閱讀排行榜

    評論排行榜

    JVM的垃圾回收機制詳解和調優

      1.JVM的gc概述

      gc即垃圾收集機制是指jvm用于釋放那些不再使用的對象所占用的內存。java語言并不要求jvm有gc,也沒有規定gc如何工作。不過常用的jvm都有gc,而且大多數gc都使用類似的算法管理內存和執行收集操作。

      在充分理解了垃圾收集算法和執行過程后,才能有效的優化它的性能。有些垃圾收集專用于特殊的應用程序。比如,實時應用程序主要是為了避免垃圾收集中斷,而大多數OLTP應用程序則注重整體效率。理解了應用程序的工作負荷和jvm支持的垃圾收集算法,便可以進行優化配置垃圾收集器。

      垃圾收集的目的在于清除不再使用的對象。gc通過確定對象是否被活動對象引用來確定是否收集該對象。gc首先要判斷該對象是否是時候可以收集。兩種常用的方法是引用計數和對象引用遍歷。

    1.1.引用計數
      引用計數存儲對特定對象的所有引用數,也就是說,當應用程序創建引用以及引用超出范圍時,jvm必須適當增減引用數。當某對象的引用數為0時,便可以進行垃圾收集。

    1.2.對象引用遍歷
      早期的jvm使用引用計數,現在大多數jvm采用對象引用遍歷。對象引用遍歷從一組對象開始,沿著整個對象圖上的每條鏈接,遞歸確定可到達(reachable)的對象。如果某對象不能從這些根對象的一個(至少一個)到達,則將它作為垃圾收集。在對象遍歷階段,gc必須記住哪些對象可以到達,以便刪除不可到達的對象,這稱為標記(marking)對象。

      下一步,gc要刪除不可到達的對象。刪除時,有些gc只是簡單的掃描堆棧,刪除未標記的未標記的對象,并釋放它們的內存以生成新的對象,這叫做清除(sweeping)。這種方法的問題在于內存會分成好多小段,而它們不足以用于新的對象,但是組合起來卻很大。因此,許多gc可以重新組織內存中的對象,并進行壓縮(compact),形成可利用的空間。

      為此,gc需要停止其他的活動活動。這種方法意味著所有與應用程序相關的工作停止,只有gc運行。結果,在響應期間增減了許多混雜請求。另外,更復雜的gc不斷增加或同時運行以減少或者清除應用程序的中斷。有的gc使用單線程完成這項工作,有的則采用多線程以增加效率。

    posted on 2006-06-04 22:16 junky 閱讀(317) 評論(1)  編輯  收藏 所屬分類: java

    評論

    # re: JVM的垃圾回收機制詳解和調優 2006-08-02 18:44 youke

    the title is big  回復  更多評論   

    主站蜘蛛池模板: 久久乐国产精品亚洲综合| 牛牛在线精品观看免费正| 亚洲午夜国产精品无码| 成人免费无码大片A毛片抽搐| 国产va在线观看免费| 色哟哟国产精品免费观看| 国产亚洲精品影视在线| 老汉色老汉首页a亚洲| 在线精品亚洲一区二区三区| 日韩一级在线播放免费观看| 国产四虎免费精品视频| 久久99热精品免费观看牛牛| 一级黄色毛片免费看| 理论秋霞在线看免费| 亚洲成a∨人片在无码2023| 亚洲av无码专区在线| 亚洲欧洲精品国产区| 婷婷精品国产亚洲AV麻豆不片 | 国产成人无码综合亚洲日韩| 亚洲精品国产精品国自产观看| 成人毛片18岁女人毛片免费看| 四虎在线最新永久免费| 99久热只有精品视频免费观看17| 成年免费a级毛片免费看无码| 人成免费在线视频| 无遮挡国产高潮视频免费观看| 国产一区二区三区亚洲综合| 粉色视频免费入口| 理论片在线观看免费| 黄色一级毛片免费| kk4kk免费视频毛片| 九九免费久久这里有精品23| 男女男精品网站免费观看| 日韩在线视频播放免费视频完整版| 欧美亚洲国产SUV| 国产亚洲综合久久| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 亚洲无码一区二区三区| 亚洲丰满熟女一区二区哦| 亚洲国产精品精华液| 男人的天堂av亚洲一区2区|