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

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

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

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

    JVM學(xué)習(xí)筆記(四)------內(nèi)存調(diào)優(yōu)

     首先需要注意的是在對(duì)JVM內(nèi)存調(diào)優(yōu)的時(shí)候不能只看操作系統(tǒng)級(jí)別Java進(jìn)程所占用的內(nèi)存,這個(gè)數(shù)值不能準(zhǔn)確的反應(yīng)堆內(nèi)存的真實(shí)占用情況,因?yàn)镚C過后這個(gè)值是不會(huì)變化的,因此內(nèi)存調(diào)優(yōu)的時(shí)候要更多地使用JDK提供的內(nèi)存查看工具,比如JConsole和Java VisualVM。

      對(duì)JVM內(nèi)存的系統(tǒng)級(jí)的調(diào)優(yōu)主要的目的是減少GC的頻率和Full GC的次數(shù),過多的GC和Full GC是會(huì)占用很多的系統(tǒng)資源(主要是CPU),影響系統(tǒng)的吞吐量。特別要關(guān)注Full GC,因?yàn)樗鼤?huì)對(duì)整個(gè)堆進(jìn)行整理,導(dǎo)致Full GC一般由于以下幾種情況:

      ● 舊生代空間不足
      調(diào)優(yōu)時(shí)盡量讓對(duì)象在新生代GC時(shí)被回收、讓對(duì)象在新生代多存活一段時(shí)間和不要?jiǎng)?chuàng)建過大的對(duì)象及數(shù)組避免直接在舊生代創(chuàng)建對(duì)象

      ● Pemanet Generation空間不足
      增大Perm Gen空間,避免太多靜態(tài)對(duì)象

      ● 統(tǒng)計(jì)得到的GC后晉升到舊生代的平均大小大于舊生代剩余空間
      控制好新生代和舊生代的比例

      ● System.gc()被顯示調(diào)用
      垃圾回收不要手動(dòng)觸發(fā),盡量依靠JVM自身的機(jī)制

      調(diào)優(yōu)手段主要是通過控制堆內(nèi)存的各個(gè)部分的比例和GC策略來實(shí)現(xiàn),下面來看看各部分比例不良設(shè)置會(huì)導(dǎo)致什么后果

      1)新生代設(shè)置過小

      一是新生代GC次數(shù)非常頻繁,增大系統(tǒng)消耗;二是導(dǎo)致大對(duì)象直接進(jìn)入舊生代,占據(jù)了舊生代剩余空間,誘發(fā)Full GC

      2)新生代設(shè)置過大

      一是新生代設(shè)置過大會(huì)導(dǎo)致舊生代過小(堆總量一定),從而誘發(fā)Full GC;二是新生代GC耗時(shí)大幅度增加

      一般說來新生代占整個(gè)堆1/3比較合適

      3)Survivor設(shè)置過小

      導(dǎo)致對(duì)象從eden直接到達(dá)舊生代,降低了在新生代的存活時(shí)間

      4)Survivor設(shè)置過大

      導(dǎo)致eden過小,增加了GC頻率

      另外,通過-XX:MaxTenuringThreshold=n來控制新生代存活時(shí)間,盡量讓對(duì)象在新生代被回收

      由上一篇博文JVM學(xué)習(xí)筆記(三)------內(nèi)存管理和垃圾回收可知新生代和舊生代都有多種GC策略和組合搭配,選擇這些策略對(duì)于我們這些開發(fā)人員是個(gè)難題,JVM提供兩種較為簡單的GC策略的設(shè)置方式

      1)吞吐量優(yōu)先

      JVM以吞吐量為指標(biāo),自行選擇相應(yīng)的GC策略及控制新生代與舊生代的大小比例,來達(dá)到吞吐量指標(biāo)。這個(gè)值可由-XX:GCTimeRatio=n來設(shè)置

      2)暫停時(shí)間優(yōu)先

      JVM以暫停時(shí)間為指標(biāo),自行選擇相應(yīng)的GC策略及控制新生代與舊生代的大小比例,盡量保證每次GC造成的應(yīng)用停止時(shí)間都在指定的數(shù)值范圍內(nèi)完成。這個(gè)值可由-XX:MaxGCPauseRatio=n來設(shè)置

     最后匯總一下JVM常見配置

      堆設(shè)置

      -Xms:初始堆大小

      -Xmx:最大堆大小

      -XX:NewSize=n:設(shè)置年輕代大小

      -XX:NewRatio=n:設(shè)置年輕代和年老代的比值。如:為3,表示年輕代與年老代比值為1:3,年輕代占整個(gè)年輕代年老代和的1/4

      -XX:SurvivorRatio=n:年輕代中Eden區(qū)與兩個(gè)Survivor區(qū)的比值。注意Survivor區(qū)有兩個(gè)。如:3,表示Eden:Survivor=3:2,一個(gè)Survivor區(qū)占整個(gè)年輕代的1/5

      -XX:MaxPermSize=n:設(shè)置持久代大小

      收集器設(shè)置

      -XX:+UseSerialGC:設(shè)置串行收集器

      -XX:+UseParallelGC:設(shè)置并行收集器

      -XX:+UseParalledlOldGC:設(shè)置并行年老代收集器

      -XX:+UseConcMarkSweepGC:設(shè)置并發(fā)收集器

      垃圾回收統(tǒng)計(jì)信息

      -XX:+PrintGC

      -XX:+PrintGCDetails

      -XX:+PrintGCTimeStamps

      -Xloggc:filename

      并行收集器設(shè)置

      -XX:ParallelGCThreads=n:設(shè)置并行收集器收集時(shí)使用的CPU數(shù)。并行收集線程數(shù)。

      -XX:MaxGCPauseMillis=n:設(shè)置并行收集最大暫停時(shí)間

      -XX:GCTimeRatio=n:設(shè)置垃圾回收時(shí)間占程序運(yùn)行時(shí)間的百分比。公式為1/(1+n)

      并發(fā)收集器設(shè)置

      -XX:+CMSIncrementalMode:設(shè)置為增量模式。適用于單CPU情況。

      -XX:ParallelGCThreads=n:設(shè)置并發(fā)收集器年輕代收集方式為并行收集時(shí),使用的CPU數(shù)。并行收集線程數(shù)。

    相關(guān)鏈接:

    posted on 2011-11-15 15:15 順其自然EVO 閱讀(201) 評(píng)論(0)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄

    <2011年11月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲Av无码乱码在线观看性色| 亚洲日韩中文无码久久| 国产大片免费观看中文字幕| 在线A亚洲老鸭窝天堂| AAAAA级少妇高潮大片免费看| 亚洲Av无码精品色午夜| 精品无码一级毛片免费视频观看 | 国产真人无码作爱免费视频| 久久亚洲精品人成综合网| 久久精品免费一区二区喷潮| 成人免费网站视频www| 亚洲婷婷天堂在线综合| 亚洲第一黄色网址| 黄色成人免费网站| 久久久久久毛片免费看| 在线观看亚洲AV每日更新无码| 国产亚洲综合网曝门系列| 处破痛哭A√18成年片免费| 国产在线精品免费aaa片| 亚洲欧洲无卡二区视頻| 亚洲丝袜美腿视频| 亚洲一区日韩高清中文字幕亚洲| 思思re热免费精品视频66| 中国一级特黄高清免费的大片中国一级黄色片| 亚洲成a人片在线观| 亚洲欧洲自拍拍偷午夜色无码| 四虎免费在线观看| 亚洲综合免费视频| 成人性生交大片免费看中文| 亚洲av无码无在线观看红杏| 国产老女人精品免费视频| 成人免费视频69| 国产成人一区二区三区视频免费| 亚洲四虎永久在线播放| 国产亚洲欧洲Aⅴ综合一区| 国产jizzjizz视频免费看| 波多野结衣免费在线| 久久成人免费播放网站| 久久国产精品免费| 无套内谢孕妇毛片免费看看| 国产AV无码专区亚洲AV毛网站 |