一招解決IDEA啟動慢的困擾


前言

電腦配置還不錯,但是IDEA用了一段時間之后變得非常卡,啟動要好幾分鍾,實在不能忍受。

解決辦法

1.打開idea的安裝位置,進入bin目錄下,找到idea64.exe.vmoptions 配置文件

編輯配置文件,筆者修改的配置內容01如下:

server
-Xms2048m
-Xmx2048m
-XX:ReservedCodeCacheSize=500m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

修改后保存,退出。重新打開IDEA,就能體驗到飛一般的感覺了!


補充:

有同事嘗試后,未生效,解決方法如下:

直接在IDEA中修改配置信息,打開 idea64.exe.vmoptions 配置文件,在Help -> Edit Custom VM Option...中設置,  如圖:

修改配置,參考上圖。

配置詳解

  • -Xms 是最小啟動內存參數

  • -Xmx 是最大運行內存參數

  • -XX:ReservedCodeCacheSize 保留代碼占用的內存容量參數

IDEA默認啟動配置主要考慮低配置用戶,參數不高(默認最低128m,最高512m),導致啟動慢,運行不流暢。通常我們工作使用的電腦至少在16G以上,所以可以通過修改最小啟動內存參數、最大運行內存參數來提高IDEA的速度。

這里需要解釋一下Xmx和Xms

Java 虛擬機具有一個堆(Heap),堆是運行時數據區域,所有類實例和數組的內存均從此處分配。堆是在 Java 虛擬機啟動時創建的,在JVM中堆之外的內存稱為非堆內存(Non-heap memory)。

簡單的說就是:堆是java代碼可及的內存,開發人員寫的東西都是堆分配的內存(底層實現除外)。而非堆內存則是JVM自己用的,比如JVM內部處理或優化,垃圾處理,常數池等。

堆的內存分配用-Xms和-Xmx


堆的內存分配用-Xms和-Xmx:
-Xms分配堆最小內存,默認為物理內存的1/64;-Xmx分配最大內存,默認為物理內存的1/4。

非堆內存分配用-XX:PermSize和-XX:MaxPermSize:
-XX:PermSize分配非堆最小內存,默認為物理內存的1/64;-XX:MaxPermSize分配最大內存,默認為物理內存的1/4。

建議

電腦運行內存為8G的建議

-server
-Xms512m
-Xmx1024m
-XX:ReservedCodeCacheSize=300m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

電腦運行內存為16G的建議

server
-Xms1024m
-Xmx2048m
-XX:ReservedCodeCacheSize=500m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow


免責聲明!

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



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