美文网首页Java随笔-生活工作点滴
Java性能瓶颈分析工具,你知道几个?快来收藏吧

Java性能瓶颈分析工具,你知道几个?快来收藏吧

作者: 卑微小徐在线敲代码 | 来源:发表于2019-07-08 14:01 被阅读187次

    本文介绍了常用的性能分析工具和故障排查工具,希望可以帮助开发人员在排查性能问题的时候快速定位到性瓶颈。每个工具都有其优势与劣势,只有更好了解问题所出现的场景,理清解决问题的思路,才能最大化的发挥工具的价值。

    0. Introduction Java

    性能优化分为很多个方面,如系统优化、算法优化、代码优化等。代码优化是指开发人员在研发、测试过程中使用性能瓶颈分析工具快速定位出由于编码存在的性能瓶颈问题并持续进行优化。一种很常见的场景是测试同学在对服务进行压测时,无论怎么增加并发应用的 TPS 一直保持在某个值进行左右波动,这个时候要怎么排查呢。为了可以准确获得运行过程中程序的性能数据,性能调优人员和开发者需要使用性能分析(profiling)辅助工具从全局视角来查看系统的运行状况。本文主要介绍通过熟练掌握 JMC、Tprofiler、JProfiler 等各种性能瓶颈分析工具,进而提高定位性能瓶颈、系统故障排查能力。

     1. Java Mission Control

    JMC(Java 任务控制)是 Java 7u40 新增加的性能监控工具。目前,Oracle Java 官方在今年 5 月份已经公布 Java Mission Control(JMC)的源代码已正式开源,此举得到了 Java 开发社区的高度赞赏。

     JMC 源码地址: JMC source code

    JMC 工具主要由三个组件构成:Java 进程浏览器、JMX 控制台和 Java Flight 记录器等。

    Java 进程浏览器能够利用 Java 自带的 JDP 协议自动发现本地或者远程正在使用的 Java 进程;

     JMX 控制台通过 JMX 接口管理监控 JDK,它能够查看堆内存使用情况、CPU 负载等;

    Java Flight Recorder 是一个内置在 JDK 中的监测和事件收集框架。

    收集的事件包括:磁盘 IO、GC、线程 sleep、线程 wait、Socket read/write 等。

     下图显示了 JMC 启动后当前机器正在运行中的所有 Java 进程,选择一个进程进行性能监控。


    2. Tprofiler

     TProfiler 是淘宝开源的一个可以在生产环境长期使用的性能分析工具。它同时支持剖析和采样两种方式,记录方法执行的时间和次数,生成方法热点、对象热点、线程状态分析等数据,为查找系统性能瓶颈提供数据支持。

     TProfiler 在 JVM 启动时把时间采集程序注入到字节码中,整个过程无需修改应用源码。运行时会把数据写到日志文件,一般情况下每小时输出的日志小于 50M。目前 TProfiler 已应用于淘宝的核心 Java 前端系统,部署后低峰期对应用响应时间影响 20% 高峰期对吞吐量大约有 30% 的降低。

    3. Jprofiler

    JProfiler 是由 ej-technologies 公司开发的一款性能瓶颈分析工具。它是一款优秀的商业软件,功能非常丰富,因此具备一些免费软件所不具备的功能。

    Jprofiler 提供的主要功能有内存视图、CPU 视图、线程视图、堆遍历器(Heap Walker)等。

     3.1 Jprofiler 使用

    CPU 视图可以查看各个函数的 CPU 占用时间。Hot Spots 显示消耗时间最多的方法的列表,它不仅给出了单个函数的 CPU 使用时间和方法调用次数,同时还能显示函数调用堆栈信息,方便定位问题。

    在线程视图可以统计并查询当前 JVM 所有线程的运行状态,线程持有锁的状态并且可 dump 线程。


    4. Arthas

     Arthas 是阿里最近刚刚开源的 Java 生成环境诊断工具。

     Arthas 支持在 Linux/Unix/Mac 等平台上进行一键安装,现在处于试用于反馈阶段,感兴趣的同学可以自己研究试用。

     5.Conclusion

    本文介绍了常用的性能分析工具和故障排查工具,希望可以帮助开发人员在排查性能问题的时候快速定位到性瓶颈。

    每个工具都有其优势与劣势,只有更好了解问题所出现的场景,理清解决问题的思路,才能最大化的发挥工具的价值。

    最后,小编为大家提供了一套java学习教程。私聊即可免费获得。


    相关文章

      网友评论

        本文标题:Java性能瓶颈分析工具,你知道几个?快来收藏吧

        本文链接:https://www.haomeiwen.com/subject/unlohctx.html