好像log4j相似于System.out.println()一样,Perf4J相似于System.currentTimeMillis()。
在熟悉到功能跟踪和办理成绩会严峻影响到公司的每一个项目(现实上会影响到几近一切的基于服务器的、散布式使用)后,我们决意构建并开辟一个尺度的功能库,最初就出生了Perf4J。
Perf4J十分合适于散布式、面向服务的使用的功能成绩跟踪。比方,用户点击Homeaway上的某个搜刮页面后就会收回对Web服务器的一个挪用,该Web服务器又会挪用数据库,同时还会经由过程HTTP挪用搜刮服务和告白服务器。搜刮服务自己会将各个搜刮结点天生的了局聚合起来。假如在产物情况下功能呈现了成绩,我们能够经由过程Perf4j轻松疾速的查明出成绩的组件。
Perf4J明白定位于产物情况中。现实上,良多时分在每一个阶段上统统都很好,但放到了产物情况下就会呈现各类成绩,在呈现年夜的功能成绩前就延迟做好筹办关于成绩的跟踪是年夜有裨益的。
其开支与日记相似,就像在代码前后利用System.currentTimeMillis()并纪录日记一样,你能够在经由过程入手下手和中断StopWatch来完成这统统。如许相似于日记,其消费终极取决于附加的appenders。AsyncCoalescingStatisticsAppender仅是将日记动静压进到行列中并由独自线程中downstreadappenders的掏出,如许当这些appenders完成处置后不会影响到主线程的实行工夫。别的,假如经由过程加载工夫(load-time)来利用@Profiled注解,你能够界说运转中所剖析的办法,在这类情形下,那些不做剖析的办法就无需任何分外的设置。
我们想对那些没有StopWatch或@Profiled注解的办法也举行运转时剖析。也就是说开辟者能够在aop.xml或Spring设置文件中指定要剖析的办法。如许就能够剖析第三方库(他们其实不晓得Perf4J),并且无需在源代码中利用剖析语句了。
欢迎光临 仓酷云 (http://ckuyun.com/) | Powered by Discuz! X3.2 |