NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

使用 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:012875
用户头像

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

关注

评论

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

大学共享电单车合作投放准备工作

共享电单车厂家

共享电动车厂家 共享电单车投放 共享电动车合作 校内共享电动车

PCB板的Mark点设计对SMT重要性

华秋PCB

工具 电路 PCB SMT PCB设计

JavaScript代码是怎么在浏览器里面运行的?

甜点cc

6 月 优质更文活动

世界500强企业是如何开展财务共享工作的?

用友BIP

财务共享

为什么 Serverless 能提升资源利用率?

Serverless Devs

Serverless 云原生

软件测试丨学习笔记Allure2报告中添加用例描述、用例优先级

测试人

程序员 软件测试 测试开发 Allure

中企出海困难重重?海外税务数字化解决方案来支招!

用友BIP

中企出海

【热点追踪】从价值到架构,走近全新升级的阿里云 Serverless 容器服务 ASK

阿里巴巴云原生

阿里云 Serverless 容器 云原生

高考开始了,计算机专业未来还会火吗?

图灵社区

人工智能 互联网 计算机 GPT

最值得推荐的五款缺陷管理工具

PingCode

PingCode bug管理 软件缺陷管理

一份配置轻松搞定表单渲染,配置式表单渲染器在袋鼠云的实现思路与实践

袋鼠云数栈

大数据 企业号 6 月 PK 榜

直播预告 | 一体化智能可观测平台如何保障电商节大促

博睿数据

可观测性 智能运维 博睿数据 电商节

高考开始了,计算机专业未来还会火吗?

图灵教育

人工智能 互联网 计算机 GPT

嘉为蓝鲸数字化运营中心V5版本视觉全面升级发布,助力企业实现数字化运维!

嘉为蓝鲸

数字化转型 数字化 品牌数字化

聚焦数智人力,让员工“跳槽”不再尴尬!

用友BIP

人力资源 数智人力

云上数据库:从零到壹的实践经验分享

科技热闻

编写脚本配合git hooks实现commitMsg的拼接

甜点cc

6 月 优质更文活动

数智人力领域的“chat GPT”,让人才发现更简单更智能

用友BIP

数智人力

深入理解注解驱动配置与XML配置的融合与区别

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 6 月 PK 榜

数智人力:现代企业解决人才短缺的新途径

用友BIP

数智人力

活动回顾丨云原生技术实践营深圳站回放 & PPT 下载

阿里巴巴云原生

阿里云 云原生

delete 清空表之后,磁盘空间未发生变化?

江南一点雨

MySQL

升级全面预算管理,引领企业数字化之旅

智达方通

全面预算管理 财务规划与预测 全面预算管理系统

苹果WWDC 2023发布会总结

楚少AI

wwdc WWDC 2023 苹果wwdc2023

软件测试丨学习笔记Allure2报告中添加用例链接、用例分类

测试人

程序员 软件测试 测试开发 测试用例 Allure

业内Chromium115内核首发|海泰红莲花国密浏览器极速版V10

电子信息发烧客

四川大学向锐:财务职能将逐步从企业内部拓展到生态链、产业链

用友BIP

智能会计 价值财务

阿里云丁宇:云上开发成为主流,Serverless 定义新范式

阿里巴巴云原生

阿里云 Serverless 云原生

对编程语言中错误处理机制的思考

宇宙之一粟

错误处理 6 月 优质更文活动

nvm node版本管理

甜点cc

6 月 优质更文活动

阿里云 Serverless 容器服务全面升级:新增组件全托管、AI 镜像秒级拉取能力

阿里巴巴云原生

阿里云 Serverless 容器 云原生 Serverless Kubernetes

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