Eclipse插件开发步骤和两个内存分析工具

不是说插件代码的事情,只是简单的把插件的开发步骤图形化总结一下,现在也没有时间去做插件的东西。这里只是个备忘而已。以后有机会再说吧。

第一步:新建一个plugin工程
图片
Next。

第二步:添加信息,工程名字,位置,Eclipse版本,这些简单设置Next.
图片 
第三步:基本上默认就可以,可以填个名字什么的卖个萌
图片 
第四步: 可以Next选择个模板,也可以Finish直接开始

第五步:填写相关代码,这里贴一个测试代码,也是别的代码,只是为了说明。
        
 
package startuptimeofeclipse.actions;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IStartup;
import org.eclipse.jface.dialogs.MessageDialog;
public  class ShowTime  implements IStartup{
    @ Override
     public  void earlyStartup() {
         // TODO Auto-generated method stub
        Display.getDefault().syncExec( new  Runnable(){
             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);
            }
        });
    }
}
//
<?xml version = "1.0" encoding = "UTF-8"? >
<?eclipse version = "3.4"? >
<plugin >
    <extension
         point = "org.eclipse.ui.startup" >
            <startup  class = "startuptimeofeclipse.actions.ShowTime"/ >
    </extension >
</plugin >
//plugin.xml
 
 第六步:写完代码之后,可以直接测试一下,右击工程,run as -----run eclipse application,运行成功之后,截图如下:
图片

第七步:如果想打包在别的eclipse下也可以使用怎么办?打包,打成JAR包放在plugin目录下,OK收工。 


关于visual VM的使用:在监测自己机子上tomcat的运行情况时,不能读取和分析堆文件,最后在tomcat运行时jvm里加上了如下参数:
-Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false

然后再重新启动tomcat,在visual vm中添加JMX connection,因为上面设置的端口为8999,设置如下:
图片  
成功以后,就可以看到机子的运行状态,以及各种内存分析图表了
图片
点击HeapDump就可以生成堆的快照文件,然后拿出MAT分析一下:
  图片
当然这是一个正常的运行状态,如果是这样的一个图:
图片 
看看这里,一个Main方法把堆用完了
图片
 
 再看看这里,到底堆中是谁占用了这么多的空间?看看头条就知道是谁了---------------- Pilot,一共77676个对象。。。
图片
 
本想贴出这一段程序源代码,但代码不知道被我弄哪去了,这里大家也可以自己造一个内存溢出的例子来,生成快照文件再来看一下。如果想在命令行生成快照文件可以直接用java的-XX:+HeapDumpOnOutOfMemoryError参数也可以,然后用MAT分析一下。
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值