idea jvm調優


1、背景

idea作為一個高頻使用的java IDE。性能的好壞,影響着開發的心情。工欲善其事必先利其器。

2、優化后的參數

優化后的感覺是拙匠常怪工具差。明明可以流暢的編碼,為啥之前選擇的是默默忍受,不去改變。真的是流暢了很多。

當前電腦的配置是 windows i5 8核16G

# custom IntelliJ IDEA VM options

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

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

# 啟用G1 GC
# -XX:+UseG1GC

# 啟用CMS GC
-XX:+UseConcMarkSweepGC
# CMS並行標記,降低標記階段停頓時間
-XX:+CMSParallelRemarkEnabled
# 重新標記前先執行一次新生代GC
-XX:+CMSScavengeBeforeRemark
# 觸發CMS GC的堆內存占用比例,調大點以降低GC頻率
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly

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

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

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

# OOM時輸出堆dump轉儲文件
-XX:+HeapDumpOnOutOfMemoryError
# 禁止把某些異常的stack trace優化掉,防止信息被吃了找不到問題
-XX:-OmitStackTraceInFastThrow
# 禁用字節碼驗證。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
-javaagent:D:\software\JetBrains\IntelliJ IDEA 2019.2\bin\jetbrains-agent.jar

3、cutom vm options和idea.exe.vmoptions的區別

  • idea.exe.vmoptions是開發工具自帶的,不建議修改,因為升級的時候會進行覆蓋
  • cutom vm options是用戶自定義的,是留給使用者個性化配置的。默認保存在用戶目錄下的 .IntelliJIdea2019.2/config
  • 實際操作是idea.exe.vmoptions是全局的配置,cutom vm options會對定義的配置進行覆蓋

4、修改配置后無法啟動

報錯的信息如下:

MaxJavaStackTraceDepth=-1 is outside the allowed range,本質是配置文件的格式不正確或包含了不能被識別的屬性。

實際上的 -XX:+UseParNewGC:設置年輕代為多線程收集 這個屬性被廢棄了。

jdk10以上UseParNewGC被廢棄了

idea自帶的jdk是jdk11,所以是不包含這個屬性的。與表象是一致的。
idea自帶的jdk是jdk11

idea jvm調優,MaxJavaStackTraceDepth=-1 is outside the allowed range

還在使用idea的默認jvm參數嗎?那么是時候動手優化一下你的idea了,體驗一下飛一般的感覺。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM