IDEA調(diào)優(yōu)-四大基礎(chǔ)配置提升IDEA性能,解決卡頓問(wèn)題

還有什么神奇小妙招,歡迎大家評(píng)論區(qū)補(bǔ)充,共同分享實(shí)用的經(jīng)驗(yàn),讓更多人看到!謝謝大家!!!
1、配置IDEA啟動(dòng)參數(shù)

找到IDEA安裝目錄:


將配置修改成如下配置即可
IDEA調(diào)優(yōu)-四大基礎(chǔ)配置:
-Xms128m
-Xmx8192m
-XX:ReservedCodeCacheSize=1024m
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

參數(shù)解析如下:
1.-Xms128m:
設(shè)置 JVM 初始堆棧大小為 128MB。
初始堆棧大小用于存儲(chǔ)線程運(yùn)行時(shí)的局部變量和方法調(diào)用棧。
較小的初始堆棧可以減少內(nèi)存占用,但可能導(dǎo)致頻繁的垃圾回收。
較大的初始堆棧可以減少垃圾回收的頻率,但可能導(dǎo)致內(nèi)存浪費(fèi)。

2. -Xmx8192m:
設(shè)置 JVM 最大堆棧大小為 8192MB。
最大堆棧大小用于限制 JVM 可以使用的最大堆內(nèi)存量。
較小的最大堆棧可以防止內(nèi)存溢出,但可能限制應(yīng)用程序的性能。
較大的最大堆棧可以提高應(yīng)用程序的性能,但可能導(dǎo)致內(nèi)存溢出。

3. -XX:ReservedCodeCacheSize=512m:
設(shè)置保留代碼緩存大小為 512MB。
保留代碼緩存用于存儲(chǔ) JIT 編譯生成的代碼。
較大的保留代碼緩存可以提高 JIT 編譯的效率,但可能導(dǎo)致內(nèi)存浪費(fèi)。
較小的保留代碼緩存可以減少內(nèi)存占用,但可能降低 JIT 編譯的效率。

4. -XX:+UseG1GC:
啟用 G1 垃圾收集器。
G1 垃圾收集器是一種面向并發(fā)、增量、標(biāo)記-清除垃圾收集器。
與傳統(tǒng)的 CMS 和 ParNew 收集器相比,G1 收集器具有更好的性能和可預(yù)測(cè)性。

5. -XX:SoftRefLRUPolicyMSPerMB=50:
設(shè)置軟引用 LRU 淘汰策略的每 MB 內(nèi)存停留時(shí)間為 50 毫秒。
軟引用 LRU 淘汰策略用于管理軟引用緩存。
較小的停留時(shí)間可以提高軟引用緩存的命中率,但可能導(dǎo)致頻繁的淘汰。
較大的停留時(shí)間可以減少淘汰的頻率,但可能降低軟引用緩存的命中率。

6. -XX:CICompilerCount=2:
設(shè)置 JIT 編譯器線程數(shù)量為 2。
JIT 編譯器用于將 Java 字節(jié)碼編譯為機(jī)器碼。
更多的 JIT 編譯器線程可以提高 JIT 編譯的速度,但可能導(dǎo)致 CPU 資源競(jìng)爭(zhēng)。

7. -XX:+HeapDumpOnOutOfMemoryError:
在發(fā)生內(nèi)存溢出時(shí)生成堆轉(zhuǎn)儲(chǔ)文件。
堆轉(zhuǎn)儲(chǔ)文件用于分析內(nèi)存使用情況,找出導(dǎo)致內(nèi)存溢出的原因。

8. -XX:-OmitStackTraceInFastThrow:
禁用快速異常拋出的堆棧跟蹤省略。
快速異常拋出可以提高異常處理的速度,但可能導(dǎo)致堆棧跟蹤信息的丟失。

 
2、啟動(dòng)時(shí),配置SpringBoot啟動(dòng)參數(shù),降低內(nèi)存消耗
-Xmn256m -Xss16m -Xmx512m -Xms512m
3、多線程編譯速度

1C的含義是1倍CPU核心數(shù)量,假設(shè)我的設(shè)備是i7-9750h處理器 6核 就會(huì)開(kāi)啟六線程編譯
參考:親測(cè)一個(gè)項(xiàng)目未開(kāi)啟多線程的時(shí)候需要構(gòu)建3分50秒 開(kāi)啟后1分56秒 大概可以提速百分之50以上!


4、構(gòu)建共享堆內(nèi)存大小
1.提高構(gòu)建速度

1>共享堆內(nèi)存用于存儲(chǔ)構(gòu)建過(guò)程中經(jīng)常使用的數(shù)據(jù),例如編譯器緩存、類加載器緩存等。
2>增加共享堆內(nèi)存大小可以減少這些數(shù)據(jù)的重復(fù)加載和創(chuàng)建,從而提高構(gòu)建速度。
3>尤其是在大型項(xiàng)目中,構(gòu)建過(guò)程中需要處理大量數(shù)據(jù),增加共享堆內(nèi)存可以顯著提升構(gòu)建效率。

2. 減少內(nèi)存占用

1>共享堆內(nèi)存可以在多個(gè)項(xiàng)目之間共享,避免每個(gè)項(xiàng)目單獨(dú)分配內(nèi)存。
2>這對(duì)于擁有多個(gè)項(xiàng)目的開(kāi)發(fā)人員來(lái)說(shuō)尤為重要,可以有效降低內(nèi)存占用,特別是對(duì)于內(nèi)存資源有限的機(jī)器。

3. 提高穩(wěn)定性

1>充足的共享堆內(nèi)存可以避免因內(nèi)存不足導(dǎo)致的構(gòu)建失敗或異常。
2>特別是在構(gòu)建復(fù)雜的項(xiàng)目或使用大量插件的情況下,增加共享堆內(nèi)存可以提高構(gòu)建的穩(wěn)定性。


5、關(guān)閉不必要的插件

很多不必要的插件,會(huì)大大降低IDEA的性能,導(dǎo)致IDEA頻繁自動(dòng)關(guān)閉退出


還有什么神奇小妙招,歡迎大家評(píng)論區(qū)補(bǔ)充,共同分享實(shí)用的經(jīng)驗(yàn),讓更多人看到!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容