首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JFR ExecutionSample对ThreadDump

JFR ExecutionSample对ThreadDump
EN

Stack Overflow用户
提问于 2021-11-14 12:48:24
回答 1查看 219关注 0票数 1
  1. 如果我需要使用JFR执行Java分析,那么更好的方法是: ExecutionSample事件--每一个threads或ThreadDump事件--每个threads?
  2. 是否有任何方法使ExecutionSample事件和/或ThreadDump事件仅针对特定线程而不是针对所有线程?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-15 03:05:19

如果您想要对线程进行示例,则应该使用jdk.ExecutionSample,因为开销要低得多。

没有办法将simultaneously.配置为只记录单个线程,或者让jdk.ExecutionSample示例所有线程

解释

负责发出jdk.ExecutionSample的采样器定期挂起一个Java线程并遍历它的堆栈,但是所有其他线程都可以继续运行。堆栈跟踪存储为ID,因此如果重复,只需要重写几个字节。

jdk.ThreadDump事件的实现将所有Java线程带到safepoint,这意味着应用程序将完全停止。运行Java线程只会在生成的机器代码中位于safepoint轮询的位置停止。这意味着抽样将不那么准确。当所有线程停止时,所有堆栈都由一个线程遍历,这意味着其他内核将等待。结果被写成文本,所以如果相同的堆栈跟踪多次发生,那么所有的帧都需要重写。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69963136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档