• JVM调优前戏之JDK命令行工具---jhat


    在JDK的命令行中,一般开发人员最耳熟能详的肯定就是java,javac,javap等常用命令,不过在jdk/bin下还有许多其他的命令行工具,它们被用来监测JVM运行时的状态,下面我们来详细解读一下几个常用的工具以及如何使用。

    jhat

    jhat(JVM Heap Analysis Tool)命令是与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器中查看。在此要注意,一般不会直接在服务器上进行分析,因为jhat是一个耗时并且耗费硬件资源的过程,一般把服务器生成的dump文件复制到本地或其他机器上进行分析。

    命令格式

    jhat [dumpfile]
    

    示例

    $ jhat -J-Xmx512m dump.hprof
    eading from dump.hprof...
    Dump file created Fri Mar 11 17:13:42 CST 2016
    Snapshot read, resolving...
    Resolving 271678 objects...
    Chasing references, expect 54 dots......................................................
    Eliminating duplicate references......................................................
    Snapshot resolved.
    Started HTTP server on port 7000
    Server is ready.
    

    中间的-J-Xmx512m是在dump快照很大的情况下分配512M内存去启动HTTP服务器,运行完之后就可在浏览器打开Http://localhost:7000进行快照分析
    堆快照分析主要在最后面的Heap Histogram里,里面根据class列出了dump的时候所有存活对象。

    高能tips

    分析同样一个dump快照,MAT需要的额外内存比jhat要小的多的多,所以建议使用MAT来进行分析,当然也看个人偏好。

  • 相关阅读:
    树莓派上使用docker部署aria2,minidlna
    在Ubuntu上部署一个基于webrtc的多人视频聊天服务
    解决.net core3.1使用docker部署在Ubuntu上连接sqlserver报error:35的问题
    .Net Core in Docker
    .Net Core in Docker
    SQL Server in Docker
    使用Docker运行SQL Server
    Spring Boot 2.x(四):整合Mybatis的四种方式
    Spring Boot 2.x (一):HelloWorld
    yarn (npm) 切换设置镜像源
  • 原文地址:https://www.cnblogs.com/alterem/p/11362904.html
Copyright © 2020-2023  润新知