我在VisualVM中使用JConsole的JTOP插件。它有点像CPU(秒)的使用。我试图理解这个的含义,是吗?
感谢您的期待。
答案 0 :(得分:1)
我会说这是a),即。到目前为止线程在CPU上运行的时间。
它实际上是ThreadMXBean的ui。
从那个JavaDoc:
如果实现区分用户模式时间和系统模式时间,则返回的CPU时间是当前线程在用户模式或系统模式下执行的时间。
这意味着整个CPU时间也是执行时间。
答案 1 :(得分:1)
如果您指的是JDK发行版的demo / management文件夹中的JTop Jconsole插件: 它使用ThreadMXBean.getThreadCpuTime(long)来获取cpu时间。此方法的javadoc指出:
以毫微秒为单位返回指定ID的线程的总CPU时间。返回值的精度为纳秒,但不一定是纳秒精度。如果实现区分用户模式时间和系统模式时间,则返回的CPU时间是线程在用户模式或系统模式下执行的时间量。
如果指定ID的线程不活动或不存在,则此方法返回-1。如果禁用CPU时间测量,则此方法返回-1。如果一个线程已经启动并且还没有死亡,那么它就是活着的。
如果在线程启动后启用了CPU时间测量,则Java虚拟机实现可以选择任何时间,包括启用该功能的时间作为CPU时间测量开始的时间点。
<强>返回:强> 如果指定ID的线程存在,线程处于活动状态,并且CPU时间测量已启用,则指定ID的线程的总CPU时间;否则为-1。
在插入表之前,该值被插件除以10E9,因此您可以看到进程在几秒钟内使用CPU的时间。