【java】JETM--Java™的执行时间测量库简单学习(一)
来源:互联网 发布:数据库系统原理怎么学 编辑:程序博客网 时间:2024/05/18 02:02
一、下载
行过程中的瓶颈
代码说明:
方法:
addHum()---执行j从零至一百的循环递加,且当j为是的整数倍时调用方法LessJ(int j)
LessJ(int j)--- 执行i >0的递减
目的:使用JETM目的执行程序得到函数调用的次数及时间
三、控制台执行效果
(执行点,执行次数,平均时间,最小时间,最大时间,总时间)
BasicEtmConfigurator.configure();方式结果如下
BasicEtmConfigurator.configure(true);方法结果如下
四、理解
BasicEtmConfigurator.configure(true);----记录循环调用,以及单独调用
BasicEtmConfigurator.configure(true, new DefaultTimer()); ----以一定时间方式
可以在整个程序运行过程中记录:用了什么方法, 用了多少次, 执行的时间 ,记录一个方法运行时间,找到运行慢的方法,也可以找到无用的方法
六、学习网址:
http://jetm.void.fm/doc.html
用途:测试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(); } }}
代码说明:
方法:
addHum()---执行j从零至一百的循环递加,且当j为是的整数倍时调用方法LessJ(int j)
LessJ(int j)--- 执行i >0的递减
目的:使用JETM目的执行程序得到函数调用的次数及时间
三、控制台执行效果
(执行点,执行次数,平均时间,最小时间,最大时间,总时间)
BasicEtmConfigurator.configure();方式结果如下
BasicEtmConfigurator.configure(true);方法结果如下
四、理解
1.需测函数中构造变量point:EtmPoint point = etmMonitor.createPoint("01_AddNumber_addHun"); .变量命名point 要有意义或者有顺序,一般规则是:数字序号_阶段名称_功能(见下图效果显示),数字序号可以层层增加如第一层01,JETM的结果中point是有顺序的
2.要在方法结束时调用point.collect(); ---用以收集结果3.主函数中也要收集总共用时
4、Setup():指明记录方式,初始化变量,设置monitor.start(); 开始时调用(命名为JETMsetup更确切)5、BasicEtmConfigurator.configure();---指明记录方式,如下
BasicEtmConfigurator.configure();---- 只记录总共调用BasicEtmConfigurator.configure(true);----记录循环调用,以及单独调用
BasicEtmConfigurator.configure(true, new DefaultTimer()); ----以一定时间方式
6、tearDown() :monitor.stop(); 结束时必须关闭(命名为JETMtearDown更确切)
7、monitor.render(new SimpleTextRenderer()): 可视化结果
可以在整个程序运行过程中记录:用了什么方法, 用了多少次, 执行的时间 ,记录一个方法运行时间,找到运行慢的方法,也可以找到无用的方法
六、学习网址:
http://jetm.void.fm/doc.html
- 【java】JETM--Java™的执行时间测量库简单学习(一)
- 测量java代码的执行时间
- 【java】简单的计算代码块执行时间
- vxWorks测量一个函数的执行时间(timexLib)
- timeit 模块详解(准确测量小段代码的执行时间)
- 测试Java代码的执行时间
- java里执行时间的比较!
- 记录Java代码的执行时间
- 学习JAVA中(一) 一些简单的排序算法
- JAVA学习之路-简单的城堡游戏(一)
- 测量程序执行时间的两种方法
- VC 测量自己的程序执行时间
- Java精确测量代码运行时间 代码执行时间 纳秒 nanoTime
- Java精确测量代码运行时间 代码执行时间 纳秒 nanoTime
- 《Java编程技巧1001条》第368条 用gettime 测量程序执行时间;
- Android学习笔记(一) View、ViewGroup的测量绘制
- java 方法的执行时间监控 设置超时(Future 接口)
- 侧量代码的执行时间 java
- 外链图片也有风险吗
- autoit3 ie.au3 函数之——_FileWriteLog日志
- QT4 中文乱码
- 第一章、2、随机产生不重数
- Android SurfaceView 详解
- 【java】JETM--Java™的执行时间测量库简单学习(一)
- OPC 技术文档之 IOPCBrowseServerAddressSpace 的使用
- std::string用法总结
- 方格取数 (多进程DP)
- C/C++常用宏定义,注意事项,宏中#和##的用法
- javaScript常用的汇总
- eclipse和myeclipse快捷键
- 实现 gridview行的双击事件
- URLRequest深入研究