Java Flight Recorder Command Line
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #解锁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:\TEMP\myrecording.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:\TEMP\myrecording.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 |
作者:MrPei
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步