美文网首页
JVM性能调优监控工具之hprof

JVM性能调优监控工具之hprof

作者: C1R2 | 来源:发表于2023-02-16 12:30 被阅读0次

    五、**hprof(Heap/CPU Profiling Tool)

    hprof能够展现CPU使用率,统计堆内存使用情况。

    语法格式如下:

    java -agentlib:hprof[=options] ToBeProfiledClass
    java -Xrunprof[:options] ToBeProfiledClass
    javac -J-agentlib:hprof[=options] ToBeProfiledClass

    完整的命令选项如下:

    Option Name and Value Description Default


    heap=dump|sites|all heap profiling all

    cpu=samples|times|old CPU usage off

    monitor=y|n monitor contention n

    format=a|b text(txt) or binary output a

    file= write data to file java.hprof[.txt]

    net=: send data over a socket off

    depth= stack trace depth 4

    interval= sample interval in ms 10

    cutoff= output cutoff point 0.0001

    lineno=y|n line number in traces? y

    thread=y|n thread in traces? n

    doe=y|n dump on exit? y

    msa=y|n Solaris micro state accounting n

    force=y|n force output to y

    verbose=y|n print messages about dumps y

    来几个官方指南上的实例。

    CPU Usage Sampling Profiling(cpu=samples)的例子:

    java -agentlib:hprof=cpu=samples,interval=20,depth=3 Hello

    上面每隔20毫秒采样CPU消耗信息,堆栈深度为3,生成的profile文件名称是java.hprof.txt,在当前目录。

    CPU Usage Times Profiling(cpu=times)的例子,它相对于CPU Usage Sampling Profile能够获得更加细粒度的CPU消耗信息,能够细到每个方法调用的开始和结束,它的实现使用了字节码注入技术(BCI):

    javac -J-agentlib:hprof=cpu=times Hello.java

    Heap Allocation Profiling(heap=sites)的例子:

    javac -J-agentlib:hprof=heap=sites Hello.java

    Heap Dump(heap=dump)的例子,它比上面的Heap Allocation Profiling能生成更详细的Heap Dump信息:

    javac -J-agentlib:hprof=heap=dump Hello.java

    虽然在JVM启动参数中加入-Xrunprof:heap=sites参数可以生成CPU/Heap Profile文件,但对JVM性能影响非常大,不建议在线上服务器环境使用

    --参考
    链接:https://www.jianshu.com/p/0c2e7719dc93

    相关文章

      网友评论

          本文标题:JVM性能调优监控工具之hprof

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