写点什么

使用 Perf4j 简化应用分析

  • 2009-02-20
  • 本文字数:1113 字

    阅读完需:约 4 分钟

Perf4J 提供的很多特性都令人耳目一新:

  • 用于计时的简单的停止观测(stop watch)机制。
  • 用于解析日志文件的命令行工具,可以生成聚合统计和性能图表
  • 轻松集成大多数常见的日志框架和门面:log4j、java.util.logging、Apache Commons Logging 及 SLF4J。
  • 客户化的 log4j appenders,可以在应用运行时生成统计和图表(不久还会提供客户化的 java.util.logging 处理器)。
  • 可以将性能统计暴露为 JMX 属性,当统计超出指定极限时发送通知。
  • 用于展现 Web 应用性能图表的 Servlet。
  • 提供了 @Profiled 注解和一套客户化的方面(aspect),在处理 AOP 框架如 AspectJ 或 Spring AOP 时可以灵活插入计时语句。
  • 可扩展的架构

InfoQ 有幸采访了 Perf4j 项目的领导者 Alex Devine,他谈到了开发 Perf4j 的缘由:

在认识到性能跟踪和管理问题会严重影响到公司的每个项目(事实上会影响到几乎所有的基于服务器的、分布式应用)后,我们决定构建并开发一个标准的性能库,最后就诞生了 Perf4J。

“Perf4j 能解决哪些特殊的性能问题呢”?

Perf4J 非常适合于分布式、面向服务的应用的性能问题跟踪。例如,用户点击 Homeaway 上的某个搜索页面后就会发出对 Web 服务器的一个调用,该 Web 服务器又会调用数据库,同时还会通过 HTTP 调用搜索服务和广告服务器。搜索服务本身会将各个搜索结点生成的结果聚合起来。如果在产品环境下性能出现了问题,我们可以通过 Perf4j 轻松快速的查明出问题的组件。

这导致了另一个问题“Perf4j 可以用在产品环境中么?”

Perf4J 明确定位于产品环境中。事实上,很多时候在每个阶段上一切都很好,但放到了产品环境下就会出现各种问题,在出现大的性能问题前就提早做好准备对于问题的跟踪是大有裨益的。

对于性能开销,Alex 说到:

其开销与日志类似,就像在代码前后使用 System.currentTimeMillis() 并记录日志一样,你可以在通过开始和停止 StopWatch 来实现这一切。这样类似于日志,其花费最终取决于附加的 appenders。AsyncCoalescingStatisticsAppender 仅是将日志消息压入到队列中并由单独线程中 downstread appenders 的取出,这样当这些 appenders 完成处理后不会影响到主线程的执行时间。此外,如果通过加载时间(load-time)来使用 @Profiled 注解,你可以定义运行中所分析的方法,在这种情况下,那些不做分析的方法就无需任何额外的设置。

关于未来 Alex 说到:

我们想对那些没有 StopWatch 或 @Profiled 注解的方法也进行运行时分析。也就是说开发者可以在 aop.xml 或 Spring 配置文件中指定要分析的方法。这样就可以分析第三方库(他们并不知道 Perf4J),而且无需在源代码中使用分析语句了。

可以从 http://perf4j.org 下载 Perf4j。

查看英文原文: Profiling Just Got Easier With Perf4j

2009-02-20 20:012949
用户头像

发布了 88 篇内容, 共 262.0 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

【YashanDB知识库】GBK库,生僻字插入nvarchar2字段后乱码问题

YashanDB

yashandb 崖山数据库 yashandb知识库

圆满解决!13/14代酷睿不稳定问题更新可解决,性能没影响

E科讯

高效算力网助推智算时代繁荣发展

Geek_2d6073

Analysis of WiFi 5 IPQ4019 and WiFi 6 IPQ6010 Mesh Technology and Performance

wifi6-yiyi

wifi mesh

获取淘宝商品详情API返回值的技术实现方案

代码忍者

API 接口 pinduoduo API

TDengine 建模实战:手把手教你高效设计数据结构

TDengine

数据库 tdengine 时序数据库

HarmonyOS NEXT实战电话拨打

李洋-蛟龙腾飞

HarmonyOS NEXT

融云携高潜市场出海攻略亮相「2024 拉美中东北非出海峰会」

融云 RongCloud

网络安全检测神器:实战案例解析高效端口扫描技术

幂简集成

网络安全 Python JSON 网络端口扫描

Solana Payment:下一波加密支付革命的崛起

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 代币开发

九章云极DataCanvas公司入选沙利文权威报告领先代表厂商

九章云极DataCanvas

Karmada新版本发布,支持联邦应用跨集群滚动升级

华为云开发者联盟

容器 Karmada Kubernetes Serverless 开源、 云原生‘’

“2024年网络安全国家标准贯标深度行(互联网行业—百度站)”活动在北京举办

百度安全

参赛故事|大一的我感受到金蝶云苍穹技术的乐趣

金蝶云·苍穹

开发者大赛 金蝶 金蝶云苍穹 中国软件杯

智能设备领域掀起鸿蒙浪潮,科沃斯、TP-LINK、雅迪等率先完成智能设备或企业内部办公应用鸿蒙化

最新动态

CRUD 开发工具 NocoBase 与 Refine 对比

NocoBase

开源 低代码 开发工具 crud 无代码

怎么平衡研发效能度量和管理成本?

思码逸研发效能

效能洞察 效能 效能提升 效能工具 研发资源

百万度算力,限时免费送送送送送!

九章云极DataCanvas

IPQ9574: Does Wallystech's DR9574 Powered by Qualcomm IPQ9574 Support MLO?

wallyslilly

qcn9274 ipq9574

线上事故案例集:从分析到预防的全方位指南

巧手打字通

后端 事故 风险管理 事故复盘 安全研发

极狐GitLab 新能源赛道客户案例分享之比博斯特

极狐GitLab

gitlab cicd 新能源

“AI+Security”系列第3期(七):智能体车企落地实践

云起无垠

2024 百度安全月圆满收官:让百度更安全,让用户更放心

百度安全

数据要素如何重塑企业价值?

郑州埃文科技

数据治理 数据要素

ECCV 2024 | 融合跨模态先验与扩散模型,快手处理大模型让视频画面更清晰!

快手技术

音视频开发 大模型

融云出海城市沙龙干货分享:电商、社交泛娱的破局之道

融云 RongCloud

Git fetch、pull 傻傻分不清楚?

极狐GitLab

git gitlab 代码托管 版本管理

尘埃落定 完满解决!英特尔官方对于13/14代酷睿台式机处理器调查结果出炉

E科讯

探索AI新境界!昇腾AI原生创新算子挑战赛(S2赛季)决赛顺利闭幕

Geek_2d6073

CEX上币趋势分析:Infra赛道与Ton生态的未来

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 代币开发

聊聊性能基准测试和容量评估规划

老张

性能测试 容量规划 基准测试

使用Perf4j简化应用分析_Java_Ian Roughley_InfoQ精选文章