我的StopWatch
?
项目中一个功能很耗时,头儿让我看看是什么原因造成的,看能不能有什么调优。?
?
分析原因时得用数据支持吧, 也就是说看都有哪些因素造成了耗时,各贡献值具体是多少。顺着这个思路想起来和apache中common框架中的一个工具类org.apache.commons.lang.time StopWatch。?
?
它很好的模拟了秒表,通过它的split方法和getSplitTime方法,可以很好地看出各分步骤对性能下降的贡献值来。?
?
演示代码如下:
?
MyStopWatch stWatch = new MyStopWatch(); stWatch.start(); step1(); stWatch.splitAndSaveTime(); System.out.println("Time consumed by step1: "+stWatch.getSplitTimeByStep()); step2(); stWatch.splitAndSaveTime(); System.out.println("Time consumed by step2: "+stWatch.getSplitTimeByStep()); stWatch.stop();?
?
输出结果顺眼多了:
Time consumed by step1: 63
Time consumed by step2: 2000
?
?
记在这里备查,分享,交流。
?
1 楼 kiki 2009-12-23 建议看下prof4j 2 楼 rmn190 2009-12-23 多谢提醒。 刚看完Perj4J, 再一次地感到了编程的魅力。这个框架跟AOP的结合,跟自己想改造Log4J的想法不谋而合了。 自己动手又慢了。
谢谢!
3 楼 mercyblitz 2010-03-22 AOP就完事了