最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于JVM 調(diào)優(yōu)的技巧總結(jié)分析

 更新時間:2013年05月17日 11:32:37   作者:  
本篇文章是對JVM 調(diào)優(yōu)的技巧進行了總結(jié)和分析。需要的朋友參考下
這篇是技巧性的文章,如果要找關(guān)于GC或者調(diào)整內(nèi)純的文章,看我其他幾篇文章。因為是JVM 調(diào)優(yōu)總結(jié),所以廢話少說。從各方面一共收集到以下幾個方法:
1.升級 JVM 版本。如果能使用64-bit,使用64-bit JVM。   
基本上沒什么好解釋的,很簡單將JVM升級到最新的版本。如果你還是使用JDK1.4甚至是更早的JVM,那你首先要做的就是升級。因為JVM從1.4- >1.5->1.6可不是僅僅的版本號升級,或者僅僅往里面加了一堆新的語言特性,這么簡單。而是真正在JVM做了重大的改進,每次版本升級,都有巨大的性能升級。尤其是SUN認識到java是知己的全部的時候(夸張點,但連股票號都改成JAVA了,呵呵)。如果你經(jīng)常逛SUN 的JVM論壇,你就會發(fā)現(xiàn)實際上JVM上的毛病是這么多。如果你因為各種原因,而不能升級到1.6,那你可以升級到該版本的最新版。
2.選擇一個正確的GC(Gargage Collection)。
由于當JAVA程序GC的時候,會停下當前程序。尤其Full GC的時候,會停留很長時間。一般對于GUI程序來說,是很難接受的(想想Eclipse暫停的時候)。 JAVA5 以后,開始自帶了好幾種GC,你可以選擇一個適合你的種類。有以下四種Serial Collector,Parallel collector,Concurrent Collector,Train Collector(廢棄)。后面幾種時候使用并行收集,所以理論上有效率更高(要求你有超過2CUP,但是現(xiàn)在多核開始普及了,呵呵)。提示:更改GC 種類以后要適當挺高JVM的內(nèi)存量。
3.正確設(shè)置內(nèi)存大小。對JVM堆內(nèi)的各個區(qū)域(young,old,perm)正確設(shè)置大小。
這個是最困難的調(diào)整,因為這個調(diào)整會直接影響GC的效率。而且由于各個程序的類型不用,所以沒有一個通用的數(shù)據(jù)。除了幾個常用規(guī)則以外,需要使用工具(jstat,jvmstat,jconsole等等)仔細調(diào)整。下面會提到幾個常用的準則。通常使用一下幾個參數(shù)調(diào)整-Xms -Xmx-XX:MaxPermSize。
3.1 調(diào)高-XX:NewRatio(NewSize/MaxNewSize)的值,會減少young gc的次數(shù),但會增加old gc的時間。
3.2 增加普通GC的方法(減小Full GC)。擴大young區(qū)域的大小(最大40%),并過大Survivor的區(qū)域。使得更多的object留在young gen。
4.減小類的使用量,注意類的load和unload,減少JSP頁數(shù)。
類實際上也是對象,會直接分配perm區(qū)域里,即使Full GC也會很少收集。JSP也會分配到perm區(qū)域里,效果同理。如果perm過大,超過XX:MaxPermSize值,會發(fā)生 OutOfMemoryError: PermGen space異常。解決方法是提高-XX:MaxPermSize值。
5.避免使用-Xnoclassgc 
6.如果是RMI程序,要注意調(diào)整RMI DGC的時間。
以下是幾個寫程序時,應(yīng)該注意的地方。也可減小GC,提高JVM性能。
1.不要使用System.gc()方法。
因為它會產(chǎn)生Full GC。
2.盡可能少分配大的臨時對象(生命周期短的)
可能會直接分配到old區(qū)域里,old區(qū)域只有Full GC的時候會收集。
3.避免使用finalize()方法。
finalize()會增加GC的負擔,使用java.lang.ref代替。

相關(guān)文章

  • spring?cloud?eureka?服務(wù)啟動失敗的原因分析及解決方法

    spring?cloud?eureka?服務(wù)啟動失敗的原因分析及解決方法

    這篇文章主要介紹了spring?cloud?eureka?服務(wù)啟動失敗的原因解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 如何在Java中使用WebSocket協(xié)議

    如何在Java中使用WebSocket協(xié)議

    WebSocket是一種基于 TCP 協(xié)議的全雙工通信協(xié)議,可以在瀏覽器和服務(wù)器之間建立實時、雙向的數(shù)據(jù)通信,下面這篇文章主要給大家介紹了關(guān)于如何在Java中使用WebSocket協(xié)議的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • Java泛型T,E,K,V,N,?與Object區(qū)別和含義

    Java泛型T,E,K,V,N,?與Object區(qū)別和含義

    Java?泛型(generics)是?JDK?5?中引入的一個新特性,?泛型提供了編譯時類型安全檢測機制,該機制允許程序員在編譯時檢測到非法的類型。本文將詳細講講Java泛型T、E、K、V、N、?和Object區(qū)別和含義,需要發(fā)可以參考一下
    2022-03-03
  • java獲取指定開始時間與結(jié)束時間之間的所有日期

    java獲取指定開始時間與結(jié)束時間之間的所有日期

    這篇文章主要為大家詳細介紹了java獲取指定開始時間與結(jié)束時間之間的所有日期,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 詳解如何在Elasticsearch中搜索空值

    詳解如何在Elasticsearch中搜索空值

    這篇文章主要為大家介紹了如何在Elasticsearch中搜索空值的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • SpringBoot整合PageHelper分頁無效的常見原因分析

    SpringBoot整合PageHelper分頁無效的常見原因分析

    這篇文章主要介紹了SpringBoot整合PageHelper分頁無效的常見原因分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 淺談springBoot注解大全

    淺談springBoot注解大全

    本篇文章主要介紹了淺談springBoot注解大全,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Java超詳細分析垃圾回收機制

    Java超詳細分析垃圾回收機制

    一個運行中的程序,?產(chǎn)生的對象是大量的,?如果對象不被繼續(xù)使用,?就會成為垃圾,?最后越堆越多,?最后占滿內(nèi)存,?所以我們要對這些垃圾進行回收,保持程序的正常運行
    2022-05-05
  • Java集合中的LinkedHashMap使用解析

    Java集合中的LinkedHashMap使用解析

    這篇文章主要介紹了Java集合中的LinkedHashMap使用解析,LinkedHashMap是繼承于HashMap的,所以它的很多屬性和方法都是HashMap中的,那么它是怎么實現(xiàn)有序存儲的呢,需要的朋友可以參考下
    2023-12-12
  • Java同學找工作最懵圈的問題:到底啥是分布式系統(tǒng)開發(fā)經(jīng)驗?(推薦)

    Java同學找工作最懵圈的問題:到底啥是分布式系統(tǒng)開發(fā)經(jīng)驗?(推薦)

    這篇文章主要介紹了分布式系統(tǒng)開發(fā)經(jīng)驗,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04

最新評論

临沂市| 克拉玛依市| 玉环县| 格尔木市| 洪湖市| 古丈县| 湘乡市| 汝阳县| 申扎县| 万源市| 三台县| 凌源市| 惠安县| 隆林| 乌兰察布市| 广汉市| 德兴市| 天镇县| 蓬溪县| 彰武县| 比如县| 闸北区| 礼泉县| 上饶县| 通海县| 镇江市| 岑巩县| 晋城| 利川市| 女性| 五河县| 上思县| 镇江市| 汕尾市| 陈巴尔虎旗| 邵阳市| 秦安县| 南乐县| 保德县| 东海县| 通城县|