我正在尝试使用位于 /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/jcmd (Mac OS X) 的 jcmd 二进制文件运行 Java Flight Recorder。是否有命令行选项来启用与开始飞行记录 UI 上的堆统计选项相对应的堆指标:
通过https://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mission-control-wp-2008279.pdf,我遇到了以下引用:
今天用于监视、管理和分析 Java 运行时的大多数技术都使用相当侵入性的技术,如字节码检测和 JVMTI。
这让我想知道 JFR 进行堆栈跟踪采样的方式。
我能在网上找到的最接近答案的是这篇博文:http : //psy-lob-saw.blogspot.com/2016/06/the-pros-and-cons-of-agct.html,提到诸如 Honest profiler 和 async-profiler 之类的探查器使用没有详细记录的 AsyncGetCallTrace,但事实是它没有提到 JFR 进行堆栈跟踪采样/记录的具体方式。
这里有没有人对 JFR 内部有关此主题的内容有任何见解?