麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Java > 正文

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

2019-11-26 16:05:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇是技巧性的文章,如果要找關(guān)于GC或者調(diào)整內(nèi)純的文章,看我其他幾篇文章。因?yàn)槭荍VM 調(diào)優(yōu)總結(jié),所以廢話少說(shuō)。從各方面一共收集到以下幾個(gè)方法:
1.升級(jí) JVM 版本。如果能使用64-bit,使用64-bit JVM。   
基本上沒(méi)什么好解釋的,很簡(jiǎn)單將JVM升級(jí)到最新的版本。如果你還是使用JDK1.4甚至是更早的JVM,那你首先要做的就是升級(jí)。因?yàn)镴VM從1.4- >1.5->1.6可不是僅僅的版本號(hào)升級(jí),或者僅僅往里面加了一堆新的語(yǔ)言特性,這么簡(jiǎn)單。而是真正在JVM做了重大的改進(jìn),每次版本升級(jí),都有巨大的性能升級(jí)。尤其是SUN認(rèn)識(shí)到java是知己的全部的時(shí)候(夸張點(diǎn),但連股票號(hào)都改成JAVA了,呵呵)。如果你經(jīng)常逛SUN 的JVM論壇,你就會(huì)發(fā)現(xiàn)實(shí)際上JVM上的毛病是這么多。如果你因?yàn)楦鞣N原因,而不能升級(jí)到1.6,那你可以升級(jí)到該版本的最新版。
2.選擇一個(gè)正確的GC(Gargage Collection)。
由于當(dāng)JAVA程序GC的時(shí)候,會(huì)停下當(dāng)前程序。尤其Full GC的時(shí)候,會(huì)停留很長(zhǎng)時(shí)間。一般對(duì)于GUI程序來(lái)說(shuō),是很難接受的(想想Eclipse暫停的時(shí)候)。 JAVA5 以后,開(kāi)始自帶了好幾種GC,你可以選擇一個(gè)適合你的種類(lèi)。有以下四種Serial Collector,Parallel collector,Concurrent Collector,Train Collector(廢棄)。后面幾種時(shí)候使用并行收集,所以理論上有效率更高(要求你有超過(guò)2CUP,但是現(xiàn)在多核開(kāi)始普及了,呵呵)。提示:更改GC 種類(lèi)以后要適當(dāng)挺高JVM的內(nèi)存量。
3.正確設(shè)置內(nèi)存大小。對(duì)JVM堆內(nèi)的各個(gè)區(qū)域(young,old,perm)正確設(shè)置大小。
這個(gè)是最困難的調(diào)整,因?yàn)檫@個(gè)調(diào)整會(huì)直接影響GC的效率。而且由于各個(gè)程序的類(lèi)型不用,所以沒(méi)有一個(gè)通用的數(shù)據(jù)。除了幾個(gè)常用規(guī)則以外,需要使用工具(jstat,jvmstat,jconsole等等)仔細(xì)調(diào)整。下面會(huì)提到幾個(gè)常用的準(zhǔn)則。通常使用一下幾個(gè)參數(shù)調(diào)整-Xms -Xmx-XX:MaxPermSize。
3.1 調(diào)高-XX:NewRatio(NewSize/MaxNewSize)的值,會(huì)減少young gc的次數(shù),但會(huì)增加old gc的時(shí)間。
3.2 增加普通GC的方法(減小Full GC)。擴(kuò)大young區(qū)域的大小(最大40%),并過(guò)大Survivor的區(qū)域。使得更多的object留在young gen。
4.減小類(lèi)的使用量,注意類(lèi)的load和unload,減少JSP頁(yè)數(shù)。
類(lèi)實(shí)際上也是對(duì)象,會(huì)直接分配perm區(qū)域里,即使Full GC也會(huì)很少收集。JSP也會(huì)分配到perm區(qū)域里,效果同理。如果perm過(guò)大,超過(guò)XX:MaxPermSize值,會(huì)發(fā)生 OutOfMemoryError: PermGen space異常。解決方法是提高-XX:MaxPermSize值。
5.避免使用-Xnoclassgc 
6.如果是RMI程序,要注意調(diào)整RMI DGC的時(shí)間。
以下是幾個(gè)寫(xiě)程序時(shí),應(yīng)該注意的地方。也可減小GC,提高JVM性能。
1.不要使用System.gc()方法。
因?yàn)樗鼤?huì)產(chǎn)生Full GC。
2.盡可能少分配大的臨時(shí)對(duì)象(生命周期短的)
可能會(huì)直接分配到old區(qū)域里,old區(qū)域只有Full GC的時(shí)候會(huì)收集。
3.避免使用finalize()方法。
finalize()會(huì)增加GC的負(fù)擔(dān),使用java.lang.ref代替。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日韩视频www | xxxx欧美视频 | 逼片| 久久精品毛片 | 久久久在线免费观看 | www.理论片| 国产一区网址 | 久久国产精品无码网站 | 精品国产一区三区| 亚洲人片在线观看 | 日本欧美一区二区三区在线观看 | 精品一区二区久久久久久久网精 | 99精品视频在线 | 国产精品视频导航 | 曰韩毛片 | 蜜桃传媒视频麻豆第一区免费观看 | 欧美性猛交xxx乱大交3蜜桃 | 在线小视频国产 | 国产精品999在线 | 黄色午夜剧场 | 狠狠干夜夜草 | 91网页视频入口在线观看 | 免费看污视频在线观看 | 国产亚洲高清视频 | 中文字幕亚洲情99在线 | 三级xxxx | 一区二区三区手机在线观看 | 欧美雌雄另类xxxxx | 国产精品久久久久久久久久了 | 国产精品午夜未成人免费观看 | 中文字幕1区2区 | 欧美一级棒 | 欧美一级毛片美99毛片 | 黄色大片免费看 | 极品xxxx欧美一区二区 | 一级免费| 在线视频观看一区二区 | 91在线视频精品 | 日本成人一区二区三区 | 青草久久网 | 一级毛片免费高清 |