一、下载

用途:测试Java™应用程序潜在的性能问题

学习目的:帮助记录某程序运行过程中各个具体方法调用的次数及时间(最大值,最小值,平均值,总值),帮助大家找到程序执
行过程中的瓶颈

下载地址:http://jetm.void.fm/files.html

下载版本: jetm-1.2.3.zip 或 下载 jetm-samples-1.2.3.zip(其中有两个例子可用于学习)

 

引入:解压,将jar包添加并引入项目中

 

二、示例代码:

Java代码 复制代码  收藏代码
  1. /**  
  2.  * 执行j从零至一百的循环递加,且当j为是的整数倍时调用方法LessJ(int j)LessJ(int j)--- 执行i  
  3.  * >0的递减,使用JETM目的执行程序得到两个函数调用的次数及时间  
  4.  * @author rwq  
  5.  */  
  6. public class JETMTest {   
  7.     private static EtmMonitor monitor;   
  8.   
  9.     private static void setup() {   
  10.         BasicEtmConfigurator.configure();   
  11.         // BasicEtmConfigurator.configure(true);   
  12.         // BasicEtmConfigurator.configure(true,new DefaultTimer());   
  13.         monitor = EtmManager.getEtmMonitor();   
  14.         monitor.start();   
  15.     }   
  16.   
  17.     private static void tearDown() {   
  18.         monitor.stop();   
  19.     }   
  20.   
  21.     public static void main(String[] args) {   
  22.         setup();   
  23.         EtmPoint point = monitor.createPoint("00_JETMTest_main");   
  24.         AddNumber add = new AddNumber();   
  25.         add.addHun();   
  26.         add.lessJ(10);   
  27.         point.collect();   
  28.         monitor.render(new SimpleTextRenderer());   
  29.         tearDown();   
  30.     }   
  31.   
  32. }   
  33.   
  34. class AddNumber {   
  35.     private static final EtmMonitor etmMonitor = EtmManager.getEtmMonitor();   
  36.     void addHun() {   
  37.         // 数字序号_阶段名称_功能   
  38.         EtmPoint point = etmMonitor.createPoint("01_AddNumber_addHun");   
  39.         try {   
  40.             int j = 0;   
  41.             for (int i = 0; i < 100; i++) {   
  42.                 lessJ(j);   
  43.             }   
  44.         } catch (Exception e) {   
  45.             e.printStackTrace();   
  46.         } finally {   
  47.             point.collect();   
  48.         }   
  49.     }   
  50.   
  51.     void lessJ(int j) {   
  52.         EtmPoint point = etmMonitor.createPoint("02_AddNumber_lessJ");   
  53.         try {   
  54.             int i = j;   
  55.             for (; i > 0;) {   
  56.                 i--;   
  57.             }   
  58.         } catch (Exception e) {   
  59.             e.printStackTrace();   
  60.         } finally {   
  61.             point.collect();   
  62.         }   
  63.     }   
  64. }