Eclipse调优

实验环境:

Windows 10

JVM: Java HotSpot(TM) 64-Bit Server VM (24.79-b02, mixed mode)

Java: 版本 1.7.0_79

eclipse-java-luna-SR2-win32-x86_64

 

eclipse.ini 的初始配置

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20150204-1316
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
# 永久代最大为 256m
--launcher.XXMaxPermSize    
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
# 堆初始大小为 40m
-Xms40m    
# 堆最大为 512m
-Xmx512m    

 

类加载, 卸载信息

jps -l
13444 sun.tools.jps.Jps
12736    # eclipse 的 pid

jstat -class 12736
Loaded  Bytes  Unloaded  Bytes     Time
9541 20660.6        0     0.0       9.20

 

一. 类加载时间的优化

    添加 -Xverify:none 参数, 取消字节码验证, 可以加快 eclipse 的类加载速度

jps -l
13508 sun.tools.jps.Jps
10788    # eclipse 的 pid

jstat -class 10788
Loaded  Bytes  Unloaded  Bytes     Time
8514 18405.0        0     0.0       6.78

取消字节码验证后, eclipse 的类加载速度快了 2 秒多

 

二. 调整内存, 控制 GC 频率

    监视 eclipse 堆 ( Heap ), 永久代 ( PermGen ), 以及 GC 信息

jps -l
1508 sun.tools.jps.Jps
10788    # eclipse 的 pid

jstat -class 10788
S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
0.00   0.00  11.71  45.01  62.91      9    0.186     3    1.005    1.191

 

新生代 ( E, Eden ) 使用了 11.71% 的空间, 老年代 ( O, Old ) 使用了 45.01% 的空间, 

两个 Survivor ( S0, S1 ) 都为空, 永久代 ( P, PermGen ) 使用了 62.91%;

新生代共发生 9 次 YGC ( YoungGC ), 用时 0.186 秒, 老年代共发生 3 次 FGC ( FullGC ), 用时1.005 秒, GC 总耗时 ( GCT ) 1.191 秒

 

FGC ( FullGC )大多数由老年代容量扩增导致.

为了避免老年代容量扩增引起的 FGC 带来的性能浪费

可以把 -Xms 参数适当设大一些,

如果内存够大的话, 也可以把 -Xms 设置和 -Xmm 一样

 

避免永久代容量扩增带来的性能浪费

可以把  -XX:PermSize 参数适当设大一些

如果内存够大的话, 可以把 -XX:PermSize 设置和 -XX:MaxPermSize 一样

 

内存调整后的配置

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20150204-1316
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Xverify:none
-Dosgi.requiredJavaVersion=1.6
# 堆初始大小为 256m
-Xms256m	
# 堆最大为 512m
-Xmx512m	
# 永久代初始大小为 64m
-XX:PermSize=64m	
# 永久代最大为 128m
-XX:MaxPermSize=128m	

 

监视 eclipse 堆 ( Heap ), 永久代 ( PermGen ), 以及 GC 信息

jstat -gcutil 13888
S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
0.00  99.82  46.14  33.99  99.37      3    0.147     0    0.000    0.147

 

调整内存后, YGC 只有 3次, 0次 FGC, GC 总耗时 0.147秒

 

三. 使用 JDK1.8

    JDK1.8 中, 元空间 ( Metaspace ) 取代了 永久代 ( PermGen ), 不会出现永久代内存溢出OutOfMemoryError: PermGen space, Metaspace 容量只受可用的本地内存限制, 会在运行时根据需要动态调整

 

最终优化配置

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20150204-1316
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Xverify:none
-Dosgi.requiredJavaVersion=1.6
# 堆初始大小为 256m
-Xms256m	
# 堆最大为 512m
-Xmx512m	
# 永久代初始大小为 64m
-XX:PermSize=64m	
# 永久代最大为 128m
-XX:MaxPermSize=128m	

 

转载于:https://my.oschina.net/u/2503731/blog/682011

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值