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

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

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

    隨筆-59  評論-31  文章-0  trackbacks-0

            寫了好幾篇關于這個方向的文章了,但連自己都感覺寫的有點亂,沒有總結。所以現在把所有方法整理到一起,如果以后又發現新的,我繼續補充到這篇文章里。

        這篇是技巧性的文章,如果要找關于GC或者調整內純的文章,看我其他幾篇文章。因為是JVM 調優總結,所以廢話少說。從各方面一共收集到以下幾個方法:

             1.升級 JVM 版本。如果能使用64-bit,使用64-bit JVM。
              
                基本上沒什么好解釋的,很簡單將JVM升級到最新的版本。如果你還是使用JDK1.4甚至是更早的JVM,那你首先要做的就是升級。因為JVM從1.4- >1.5->1.6可不是僅僅的版本號升級,或者僅僅往里面加了一堆新的語言特性,這么簡單。而是真正在JVM做了重大的改進,每次版本升級,都有巨大的性能升級。尤其是SUN認識到java是知己的全部的時候(夸張點,但連股票號都改成JAVA了,呵呵)。如果你經常逛SUN 的JVM論壇,你就會發現實際上JVM上的毛病是這么多。如果你因為各種原因,而不能升級到1.6,那你可以升級到該版本的最新版。

           2.選擇一個正確的GC(Gargage Collection)。

            由于當JAVA程序GC的時候,會停下當前程序。尤其Full GC的時候,會停留很長時間。一般對于GUI程序來說,是很難接受的(想想Eclipse暫停的時候)。 JAVA5 以后,開始自帶了好幾種GC,你可以選擇一個適合你的種類。有以下四種Serial Collector,Parallel collector,Concurrent Collector,Train Collector(廢棄)。后面幾種時候使用并行收集,所以理論上有效率更高(要求你有超過2CUP,但是現在多核開始普及了,呵呵)。提示:更改GC 種類以后要適當挺高JVM的內存量。

           3.正確設置內存大小。對JVM堆內的各個區域(young,old,perm)正確設置大小。

              這個是最困難的調整,因為這個調整會直接影響GC的效率。而且由于各個程序的類型不用,所以沒有一個通用的數據。除了幾個常用規則以外,需要使用工具(jstat,jvmstat,jconsole等等)仔細調整。下面會提到幾個常用的準則。通常使用一下幾個參數調整-Xms -Xmx-XX:MaxPermSize。
         
              3.1 調高-XX:NewRatio(NewSize/MaxNewSize)的值,會減少young gc的次數,但會增加old gc的時間。

              3.2 增加普通GC的方法(減小Full GC)。擴大young區域的大小(最大40%),并過大Survivor的區域。使得更多的object留在young gen。


          4.減小類的使用量,注意類的load和unload,減少JSP頁數。

            類實際上也是對象,會直接分配perm區域里,即使Full GC也會很少收集。JSP也會分配到perm區域里,效果同理。如果perm過大,超過XX:MaxPermSize值,會發生 OutOfMemoryError: PermGen space異常。解決方法是提高-XX:MaxPermSize值。

          5.避免使用-Xnoclassgc       


          6.如果是RMI程序,要注意調整RMI DGC的時間。


          以下是幾個寫程序時,應該注意的地方。也可減小GC,提高JVM性能。

           1.不要使用System.gc()方法。

           因為它會產生Full GC。

           2.盡可能少分配大的臨時對象(生命周期短的)

           可能會直接分配到old區域里,old區域只有Full GC的時候會收集。     

           3.避免使用finalize()方法。

           finalize()會增加GC的負擔,使用java.lang.ref代替。

    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/roland101/archive/2008/03/26/2221463.aspx

    posted on 2009-06-28 10:57 RoyPayne 閱讀(430) 評論(0)  編輯  收藏 所屬分類: java基礎
    主站蜘蛛池模板: 国产一区二区免费在线| 美女视频黄的全免费视频| 国产高清免费在线| 日本亚洲免费无线码| 蜜臀AV免费一区二区三区| 日韩亚洲Av人人夜夜澡人人爽| 国产日韩一区二区三免费高清| 亚洲一区爱区精品无码| 免费看黄的成人APP| 亚洲AV无码国产丝袜在线观看| 国产精品区免费视频| 久久精品国产亚洲AV无码麻豆 | 国产亚洲人成在线影院| 国产日产成人免费视频在线观看| 亚洲AV无码一区二区三区网址| 韩国免费三片在线视频| 精品亚洲视频在线| 亚洲国产精品毛片av不卡在线| WWW国产成人免费观看视频| 亚洲人成伊人成综合网久久久 | 黄页网站在线免费观看| 国产亚洲精品AA片在线观看不加载 | 亚洲一区二区三区首页| 国产精品爱啪在线线免费观看| 中文日韩亚洲欧美制服| 无码不卡亚洲成?人片| 成人无码区免费A∨直播| 久久国产亚洲高清观看| 韩国免费三片在线视频| fc2免费人成为视频| 亚洲综合男人的天堂色婷婷| 最近最新中文字幕完整版免费高清 | 2020天堂在线亚洲精品专区| 免费国产不卡午夜福在线| 久久国产精品免费一区二区三区| 亚洲综合精品一二三区在线| 四虎国产精品免费久久| v片免费在线观看| 亚洲精品一区二区三区四区乱码| 日韩高清在线高清免费| 国产中文字幕在线免费观看|