我正在寻找一种方法,只记录一个单一的线程在JDK飞行记录.我正在使用jdk.jfr.RecordingAPI创建飞行记录,但没有找到将事件限制在单个线程中的方法.

我知道之后在JMC中我可以限制到单个线程,但我想在事前配置它,以将文件大小保持在最小,并使分析更容易.

我对此拥有的用例是:

我正在处理一个多线程系统,其中多个作业(job)并行运行.对于某些长期运行的工作,我想创建一个按需飞行记录.为了使分析更容易,并将文件大小保持在最小,我希望只记录一个线程.

推荐答案

不可能对每个线程的JDK/JVM事件进行预过滤.您最多只能在事后对其进行过滤,例如:

$ jfr scrub --include-threads main recording.jfr

这样,您可以降低文件大小,但不会减少开销.您也可以使用RecordingFile.write方法以编程方式完成此操作.

过滤可以在JDK 11或更高版本的记录上完成,即使API和scrub命令只存在于JDK 19+中.

Java相关问答推荐

Proguard配置以保留具有参数的注释的成员

Android视图覆盖不阻止点击它后面的控件

Javascript更新alert 可扩展内容样式与CSS—按钮更多/更少

Jooq外键关系

无法传递消费者<;>;实例

在bash中将数组作为Java程序的参数传递

FALSE:它应该在什么时候使用?

如何确定springboot在将json字段转换为Dto时如何处理它?

由于 list 中的权限错误,Android未生成

测试容器无法加载类路径初始化脚本

类型集合的Jackson JsonNode:类型引用的对象读取器应该是Singleton吗?

try 使用Spring集成和MySQL实现发件箱模式时,锁定等待超时

从Spring6中的JPMS模块读取类时出现问题

何时调用密封层次 struct 的switch 中的默认情况

在应用程序运行时更改LookAndFeel

使用@ExceptionHandler的GlobalExceptionHandler还是来自服务器的REST应答的ResponseEntity?

使用原子整数的共享计数器并发增量

";重复键的值提示唯一约束«;livre_genre_pkey»";例外

双对象供应商

移动二维数组的行