首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMC不显示热门方法和包

JMC不显示热门方法和包
EN

Stack Overflow用户
提问于 2016-07-19 21:17:46
回答 1查看 909关注 0票数 2

我正在尝试用JMC在我的服务器程序中寻找有问题的方法。当我在本地运行服务器(在Windows上)并从JMC启动飞行记录器时-一切正常。JMC可以正确地在Code标签中显示数据:热方法、调用树等,但是当我尝试分析远程平台上的服务器时(在Linux上),我得到了空窗口。要在平台上启动JFR,我使用以下命令:

代码语言:javascript
复制
/opt/java/java8/bin/jcmd 38390 VM.unlock_commercial_features
/opt/java/java8/bin/jcmd 38390 JFR.start duration=10m compress=true filename=dxstress3_cross_try1.jfr settings=/opt/dxstress/settings_for_jmc.jfc

我使用从JMC导出的OracleJDK8u40Settings文件settings_for_jmc.jfc。它包含execution_sample设置

代码语言:javascript
复制
<event path="vm/prof/execution_sample">
  <setting name="enabled">true</setting>
  <setting name="period">10 ms</setting>
</event>

有记录或不记录此类数据的选项吗?我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-07-20 09:39:46

如果不指定自定义设置文件,它会起作用吗?

如果是这样,那么问题很可能出在您的.jfc文件中。在JDK 7/8上应该是这样的

代码语言:javascript
复制
 <event path="vm/prof/execution_sample"> 
   <setting name="enabled" control="method-sampling-enabled">true</setting>
   <setting name="period" control="method-sampling-interval">10 ms</setting>
 </event>

如果不是,这可能是一个bug。在Linux上,信号量没有使用CLOCK_REALTIME存在一个问题,这可能会极大地减少样本数量。在7u80和8u25中进行了修复。

要打印当前使用的事件设置,请执行以下操作:

代码语言:javascript
复制
jcmd <pid> JFR.check verbose=true

如果启用了vm/prof/execution,则问题出在JVM和采样器上。否则,它很可能在配置中。

采样器仅在采样方法运行Java代码时才会创建事件,因此如果您的应用程序在本机中旋转,则不会有示例。

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

https://stackoverflow.com/questions/38459777

复制
相关文章

相似问题

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