Visual VM:如何解释 Self Time 与 Self Time (CPU)

Posted

技术标签:

【中文标题】Visual VM:如何解释 Self Time 与 Self Time (CPU)【英文标题】:Visual VM: how to interpret Self Time vs Self Time (CPU) 【发布时间】:2015-05-07 07:25:04 【问题描述】:

我已经看过VisualVM and Self Time

但我仍然不明白如何解释。这是我的情况:

Self Time : 500000ms
Self Time (CPU) : 72000ms

我知道该方法占用了 72s 的 CPU 执行时间(所以实际工作没有调用子方法)。

我可以解释在 500-72=428s 期间由于某种原因线程在此方法中被阻塞了吗?

这意味着我可以开始搜索并发访问等...?

上下文:Tomcat下的Webapp

【问题讨论】:

【参考方案1】:

我可以解释在 500-72=428s 期间由于某种原因线程在此方法中被阻塞了吗?

这是最可能的解释。也可以想象,线程被线程调度器重新调度,让其他线程运行。

这意味着我可以开始搜索并发访问等...?

同步(例如争用锁或等待通知)可能是一种可能的解释。另一个将等待阻塞 I/O 操作完成。

【讨论】:

谢谢,我会删除可疑方法,看看我的线程是否停止等待。我会回来验证答案。

以上是关于Visual VM:如何解释 Self Time 与 Self Time (CPU)的主要内容,如果未能解决你的问题,请参考以下文章

visual vm 安装 visual gc 插件

visual vm 安装 visual gc 插件

从 Eclipse 运行 Visual VM

Java Visual VM 倾斜 CPU

使用 Visual Studio Code 调试托管在 VM 上的节点应用程序

无法通过 Visual Studio Code 远程 SSH 连接到 GCP VM