IntelliJIdea性能调优

本文详细介绍了针对IntelliJ IDEA的性能调优过程,包括分析调优前的程序运行状态,如启动时间、GC日志,以及通过调整类加载时间、内存设置和垃圾收集器(CMS、G1)来优化启动速度。尽管优化效果不甚显著,但提供了宝贵的调优思路和参数设置。
摘要由CSDN通过智能技术生成

IntelliJIdea性能调优

承接上一篇《Eclipse性能调优》,看看相同的调优手段对于Idea效果如何。

1 调优前的程序运行状态

机器性能和虚拟机参数参见《Eclipse性能调优》。

1.1 idea64.exe.vmoptions

可见Idea本就已经设置了使用CMS(+默认ParNew)收集器。

-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

1.2 Idea启动情况

Idea在第一次启动时,用了将近两分钟的时间,但之后的短时间内每次启动却只需要大约35秒的时间,如果间隔稍长时间后(比如一个小时),再次启动仍会用近两分钟时间。下图是用时35秒左右的启动情况。
由Visual GC标签页可见,JIT编译时间和类加载时间占用启动时间最大部分,GC发生113次,耗时1.598秒,其中Minor GC99次,非Minor GC14次。Idea的启动对于堆的需求似乎比Eclipse小很多。
在这里插入图片描述

在这里插入图片描述

1.3 GC日志

在idea64.exe.vmoptions中添加虚拟机参数:-XX:+PrintGCTimeStamps、-XX:+PrintGCDetails、-Xloggc:gc.log以打印GC日志。
下面是日志节选部分,可见发生GC的主要原因是新生代和老年代空间不足。

OpenJDK 64-Bit Server VM (25.152-b39) for windows-amd64 JRE (1.8.0_152-release-1136-b39), built on May 14 2018 16:48:09 by "builduser" with MS VC++ 10.0 (VS2010)
Memory: 4k page, physical 8271308k(3270088k free), swap 16659916k(9412408k free)
CommandLine flags: -XX:ErrorFile=C:\Users\rh\java_error_in_idea_%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Users\rh\java_error_in_idea.hprof -XX:InitialHeapSize=134217728 -XX:MaxHeapSize=786432000 -XX:MaxNewSize=262144000 -XX:MaxTenuringThreshold=6 -XX:OldPLABSize=16 -XX:-OmitStackTraceInFastThrow -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:ReservedCodeCacheSize=251658240 -XX:SoftRefLRUPolicyMSPerMB=50 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:-UseLargePagesIndividualAllocation -XX:+UseParNewGC 
0.639: [GC (Allocation Failure) 0.639: [ParNew: 34944K->4352K(39296K), 0.0129505 secs] 34944K->6486K(126720K), 0.0133240 secs] [Times: user=0.06 sys=0.06, real=0.02 secs] 
0.772: [GC (Allocation Failure) 0.772: [ParNew: 39296K->3982K(39296K), 0.0115448 secs] 41430K->10229K(126720K), 0.0117253 secs] [Times: user=0.13 sys=0.00, real=0.01 secs] 
0.912: [GC (Allocation Failure) 0.912: [ParNew: 38926K->4352K(39296K), 0.0211626 secs] 45173K->19927K(126720K), 0.0213443 secs] [Times: user=0.00 sys=0.03, real=0.02 secs] 
1.810: [GC (Allocation Failure) 1.810: [ParNew: 39296K->4352K(39296K), 0.0093936 secs] 54871K->24826K(126720K), 0.0095476 secs] [Times: user=0.09 sys=0.00, real=0.02 secs] 
3.795: [GC (Allocation Failure) 3.796: [ParNew: 39296K->4352K(39296K), 0.0179209 secs] 59770K->31780K(126720K), 0.0181396 secs] [Times: user=0.09 sys=0.00, real=0.02 secs] 
3.814: [GC (CMS Initial Mark) [1 CMS-initial-mark: 27428K(87424K)] 32261K(126720K), 0.0020996 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
3.816: [CMS-concurrent-mark-start]
3.826: [CMS-concurre
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值