配置介紹
神舟筆記本 I7-3610QM+8G+240SSD+500G
模仿
使用JAVA開發(fā)的著名軟件有兩個(gè)Eclipse
和Idea
薄风,我們從此剖析
Idea 2017
JVM參數(shù)如下
-Server
運(yùn)行模式
虛擬機(jī)在解釋執(zhí)行相對(duì)應(yīng)的另一方面,虛擬機(jī)還有力度更強(qiáng)的編譯器:當(dāng)虛擬機(jī)運(yùn)行在客戶端模式是使用C1輕量級(jí),服務(wù)端是C2重量級(jí)。顯而易見蹄胰,重量級(jí)會(huì)消耗更多的系統(tǒng)資源但是帶來更強(qiáng)的性能。如果大家像我一樣系統(tǒng)資源足夠且長時(shí)間使用編譯軟件推薦是用C2-Xms
-Xmx
堆初始值128m 最大750m
計(jì)算 最大值為不超過系統(tǒng)1/4ReservedCodeCacheSize
保留代碼所用的Cache大小UseConcMarkSweepGC
-XX:+UseConcMarkSweepGC:設(shè)置年老代為并發(fā)收集爱致。測試中配置這個(gè)以后烤送,-XX:NewRatio=4的配置失效了,原因不明糠悯。所以帮坚,此時(shí)年輕代大小最好用-Xmn設(shè)置。XX:SoftRefLRUPolicyMSPerMB
-XX:SoftRefLRUPolicyMSPerMB=N 這個(gè)參數(shù)比較有用的互艾,官方解釋是:Soft reference在虛擬機(jī)中比在客戶集中存活的更長一些试和。其清除頻率可以用命令行參數(shù) -XX:SoftRefLRUPolicyMSPerMB=<N>來控制,這可以指定每兆堆空閑空間的 soft reference 保持存活(一旦它不強(qiáng)可達(dá)了)的毫秒數(shù)纫普,這意味著每兆堆中的空閑空間中的 soft reference 會(huì)(在最后一個(gè)強(qiáng)引用被回收之后)存活1秒鐘阅悍。注意好渠,這是一個(gè)近似的值,因?yàn)? soft reference 只會(huì)在垃圾回收時(shí)才會(huì)被清除节视,而垃圾回收并不總在發(fā)生拳锚。系統(tǒng)默認(rèn)為一秒,我覺得沒必要等1秒寻行,客戶集中不用就立刻清除霍掺,改為 -XX:SoftRefLRUPolicyMSPerMB=0;ea
-ea[:<package name>"..." | :<class name> ]
上述參數(shù)就用來設(shè)置jvm是否啟動(dòng)斷言機(jī)制(從JDK 1.4開始支持)拌蜘,缺省時(shí)jvm關(guān)閉斷言機(jī)制杆烁。
用-ea 可打開斷言機(jī)制,不加<packagename>和classname時(shí)運(yùn)行所有包和類中的斷言简卧,如果希望只運(yùn)行某些包或類中的斷言兔魂,可將包名或類名加到-ea之后。例如要啟動(dòng)包c(diǎn)om.wombat.fruitbat中的斷言举娩,可用命令java -ea:com.wombat.fruitbat...<Main Class>析校。useCanonCaches
使用標(biāo)準(zhǔn)IO緩存preferIPv4Stack
優(yōu)先使用IPv4棧HeapDumpOnOutOfMemoryError
堆內(nèi)存溢出輸出OmitStackTraceInFastThrow
開啟追蹤
Eclipse
前面是使用了一些插件可以忽略
Diff
默認(rèn)使用了G1收集器
Eclipse更使用更多內(nèi)存
在使用G1垃圾回收器的時(shí)候,通過 JVM參數(shù) -XX:+UseStringDeduplication 晓铆。 我們可以通過刪除重復(fù)的字符串勺良,只保留一個(gè)char[]來優(yōu)化堆內(nèi)存。這個(gè)選擇在Java 8 u 20被引入