前言
電腦配置還不錯,但是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