最近公司在开发一个新工具,该工序会长时间的运行,中间过程可以简单的描述为:1、从DB查询数据;2、计算;3、存入DB。但是因为数据量非常大(亿级别)、数据源特别多、计算也别复杂,我们发现计算效率很低。于是我们想分析到底是哪个步骤慢。
一般的方式会想到,在要分析的代码段前后获取时间,再进行相减,得到运行时间。如下:
long startTime = System.currentTimeMillis(); // 获取开始时间 //codes long endTime = System.currentTimeMillis(); // 获取结束时间
再把(endTime - startTime)输出到log进行分析。
可是这样的代码多么的ugly啊!
于是我就想到了jamon。
jamon的概念在这就不赘述了,自己百度吧。
本文讲述的是jamon的配置,很简单!我是配在maven项目中的。
步骤:
1、在pom.xml中引入相关依赖:
<!-- for jamon --> <dependency> <groupId>com.jamonapi</groupId> <artifactId>jamon</artifactId> <version>2.73</version> </dependency> <dependency> <groupId>oro</groupId> <artifactId>oro</artifactId> <version>2.0.8</version> </dependency> <dependency> <groupId>com.fdsapi</groupId> <artifactId>fdsapi</artifactId> <version>1.2</version> </dependency> <!-- jamon end -->
2、配置jamon的页面文件。如本文中的附件jamon.rar,解压之后直接放到src/main/webapp下,与WEB-INF同级目录。
3、在代码中要监控的地方加上以下代码:
Monitor monitor= MonitorFactory.start("pri.test"); try { //TODO:自己的代码 }catch(Exception e) { ExceptionHandler.handleExcepiton(model, response, e, null, null, ip); }finally{ monitor.stop(); }
4、启动tomcat,在地址栏输入http://localhost:8080/XXXX/jamon/jamonadmin.jsp,XXXX为你自己的项目名,就出来管理页面了!如下:
到此,就配置完成了!是不是很简单!
时间: 2024-10-24 08:13:19