IntelliJ IDEA 性能优化的教程详解
2020-05-12 19:58:53 来源:易采站长站 作者:丽君
-Xms1024m
-Xmx4096m
-XX:ReservedCodeCacheSize=1024m
-XX:+UseCompressedOops
Balanced(平衡的)(蓝色标识)
Xmx 和 Xms 都分配 2GB ,这是相当平衡的内存消耗:
-Xms2g
-Xmx2g
-XX:ReservedCodeCacheSize=1024m
-XX:+UseCompressedOops
Sophisticated(复杂的)(橘色标识)
和上面一样, Xmx 和 Xms 都分配2GB,但是给 GC 和内存管理指定不同的垃圾回收器和许多不同的标志:
-server
-Xms2g
-Xmx2g
-XX:NewRatio=3
-Xss16m
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:ConcGCThreads=4
-XX:ReservedCodeCacheSize=240m
-XX:+AlwaysPreTouch
-XX:+TieredCompilation
-XX:+UseCompressedOops
-XX:SoftRefLRUPolicyMSPerMB=50
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-ea
以上便是笔者的测试设置,为了执行该测试用例,还需要在~/Library/Preferences/IntelliJIdea15/下创建一个idea.vmoptions文件(这是 Mac OS 系统下的路径设置,基于你的操作系统进行设置)
现在,执行测试用例并比较结果。
结果Idea启动时间

正如上图所示,启动时间并不依赖于内存设置。Idea 在所有场景下的测试时间都是10秒,无论内存分配有多少。这并不足为奇,因为在此早期阶段,这些设置并不会影响到应用的行为。
加载大项目花费的时间
现在加载 Monolith 项目及其70万行代码。终于,出现了一些的差异。默认设置所花费的时间几乎是其它的3倍。很明显,如此庞大的代码库需要更多的内存。如果我们执行:
jstat -gcutil <IDEA_PID>
会发现,对比其它设置, GC 在默认设置下会变得异常忙碌。


不仅 GC 释放内存的总时间非常高(几乎达到了50倍),而且 Full GC 的平均执行时间也非常非常长。大量的时间都花在了 Full GC 上面,这是 IDE 响应速度低的主要原因。
在IDEA中打开两个微服务
现在加载这两个微服务项目,在 IDEA 中打开并且对比他们所消耗的时间。

在这个测试用例下,差异还是非常明显的,复杂设置表现最佳,而默认设置仍旧输给了其他两种设置。
再次使用jstat –gcutil
加载完两个微服务项目后,来检查一下同时打开3个项目的情况下, GC 的表现情况。经测试发现,3个不同的自定义设置表现几乎差不多,而默认设置简直弱爆了。













闽公网安备 35020302000061号