一、下载
用途:测试Java™应用程序潜在的性能问题
学习目的:帮助记录某程序运行过程中各个具体方法调用的次数及时间(最大值,最小值,平均值,总值),帮助大家找到程序执
行过程中的瓶颈
下载地址:http://jetm.void.fm/files.html
下载版本: jetm-1.2.3.zip 或 下载 jetm-samples-1.2.3.zip(其中有两个例子可用于学习)
引入:解压,将jar包添加并引入项目中
二、示例代码:
- /**
- * 执行j从零至一百的循环递加,且当j为是的整数倍时调用方法LessJ(int j)LessJ(int j)--- 执行i
- * >0的递减,使用JETM目的执行程序得到两个函数调用的次数及时间
- * @author rwq
- */
- public class JETMTest {
- private static EtmMonitor monitor;
- private static void setup() {
- BasicEtmConfigurator.configure();
- // BasicEtmConfigurator.configure(true);
- // BasicEtmConfigurator.configure(true,new DefaultTimer());
- monitor = EtmManager.getEtmMonitor();
- monitor.start();
- }
- private static void tearDown() {
- monitor.stop();
- }
- public static void main(String[] args) {
- setup();
- EtmPoint point = monitor.createPoint("00_JETMTest_main");
- AddNumber add = new AddNumber();
- add.addHun();
- add.lessJ(10);
- point.collect();
- monitor.render(new SimpleTextRenderer());
- tearDown();
- }
- }
- class AddNumber {
- private static final EtmMonitor etmMonitor = EtmManager.getEtmMonitor();
- void addHun() {
- // 数字序号_阶段名称_功能
- EtmPoint point = etmMonitor.createPoint("01_AddNumber_addHun");
- try {
- int j = 0;
- for (int i = 0; i < 100; i++) {
- lessJ(j);
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- point.collect();
- }
- }
- void lessJ(int j) {
- EtmPoint point = etmMonitor.createPoint("02_AddNumber_lessJ");
- try {
- int i = j;
- for (; i > 0;) {
- i--;
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- point.collect();
- }
- }
- }
转载于:https://blog.51cto.com/ajiao13/1133868