idea中的jvm調優(yōu)方式
1、背景
idea作為一個高頻使用的java IDE。
性能的好壞,影響著開發(fā)的心情。
工欲善其事必先利其器。
2、優(yōu)化后的參數
優(yōu)化后的感覺是拙匠常怪工具差。
明明可以流暢的編碼,為啥之前選擇的是默默忍受,不去改變。
真的是流暢了很多。
當前電腦的配置是 windows i5 8核16G
# custom IntelliJ IDEA VM options # 堆大小,按常規(guī)操作,設成相同的,避免自動擴容 -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 # 重新標記前先執(zhí)行一次新生代GC -XX:+CMSScavengeBeforeRemark # 觸發(fā)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優(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 -javaagent:D:\software\JetBrains\IntelliJ IDEA 2019.2\bin\jetbrains-agent.jar
3、cutom vm options和idea.exe.vmoptions的區(qū)別
- idea.exe.vmoptions是開發(fā)工具自帶的,不建議修改,因為升級的時候會進行覆蓋
- cutom vm options是用戶自定義的,是留給使用者個性化配置的。默認保存在用戶目錄下的 .IntelliJIdea2019.2/config
- 實際操作是idea.exe.vmoptions是全局的配置,cutom vm options會對定義的配置進行覆蓋
4、修改配置后無法啟動
報錯的信息如下:
MaxJavaStackTraceDepth=-1 is outside the allowed range,本質是配置文件的格式不正確或包含了不能被識別的屬性。
實際上的 -XX:+UseParNewGC:設置年輕代為多線程收集 這個屬性被廢棄了。
idea自帶的jdk是jdk11,所以是不包含這個屬性的。
與表象是一致的。
idea jvm調優(yōu),MaxJavaStackTraceDepth=-1 is outside the allowed range
還在使用idea的默認jvm參數嗎?那么是時候動手優(yōu)化一下你的idea了,體驗一下飛一般的感覺。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
string boot 與 自定義interceptor的實例講解
下面小編就為大家分享一篇string boot 與 自定義interceptor的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12Spring Boot 員工管理系統(tǒng)超詳細教程(源碼分享)
這篇文章主要介紹了Spring Boot 員工管理系統(tǒng)超詳細教程(源碼分享),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05Mybatis-Spring連接mysql 8.0配置步驟出錯的解決方法
這篇文章主要為大家詳細介紹了Mybatis-Spring連接mysql 8.0配置步驟出錯的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06Java中JDom解析XML_動力節(jié)點Java學院整理
JDOM是一種解析XML的Java工具包。DOM適合于當今流行的各種語言,包括Java,JavaScripte,VB,VBScript,Perl,C,C++等。下面通過本文給大家介紹Java中JDom解析XML的方法,感興趣的朋友一起學習吧2017-07-07SpringCloud之@FeignClient()注解的使用詳解
@FeignClient是SpringCloud中用于聲明一個Feign客戶端的注解,用于解決模塊方法互相調用的問題,Feign是一個聲明式的WebService客戶端,通過Feign,只需要創(chuàng)建一個接口,并使用注解來描述請求,就可以直接執(zhí)行HTTP請求了2024-11-11Springboot使用thymeleaf動態(tài)模板實現刷新
這篇文章主要介紹了Springboot使用thymeleaf動態(tài)模板實現刷新,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08