【问题标题】:Why is CPU time greater than wall clock time in VisualVM?为什么在 VisualVM 中 CPU 时间大于挂钟时间?
【发布时间】:2021-03-24 22:21:25
【问题描述】:

使用 VisualVM 进行分析时,CPU 时间低于挂钟时间可能是由于缓存未命中(=等待内存访问)、线程阻塞,甚至是操作系统认为其他更重要的事情。

但是,如果 CPU 时间实际上高于挂钟时间,我应该如何解释相反的情况?我的第一个猜测是并行化,但我的代码是单线程的。 JIT 是否并行化?我使用 OpenJDK 11。

我的代码中有几个这样的例子,下面只是一个:

【问题讨论】:

    标签: java profiling visualvm


    【解决方案1】:

    我不知道这个异常的真正原因是什么。然而:

    1. 当前一代 HotSpot JIT 在编译代码时不会自动并行化代码。 (AFAIK)
    2. LinkedList.removeFirst() 操作无论如何都不会自动并行化。

    所以我认为我们可以排除它作为可能的解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-26
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多