調優(yōu)IntelliJ IDEA的JVM參數(shù)

古人說得好,工欲善其事救巷,必先利其器,這篇小隨筆其實很久之前就該寫了(因為是很久之前做的事情了)【淠現(xiàn)在為了寫它浦译,還得手動復現(xiàn)當時的場景,真麻煩吶俄占。

筆者的機器配置和環(huán)境如下:

  • Intel Core i7-4870HQ, 4C/8T @ 2.5~3.7GHz
  • 16GB DDR3L 1600MHz RAM
  • 512GB PCIe SSD
  • macOS Mojave 10.14.4
  • IntelliJ IDEA 2018.2.7

調整IDEA的JVM參數(shù)還是很有必要的管怠,下面是我從打開IDEA到一頓操作使之內存吃緊之后的內存占用及GC情況:

當開的項目過多,或Build/Import超大項目時缸榄,就會出現(xiàn)這種提示(在1080p外接顯示器上截的渤弛,糊了),并且會越發(fā)卡頓:

點擊Configure甚带,就會彈出修改最大堆大小的對話框:

當然她肯,我們并不滿足于只修改堆大小。點擊IDEA Help菜單中的Edit Custom VM Options項鹰贵,打開IDEA的JVM參數(shù)列表晴氨,就可以進行優(yōu)化了。

請注意碉输,以下是根據我的環(huán)境調整的參數(shù)籽前,雖然大體通用,但仍然要具體情況具體分析敷钾。另外為了表述清晰枝哄,寫了一些注釋,有一些默認開啟的項也加了進來阻荒,就當是復習+拓展一下常用的JVM參數(shù)吧挠锥。

# 堆大小,按常規(guī)操作侨赡,設成相同的蓖租,避免自動擴容
-Xms1536m
-Xmx1536m
# 年輕代大小粱侣,Sun推薦設置為堆大小的3/8
-Xmn576m
# 在JVM啟動時即預初始化堆中的所有頁,能夠快速利用
-XX:+AlwaysPreTouch

# 設置一個較大的元空間初始值蓖宦,避免頻繁GC擴容
-XX:MetaspaceSize=256m 
# 元空間最大默認不限制齐婴,設一個值保護一下
-XX:MaxMetaspaceSize=768m

# 啟用CMS GC
-XX:+UseConcMarkSweepGC
# 啟用年輕代并行GC,與CMS是好搭檔球昨,其實也不用另寫
-XX:+UseParNewGC
# CMS并行標記尔店,降低標記階段停頓時間
-XX:+CMSParallelRemarkEnabled
# 觸發(fā)CMS GC的堆內存占用比例,調大點以降低GC頻率
-XX:CMSInitiatingOccupencyFraction=85
# GC線程數(shù)(ParallelGCThreads主慰、ConcGCThreads)用默認值嚣州,不再寫

# 對象晉升到老年代的年齡,默認15共螺。根據觀察该肴,對IDEA來說設成10就足夠了
-XX:MaxTenuringThreshold=10

# 壓縮普通對象指針
-XX:+UseCompressedOops

# 指定服務器版JIT編譯器,其實不用寫藐不,默認已經是了
-server
# JIT代碼緩存的大小匀哄,默認是240M
-XX:ReservedCodeCacheSize=360M
# 打開JIT分層編譯,默認是開啟的了
-XX:+TieredCompilation
# 每MB堆空間中的軟引用能夠存活的近似毫秒數(shù)
-XX:SoftRefLRUPolicyMSPerMB=50

# OOM時輸出堆dump轉儲文件
-XX:+HeapDumpOnOutOfMemoryError
# 禁止把某些異常的stack trace優(yōu)化掉雏蛮,防止信息被吃了找不到問題
-XX:-OmitStackTraceInFastThrow
# 禁用字節(jié)碼驗證涎嚼。IDEA的代碼足夠可靠,不用驗證
-Xverify:none
# 啟用斷言機制(enable assertion)
-ea

-Dfile.encoding=UTF-8
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""

-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof

可見挑秉,雖然我們平時提起調優(yōu)法梯,指的都是那些相對大型的服務端應用,但是Java離我們如此之近犀概,身邊的很多東西都是可以拿來實踐的立哑。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市姻灶,隨后出現(xiàn)的幾起案子铛绰,更是在濱河造成了極大的恐慌,老刑警劉巖产喉,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捂掰,死亡現(xiàn)場離奇詭異,居然都是意外死亡曾沈,警方通過查閱死者的電腦和手機尘颓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晦譬,“玉大人,你說我怎么就攤上這事互广×搽纾” “怎么了卧土?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長像樊。 經常有香客問我尤莺,道長,這世上最難降的妖魔是什么生棍? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任颤霎,我火速辦了婚禮,結果婚禮上涂滴,老公的妹妹穿的比我還像新娘友酱。我一直安慰自己,他們只是感情好柔纵,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布缔杉。 她就那樣靜靜地躺著,像睡著了一般搁料。 火紅的嫁衣襯著肌膚如雪或详。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天郭计,我揣著相機與錄音霸琴,去河邊找鬼。 笑死昭伸,一個胖子當著我的面吹牛梧乘,可吹牛的內容都是我干的。 我是一名探鬼主播勋乾,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼宋下,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辑莫?” 一聲冷哼從身側響起学歧,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎各吨,沒想到半個月后枝笨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡揭蜒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年横浑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屉更。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡徙融,死狀恐怖,靈堂內的尸體忽然破棺而出瑰谜,到底是詐尸還是另有隱情欺冀,我是刑警寧澤树绩,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站隐轩,受9級特大地震影響饺饭,放射性物質發(fā)生泄漏。R本人自食惡果不足惜职车,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一瘫俊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悴灵,春花似錦扛芽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赡鲜,卻和暖如春空厌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背银酬。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工嘲更, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人揩瞪。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓赋朦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親李破。 傳聞我的和親對象是個殘疾皇子宠哄,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容