Java性能分析神器-JProfiler详解(一)

前段时间在给公司项目做性能分析,从简单的分析Log(GC log, postgrep log, hibernate statitistic),到通过AOP搜集软件运行数据,再到PET测试,感觉时间花了不少,性能也有一定的提升,但总感觉像是工作在原始时代,无法简单顺畅,又无比清晰的获得想要的结果。遂花费了一定的时间,从新梳理学习了一下之前用过的关于jvm调优和内存分析的各种工具,包括JDK自带的jps, jstack, jmap, jconsole,以及IBM的HeapAnalyzer等,这些工具虽然提供了不少功能,但其可用度,便捷度,远没达到IntelliJ之于java开发那种地步。在偶然情况下,在云栖社区上发现有人推荐Jprofiler,装上使用版一用,发现果然是神器,特此推荐给大家。先声明,这个软件是商用的,网上有很多关于lisence的帖子,我这里转发,但是绝不推荐大家用破解版!

[email protected]#36573-fdkscp15axjj6#25257
[email protected]#5481-ucjn4a16rvd98#6038
[email protected]#99016-hli5ay1ylizjj#27215
[email protected]#40775-3wle0g1uin5c1#0674
[email protected]#7009-14frku31ynzpfr#20176
[email protected]#49604-1jfe58we9gyb6#5814
[email protected]#25531-1qcev4yintqkj#23927
[email protected]#96496-1qsu1lb1jz7g8w#23479
[email protected]#20948-11amlvg181cw0p#171159


然后,先转一篇云栖上的文章,然后再慢慢开始我们的Jprofiler之旅。

一.JProfiler是什么

JProfiler是由ej-technologies GmbH公司开发的一款性能瓶颈分析工具(该公司还开发部署工具)。
其特点:

  • 使用方便
  • 界面操作友好
  • 对被分析的应用影响小
  • CPU,Thread,Memory分析功能尤其强大
  • 支持对jdbc,noSql, jsp, servlet, socket等进行分析
  • 支持多种模式(离线,在线)的分析
  • 跨平台 _2014_10_06_7_54_34_PM (图1)

二.数据采集

Q1. JProfiler既然是一款性能瓶颈分析工具,这些分析的相关数据来自于哪里?
Q2. JProfiler是怎么将这些数据收集并展现的?

_2014_10_06_3_09_15_PM
(图2)

A1. 分析的数据主要来自于下面俩部分
1. 一部分来自于jvm的分析接口**JVMTI**(JVM Tool Interface) , JDK必须>=1.6

JVMTI is an event-based system. The profiling agent library can register handler functions for different eve

  • 8
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
JProfiler是一款针对Java应用程序的内存分析工具,它可以帮助开发人员在开发过程中对Java虚拟机(JVM)的内存使用情况进行深入分析和优化。 JProfiler具有丰富的功能和直观的用户界面,可以提供详细的内存使用情况报告和实时性能数据。通过使用JProfiler,开发人员可以更好地了解应用程序中对象的分配和内存使用情况。 在使用JProfiler进行内存分析时,我们可以通过其内建的堆分析器来查看堆内存中的对象分布情况和对象所占的内存大小。这对于优化内存使用、避免内存泄漏和减少垃圾收集的开销非常有帮助。 JProfiler还提供了线程分析器,可以帮助我们查找线程安全和同步问题。通过跟踪线程的状态和执行路径,我们可以发现潜在的死锁、竞态条件和线程阻塞等问题。 此外,JProfiler还具有性能分析工具,可用于监测和优化应用程序的性能瓶颈。它可以跟踪方法的调用次数、执行时间,并生成方法调用图,帮助我们找出性能瓶颈所在,并进行针对性的优化。 JProfiler的另一个重要功能是内存泄漏检测。通过使用JProfiler,我们可以发现不再使用的对象和内存泄漏的地方,从而更好地管理内存资源,提高应用程序的性能和稳定性。 总之,JProfiler是一款功能强大的Java内存分析工具,它能够帮助开发人员更好地理解和优化应用程序中的内存使用情况,提高应用程序的性能和稳定性。在开发过程中,使用JProfiler可以更好地发现和解决内存泄漏、线程安全和性能瓶颈等问题,提高开发效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值