美文网首页
JVM调优 - 工具篇

JVM调优 - 工具篇

作者: guqj | 来源:发表于2017-09-02 14:48 被阅读0次

    在人生的道路上,当你的希望一个个落空的时候,你也要坚定,要沉着。 —— 朗费罗

    1. JConsole工具

    JConsole工具是JDK自带的图形化性能监控工具(在%JAVA_HOME%/bin目录下)。通过JConsole工具,可以查看JAVA程序的运行情况,监控堆信息、线程信息、检测线程死锁等情况。
      在连接上JAVA程序后,便可以查看程序的运行概况。以下图中分别显示了JAVA程序的概况、堆内存的使用情况、线程数量、加载类的数量。

    JAVA程序运行的概况 堆内存使用情况 JAVA程序线程信息

    使用"检测死锁",还可以自动检测到多线程应用程序的线程死锁情况。

    JAVA程序已加载类的信息

    2. Visual VM工具

      Visual VM是一个故障诊断和性能监控的可视化工具,集成了多种性能统计工具的功能。

    2.1 监控程序概况

      通过Visual VM,可查看应用程序的基本情况。


    Visual VM显示程序概况

      监控Tab页,可监控程序CPU、堆、MetaSpace(JDK1.8)、永久区(JDK1.7及以下)、类加载和线程数的总体情况。另还可以手工执行Full GC和生成堆快照。

    Visual VM显示监控信息

      生成的堆快照信息如下:

    Visual VM显示堆快照概况 Visual VM显示堆快照的类概况

    2.2 Thread Dump

      Visual VM的Thread页面提供了详细的线程信息。点击Thread Dump按钮可以导出当前所有线程的栈信息。

    Visual VM线程查看

    如果Visual VM在当前程序中找到死锁,则会在Thread页面进行提示。

    Visual VM线程Dump

    2.3 性能分析

      Visual VM有两个采样器,在采样器页面下,显示了CPU和内存两个性能采样器,用于实时地监控程序信息。CPU采样器可以将CPU占用时间定位到线程和方法,内存采样器可以查看当前程序的堆信息。

    Visual VM监控线程占用CPU时间

      通过CPU的采样功能,可以找到该程序中占用CPU时间最长的线程。

    Visual VM监控线程占用内存概况

      通过内存的采样功能,可以找到该程序中占用内存最多的线程。

    相关文章

      网友评论

          本文标题:JVM调优 - 工具篇

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