gpt4 book ai didi

java - Java VisualVM 中的 "total time (CPU)"是否包含 CPU 执行其他进程所花费的时间?

转载 作者:行者123 更新时间:2023-12-02 09:03:48 25 4
gpt4 key购买 nike

Java VisualVM 的 CPU 分析器选项卡中的“总时间 (CPU)”列是否包含 CPU 执行其他进程所花费的时间?

例如,让我们考虑这样的情况:

  • 我运行一个程序,其中有一个名为 myMethod() 的方法,该方法执行一些计算。这个计算需要 2 秒 - 所以如果 CPU 不执行任何操作而只执行我的代码,那么执行这个方法需要 2 秒。
  • 当我分析我的应用程序时,CPU 正在执行多个进程 - 我的进程和其他一些进程(例如,我正在运行一个浏览器,或类似的东西)。

  • CPU 已启动 myMethod(),它执行该方法一段时间,然后开始执行浏览器进程并在那里花费 1 秒,然后再次返回执行 myMethod() 并完成它。因此,从 myMethod() 的开始到结束已经过去了 3 秒,但执行 myMethod() 只用了 2 秒。

Java VisualVM 的 CPU 分析器选项卡中的“总时间 (CPU)”列中将显示哪个时间 - 2 秒或 3 秒?

最佳答案

报告 CPU 时间时,分析器将报告 JVM 本身所花费的时间(可能包括“系统”时间)。

浏览器使用的 CPU 时间不应计入 CPU 时间列。如果是/是,那么列标题应该是“经过”时间或“实时”时间。

如果您对此没有信心,请编写一些简单的测试程序并对其进行分析:

  • 当您的应用程序调用Thread.sleep(....)时,查看分析器报告的内容

  • 当您的应用程序在从 System.in 读取一行时发生阻塞时,请查看探查器报告的内容。

关于java - Java VisualVM 中的 "total time (CPU)"是否包含 CPU 执行其他进程所花费的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59980114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com