快速业务通道

使用Perf4J进行性能分析和监控 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
ween 0 and 800ms, and  the secondBlock max      value should be less than 1500 ms. You can  also set thresholds on the Min,      Mean, StdDev, Count and TPS  statistics - e.g. firstBlockMean(<600).     -->     <param  name="NotificationThresholds" value="firstBlockMax(0-800),secondBlockMax (<1500)"/>   </appender>   <!-- Loggers -- >   <!-- The Perf4J logger. -->   <logger  name="org.perf4j.TimingLogger" additivity="false">     <level  value="INFO"/>     <appender-ref ref="CoalescingStatistics"/>    </logger>   <!--    The root logger sends all log  statements EXCEPT those sent to the perf4j    logger to  System.out.   -->   <root>     <level  value="INFO"/>     <appender name="console"  class="org.apache.log4j.ConsoleAppender">       <layout  class="org.apache.log4j.SimpleLayout"/>     </appender>    </root> </log4j:configuration>

使用Perf4J进行性能分析和监控(4)

时间:2011-10-16 infoq Alex Devine 译:崔康

除了JMX插件,Perf4J也支持生成性能图表的画图appender,使用前端的Perf4J画图Servlet。定制的 csv布局可以轻松的导入Excel或者其他电子表格应用。

使用@Profiled注解简化性能日志

在代码中增加性能记录语句(通常的日志语句)的一个缺点是降低了代码的“信噪比”,难以在特定 代码块中遵循严格的业务逻辑。为了改善这一不足,Perf4J提供了@Profiled注解,可以添加在需要记录 执行时间的方法上,允许方法本身不添加StopWatch代码:

@Profiled(tag = "dynamicTag_{$0}") public void profiledExample(String  tagSuffix) {   ... business logic only here }

一旦添加了@Profiled注解,Perf4J的计时切面会通过一个面向切面的编程框架如AspectJ或者Spring AOP启用。这个切面在方法调用周围加入建立和停止StopWatch实例的字节码。计时切面甚至可以有选择的 使用AspectJ的加载时编织(load-time weaving)功能。因此,通过使用加载时编织你可以保证那些没有 启用性能监控的方法绝没有额外的负担。

一个简单的示例:基于Web的质数生成器

本示例将带你感受如何创建一个使用Perf4J库大多数功能的真实应用。你可以下载perf4jPrimes.war 文件,然后Servlet容器中运行它。在war包中也包含该应用的源代码。

一切从简,本例子只包含两个主要的代码文件:primes.jsp用于显示生成的质数和接受用户指定的参 数,PrimeNumberGenerator类包含真正的生成代码(大部分委托给java.math.BigInteger类)。其中有三 处使用了Perf4J计时代码块:

在primes.jsp创建Log4JStopWatch统计整个页面的生成时间。

PrimeNumberGenerator.generatePrime()方法具有一个Profiled注解。

PrimeNumberGenerator.randomFromRandomDotOrg()也含有Profiled注解。

如果查看WEB-INF/classes/log4j.xml文件,你会看到启用了下面的Perf4功能:

所有单独的stop watch日志都被写入标准输出(请注意你的servlet容器可能把标准输出定向到磁盘的 某个文件中)。如果需要的话,你可以直接使用LogParser。

AsyncCoalescingStatisticsAppender被创建以汇总stop w

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号