2011-07-06 24 views
1

我在VisualVM中使用JConsole的JTOP插件。它使我了解CPU(秒)的使用情况。我想了解这个的意思,是吗?jtop cpu seconds

  • a)CPU的运行时间(以秒为单位),CPU的初始值为 。
  • B)时间(以秒为单位)的 线程开始运行的第 时间(它可能无法始终运行)
  • 三)其他一些时间?

感谢您的期待。

回答

1

如果您是指来自JDK发行版的演示/管理文件夹的JTop Jconsole插件: 它使用ThreadMXBean.getThreadCpuTime(long)来获取cpu时间。此方法的javadoc指出:

返回指定ID的线程的总CPU时间(以纳秒为单位)。返回值的精度为纳秒,但不一定是纳秒精度。如果实现区分用户模式时间和系统模式时间,则返回的CPU时间是线程在用户模式或系统模式下执行的时间量。

如果指定ID的线程不存在或不存在,则此方法返回-1。如果禁用CPU时间测量,则此方法返回-1。如果一个线程已经启动并且还没有死亡,那么这个线程是活着的。

如果在线程启动后启用CPU时间测量,则Java虚拟机实现可以选择任何时间(包括该功能启用的时间)作为CPU时间测量开始的时间点。

返回: 的总CPU时间对指定的ID的线程如果指定的ID的线程存在,线程是活动的,并且CPU时间测量被使能;否则为-1。

该值在插入表格之前被插件除以10E9,所以您可以看到进程使用CPU的时间量(秒)。

+0

对不起,我在写我的时候发布了同样的答案。 (必须变得更快......) – Ron

+0

添加粗略的答案,然后通过编辑进行详细说明 - 这会更快;) – Thomas

1

我会说这是一个),即。线程花费在CPU上的时间。

它实际上是一个用于ThreadMXBean的UI。

从这的JavaDoc:

如果实现用户模式时间和系统模式时间区分,返回的CPU时间是当前线程已在用户模式或系统模式下执行量。

这意味着整体CPU时间也是执行时间。

相关问题