配置介紹
神舟筆記本 I7-3610QM+8G+240SSD+500G
模仿
使用JAVA開發(fā)的著名軟件有兩個Eclipse和Idea,我們從此剖析
Idea 2017
JVM參數(shù)如下

-Server運行模式
虛擬機在解釋執(zhí)行相對應的另一方面,虛擬機還有力度更強的編譯器:當虛擬機運行在客戶端模式是使用C1輕量級,服務端是C2重量級。顯而易見,重量級會消耗更多的系統(tǒng)資源但是帶來更強的性能。如果大家像我一樣系統(tǒng)資源足夠且長時間使用編譯軟件推薦是用C2-Xms-Xmx
堆初始值128m 最大750m
計算 最大值為不超過系統(tǒng)1/4ReservedCodeCacheSize
保留代碼所用的Cache大小UseConcMarkSweepGC
-XX:+UseConcMarkSweepGC:設置年老代為并發(fā)收集。測試中配置這個以后,-XX:NewRatio=4的配置失效了,原因不明。所以,此時年輕代大小最好用-Xmn設置。XX:SoftRefLRUPolicyMSPerMB
-XX:SoftRefLRUPolicyMSPerMB=N 這個參數(shù)比較有用的,官方解釋是:Soft reference在虛擬機中比在客戶集中存活的更長一些。其清除頻率可以用命令行參數(shù) -XX:SoftRefLRUPolicyMSPerMB=<N>來控制,這可以指定每兆堆空閑空間的 soft reference 保持存活(一旦它不強可達了)的毫秒數(shù),這意味著每兆堆中的空閑空間中的 soft reference 會(在最后一個強引用被回收之后)存活1秒鐘。注意,這是一個近似的值,因為 soft reference 只會在垃圾回收時才會被清除,而垃圾回收并不總在發(fā)生。系統(tǒng)默認為一秒,我覺得沒必要等1秒,客戶集中不用就立刻清除,改為 -XX:SoftRefLRUPolicyMSPerMB=0;ea
-ea[:<package name>"..." | :<class name> ]
上述參數(shù)就用來設置jvm是否啟動斷言機制(從JDK 1.4開始支持),缺省時jvm關閉斷言機制。
用-ea 可打開斷言機制,不加<packagename>和classname時運行所有包和類中的斷言,如果希望只運行某些包或類中的斷言,可將包名或類名加到-ea之后。例如要啟動包com.wombat.fruitbat中的斷言,可用命令java -ea:com.wombat.fruitbat...<Main Class>。useCanonCaches
使用標準IO緩存preferIPv4Stack
優(yōu)先使用IPv4棧HeapDumpOnOutOfMemoryError
堆內(nèi)存溢出輸出OmitStackTraceInFastThrow
開啟追蹤
Eclipse

前面是使用了一些插件可以忽略
Diff
默認使用了G1收集器
Eclipse更使用更多內(nèi)存
在使用G1垃圾回收器的時候,通過 JVM參數(shù) -XX:+UseStringDeduplication 。 我們可以通過刪除重復的字符串,只保留一個char[]來優(yōu)化堆內(nèi)存。這個選擇在Java 8 u 20被引入