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

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

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

    人在江湖

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      82 Posts :: 10 Stories :: 169 Comments :: 0 Trackbacks

    年輕代:

        所有新生成的對(duì)象首先都是放在年輕代的。年輕代的目標(biāo)就是盡可能快速的收集掉那些生命周期短的對(duì)象。年輕代分三個(gè)區(qū)。一個(gè)Eden區(qū),兩個(gè) Survivor區(qū)(一般而言)。大部分對(duì)象在Eden區(qū)中生成。當(dāng)Eden區(qū)滿時(shí),還存活的對(duì)象將被復(fù)制到Survivor區(qū)(兩個(gè)中的一個(gè)),當(dāng)這個(gè) Survivor區(qū)滿時(shí),此區(qū)的存活對(duì)象將被復(fù)制到另外一個(gè)Survivor區(qū),當(dāng)這個(gè)Survivor去也滿了的時(shí)候,從第一個(gè)Survivor區(qū)復(fù)制 過(guò)來(lái)的并且此時(shí)還存活的對(duì)象,將被復(fù)制“年老區(qū)(Tenured)”。需要注意,Survivor的兩個(gè)區(qū)是對(duì)稱的,沒(méi)先后關(guān)系,所以同一個(gè)區(qū)中可能同時(shí) 存在從Eden復(fù)制過(guò)來(lái) 對(duì)象,和從前一個(gè)Survivor復(fù)制過(guò)來(lái)的對(duì)象,而復(fù)制到年老區(qū)的只有從第一個(gè)Survivor去過(guò)來(lái)的對(duì)象。而且,Survivor區(qū)總有一個(gè)是空 的。同時(shí),根據(jù)程序需要,Survivor區(qū)是可以配置為多個(gè)的(多于兩個(gè)),這樣可以增加對(duì)象在年輕代中的存在時(shí)間,減少被放到年老代的可能。

    年老代:

        在年輕代中經(jīng)歷了N次垃圾回收后仍然存活的對(duì)象,就會(huì)被放到年老代中。因此,可以認(rèn)為年老代中存放的都是一些生命周期較長(zhǎng)的對(duì)象。

    持久代:

        用于存放靜態(tài)文件,如今Java類、方法等。持久代對(duì)垃圾回收沒(méi)有顯著影響,但是有些應(yīng)用可能動(dòng)態(tài)生成或者調(diào)用一些class,例如Hibernate 等,在這種時(shí)候需要設(shè)置一個(gè)比較大的持久代空間來(lái)存放這些運(yùn)行過(guò)程中新增的類。持久代大小通過(guò)-XX:MaxPermSize=<N>進(jìn)行設(shè) 置。

    什么情況下觸發(fā)垃圾回收

    由于對(duì)象進(jìn)行了分代處理,因此垃圾回收區(qū)域、時(shí)間也不一樣。GC有兩種類型:Scavenge GCFull GC

    Scavenge GC

          一般情況下,當(dāng)新對(duì)象生成,并且在Eden申請(qǐng)空間失敗時(shí),就會(huì)觸發(fā)Scavenge GC,對(duì)Eden區(qū)域進(jìn)行GC,清除非存活對(duì)象,并且把尚且存活的對(duì)象移動(dòng)到Survivor區(qū)。然后整理Survivor的兩個(gè)區(qū)。這種方式的GC是對(duì) 年輕代的Eden區(qū)進(jìn)行,不會(huì)影響到年老代。因?yàn)榇蟛糠謱?duì)象都是從Eden區(qū)開(kāi)始的,同時(shí)Eden區(qū)不會(huì)分配的很大,所以Eden區(qū)的GC會(huì)頻繁進(jìn)行。因 而,一般在這里需要使用速度快、效率高的算法,使Eden去能盡快空閑出來(lái)。

    Full GC

          對(duì)整個(gè)堆進(jìn)行整理,包括Young、Tenured和Perm。Full GC因?yàn)樾枰獙?duì)整個(gè)對(duì)進(jìn)行回收,所以比Scavenge GC要慢,因此應(yīng)該盡可能減少Full GC的次數(shù)。在對(duì)JVM調(diào)優(yōu)的過(guò)程中,很大一部分工作就是對(duì)于FullGC的調(diào)節(jié)。有如下原因可能導(dǎo)致Full GC:

          年老代(Tenured)被寫(xiě)滿

          持久代(Perm)被寫(xiě)滿

          System.gc()被顯示調(diào)用

         上一次GC之后Heap的各域分配策略動(dòng)態(tài)變化

    串行處理器:

    --適用情況:數(shù)據(jù)量比較小(100M左右);單處理器下并且對(duì)響應(yīng)時(shí)間無(wú)要求的應(yīng)用。
    --缺點(diǎn):只能用于小型應(yīng)用

    并行處理器:

    --適用情況:“對(duì)吞吐量有高要求”,多CPU、對(duì)應(yīng)用響應(yīng)時(shí)間無(wú)要求的中、大型應(yīng)用。舉例:后臺(tái)處理、科學(xué)計(jì)算。
    --缺點(diǎn):垃圾收集過(guò)程中應(yīng)用響應(yīng)時(shí)間可能加長(zhǎng)

    并發(fā)處理器:

    --適用情況:“對(duì)響應(yīng)時(shí)間有高要求”,多CPU、對(duì)應(yīng)用響應(yīng)時(shí)間有較高要求的中、大型應(yīng)用。舉例:Web服務(wù)器/應(yīng)用服務(wù)器、電信交換、集成開(kāi)發(fā)環(huán)境。

    ===================================

    今天使用jmap和jhat試圖解決permgen out of memory的問(wèn)題,找到了一個(gè)很好的文章:

    http://blogs.sun.com/fkieviet/entry/how_to_fix_the_dreaded

    貼個(gè)開(kāi)頭,防止原帖丟了,連google的線索都沒(méi)有

    How to fix the dreaded "java.lang.OutOfMemoryError: PermGen space" exception (classloader leaks)

    In the previous blog entry Classloader leaks: the dreaded "java.lang.OutOfMemoryError: PermGen space" exception  I explained how this type of problem can originate in the application code that you deploy to an application server.  In this post I'll explain how to track down the leak so that you can fix it.

    Profilers
    Memory leak? Use a profiler. Right? Well... generally speaking the answer is yes, but classloader leaks are a bit special...

    posted on 2011-01-30 18:12 人在江湖 閱讀(435) 評(píng)論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 国产在线精品免费aaa片| 久久精品国产亚洲av水果派| 国产免费牲交视频| 日韩一级免费视频| 国产日产成人免费视频在线观看| 69成人免费视频无码专区| 成人免费AA片在线观看| 免免费国产AAAAA片| 国产四虎免费精品视频| 免费阿v网站在线观看g| 久久不见久久见免费影院| 国产麻豆视频免费观看 | 亚洲色图视频在线观看| 久久亚洲日韩精品一区二区三区| 亚洲国产精彩中文乱码AV| 亚洲精品成人网站在线观看| 青青草原亚洲视频| 亚洲精品午夜无码专区| 亚洲国产成人久久精品动漫| 亚洲av午夜成人片精品网站| 亚洲好看的理论片电影| 亚洲嫩草影院在线观看| 亚洲成a人片在线不卡| 亚洲欧美日韩国产精品一区| 国产大陆亚洲精品国产| 理论秋霞在线看免费| 成人一区二区免费视频| 久久精品视频免费播放| 2021国产精品成人免费视频| 最近最好的中文字幕2019免费| 日本无卡码免费一区二区三区| 亚洲精品乱码久久久久久蜜桃| 亚洲女同成av人片在线观看 | 最近2019中文字幕mv免费看 | 99精品免费视频| 91大神在线免费观看| 日韩精品成人无码专区免费| 国产成人免费全部网站| 亚洲中文字幕久久精品无码APP | 成人免费毛片观看| 日韩a级毛片免费视频|