一、下载
用途:测试Java™应用程序潜在的性能问题
学习目的:帮助记录某程序运行过程中各个具体方法调用的次数及时间(最大值,最小值,平均值,总值),帮助大家找到程序执
行过程中的瓶颈
下载地址:http://jetm.void.fm/files.html,也可以直接使用本人提供的附件
下载版本: jetm-1.2.3.zip 或 下载 jetm-samples-1.2.3.zip(其中有两个例子可用于学习)
引入:解压,将jar包添加并引入项目中
示例代码:
public class JETMTest {
private static EtmMonitor monitor;
private static void setup() {
BasicEtmConfigurator.configure();
monitor = EtmManager.getEtmMonitor();
monitor.start();
}
private static void tearDown() {
monitor.stop();
}
public static void main(String[] args) {
setup();
EtmPoint point = monitor.createPoint("主函数运行时间");
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("AddNumber运行时间");
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("lessJ运行时间");
try {
int i = j;
for (; i > 0;) {
i--;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
point.collect();
}
}
}
控制台运行效果:
[2013-03-21 16:02:43,654] [main] (Log4jAdapter.java:60) INFO etm.core.monitor.EtmMonitor - JETM 1.2.3 started.
|-------------------|-----|---------|-------|-------|-------|
| Measurement Point | # | Average | Min | Max | Total |
|-------------------|-----|---------|-------|-------|-------|
| AddNumber运行时间 | 1 | 0.196 | 0.196 | 0.196 | 0.196 |
|-------------------|-----|---------|-------|-------|-------|
| lessJ运行时间 | 101 | 0.000 | 0.000 | 0.010 | 0.050 |
|-------------------|-----|---------|-------|-------|-------|
| 主函数运行时间 | 1 | 0.909 | 0.909 | 0.909 | 0.909 |
|-------------------|-----|---------|-------|-------|-------|
[2013-03-21 16:02:43,685] [main] (Log4jAdapter.java:60) INFO etm.core.monitor.EtmMonitor - Shutting down JETM.