Java Flight Recorder Command Line

#解锁jdk的商业特性
jcmd [pid] VM.unlock_commercial_features

#jfr
jcmd 7060 JFR.start duration=60s filename=myrecording.jfr

#查看运行的 java 进程 
jcmd

录制记录(Start a recording)
示例:在指定Java进程(7060)上开始2分钟记录,并保存到当前目录的myrecording.jfr文件中
jcmd 7060 JFR.start name=MyRecording settings=profile delay=20s duration=2m filename=C:TEMPmyrecording.jfr

检查记录(Check a recording)
JFR.check检查正在运行的记录,如:
jcmd 7060 JFR.check

停止记录(Stop a recording)
JFR.stop命令停止正在运行的记录,如:
jcmd 7060 JFR.stop

转储记录(Dump a recording)
JFR.dump命令停止正在运行的录制,并将记录存储到record文件,如:
jcmd 7060 JFR.dump name=MyRecording filename=C:TEMPmyrecording.jfr

创建堆转储(Create a heap dump)
创建堆转储首选方法:
jcmd 420 GC.heap_dump ./33848dump.hprof

创建堆直方图(Create a heap histogram)
创建堆直方图首选方法:
jcmd <pid> GC.class_histogram ./33848dump.hprof
#通用命令 #不同版本的HotSpot VM可用的诊断命令有所不同,使用jcmd <process id/main class> help,查看当前版本支持的可用选项。 #以下是自JDK 8以来,该工具中一些最有用的命令。 #注:始终通过jcmd <process id/main class> help <command>获取可用选项。 #JDK版本信息 jcmd <process id/main class> VM.version #VM系统参数 #显示数百行信息。 jcmd <process id/main class> VM.system_properties #VM所有标志参数 #即使,没有提供标志,也会打印一些默认值,如:初始/最大堆大小。 jcmd <process id/main class> VM.flags #以秒为单位打印运行时间 jcmd <process id/main class> VM.uptime #建类直方图 #结果可能相当冗长,将输出重定向到文件。 #内部和特定应用程序类都包含在列表中,占用最多内存的类排在最顶端,按降序对类进行排列。 jcmd <process id/main class> GC.class_histogram #创建堆转储(hprof dump) jcmd GC.heap_dump filename=Myheapdump #与jmap -dump:file=<file> <pid>效果相同, 推荐使用jcmd工具。 #创建堆直方图 jcmd <process id/main class> GC.class_histogram filename=Myheaphistogram #与jmap -histo <pid>效果相同,推荐使用jcmd工具。 #打印所有线程堆栈跟踪 jcmd <process id/main class> Thread.print

  

原文地址:https://www.cnblogs.com/mrpei/p/14629498.html