【深入理解Java】Eclipse调优实践
程序运行状态和Eclipse执行参数
在启动程序之前,我们先来看一下本机的一些基础配置。首先我们在cmd命令上执行
java -version
可以看到笔者机器的Eclipse运行平台是64位Windows 7系统,虚拟机为HotSpot VM 25.66-b18。
接着我们再看Eclipse的参数设置:
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.rcp.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
VisualVM下载和自制Eclipse启动耗时统计插件
这里我们使用VisualVM作性能监控分析。VisualVM的官方下载地址。
接着我们讨论下启动耗时统计。由于VisualVM无法获取Eclipse启动完成的具体运行时间,因此我们可以写一个简单的插件用来统计启动耗时。这里借鉴了深入理解Java虚拟机原文的做法,以及Eclipse启动计时插件一文的操作,反复启动程序后得到输出结果为
同时VisualVM的插件VisualVC显示的GC结果如图:
这里我们发现,1.7以前存在的PermGen已经不复存在,取而代之的是一个叫Metaspace(元空间)的区域。笔者网上搜了一下有关这部分的内容,推荐了一篇博文Java8内存模型—永久代(PermGen)和元空间(Metaspace)。