最近打算学习一下JVM调优,打算先从Eclipse运行速度调优开始,因此我们就得需要知道调优之后与之前的耗时变化,这时制作一个插件计算Eclipse启动耗时就有必要了,其实eclipse插件开发我也是第一次接触,讲的不好请谅解
首先new一个插件工程
填写工程名,其他选项按默认的就行
- Properties
1.1 ID插件的标识符,Eclipse将通过此标识符来识别插件
1.2 Version ,Name和Vendor插件的版本号和名字以及供应商
1.3 Execution Enviroment 插件的执行环境这里是JRE8
2.Options
Generate an activator,这是一个java类用来控制插件生命周期的,这里不需要
第二个勾选项默认勾上。无需多问
3.Rich Client Application
这是一个富客户端应用这里暂时也不用管,因为我们不需要,所以选上no就好。
最后finish完成
新建一个ShowTime类,实现IStartup接口,这里需要import三个eclipse包,org.eclipse.jface、swt、ui,在eclipse/plugins/目录下可以找到org.eclipse相关的jar包,添加到build path中。ShowTime代码具体如下:
-
package com.developer.showtime;
-
import org.eclipse.jface.dialogs.MessageDialog;
-
import org.eclipse.swt.widgets.Display;
-
import org.eclipse.swt.widgets.Shell;
-
import org.eclipse.ui.IStartup;
-
public class ShowTime implements IStartup{
-
@Override
-
public void earlyStartup() {
-
Display.getDefault().syncExec(new Runnable(){
-
@Override
-
public void run() {
-
long eclipseStartTime = Long.parseLong(System.getProperty("eclipse.startTime"));
-
long costTime = System.currentTimeMillis() - eclipseStartTime;
-
Shell shell = Display.getDefault().getActiveShell();
-
String message = "eclipse 启动时间:" + costTime + "ms";
-
MessageDialog.openInformation(shell, "Information", message);
-
}
-
});
-
}
-
}
创建plugin.xml:
-
<?xml version="1.0" encoding="UTF-8"?>
-
<?eclipse version="3.5"?>
-
<plugin>
-
<extension point= "org.eclipse.ui.startup">
-
<startup class= "com.developer.showtime.ShowTime" />
-
</extension>
-
</plugin>
修改MANIFEST.MF文件:
-
Manifest-Version: 1.0
-
Bundle-ManifestVersion: 2
-
Bundle-Name: Show-start-time
-
Bundle-SymbolicName: com.developer.showtime.ShowTime;singleton:=true
-
Bundle-Version: 1.0.0.qualifier
-
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-
Require-Bundle: org.eclipse.ui,org.eclipse.jface,org.eclipse.swt
-
Bundle-Vendor: DEVELOPER
注意冒号和后面填的value之间的空格,没有空格是会报错的
现在就可以Run as -> Eclipse Application运行了,这时会启动一个新的eclipse并运行该插件,成功后就可以导出插件了。Export->Deployable plug-ins and fragments,将生成的com.developer.showtime.ShowTime_1.0.0.201709132010.jar复制到eclipse/plugins/目录下,重新启动eclipse即可。
上图显示启动耗时13秒,反复启动几次后,插件显示的平均时间大约14S左右
如果不想在花费时间制作,这里有我做好的插件:eclipse启动时间插件下载