Perf4j简介

Perf4j主要的用途是计量代码性能和分析性能数据。

 

为什么要使用这个工具呢?我们可以联想下最早期java开发者调试代码使用的方式,以前没有日志框架,那java开发就使用System.out.println()来输出自己想查看的变量。但是这样项目上线的话,就要去掉这些打印语句以减少性能影响。那万一在线上出问题了,调试哪里出问题就很麻烦,因为没有输出的日志可查。所以后来有人开发了日志框架,通过日志级别控制日志的输出。

 

类似的,如果没有perf4j,我们在查看代码运行时间的话可以用以下代码来实现:

long start = System.currentTimeMillis();

// execute the block of code to be timed

System.out.println("ms for block n was: " + (System.currentTimeMillis() - start));

这种方式有几个缺点:

1、 这种方式输出内容比较单一,就是代码总的运行时间。但是我们代码需要查看的性能指标有更多,比如总的平均值,最小值,最大值,tps等等。

2、 也许我们的代码在线上运行,我们想把这些值通过图表的形式展示出来。或者把这些内容通过jmx输出。

3、 另外,我们可能把perf4jlog4jslf4j等日志框架和日志门面系统整合起来。

 

基于以上这些问题,所以开源社区就出现了perf4j(人多力量大,社区的力量就是强大)。

Perf4j一些特性:

简单的停止查看机制来计算语句时间消耗输出。

命令行解析log文件产生汇总数据和图表。

简单的集成日志框架和门面框架。

自定义log4jlogbackappenders来产生数据和图表。

通过jmx查看性能指标,并根据阈值发送消息。

Web工程可以通过servlet来输出性能指标。

Perf4j可以和aop等切面框架整合起来输出性能指标。

Perf4j是一个可扩展的架构。

posted on 2012-04-15 10:15 yangpingyu 阅读(748) 评论(0)  编辑  收藏 所属分类: java基础


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

常用链接

留言簿

随笔分类

随笔档案

收藏夹

linux

产品交互

分析,设计,架构

安全

技术牛人

数据库

搜索

最新评论

阅读排行榜

评论排行榜