计算Java函数的CPU周期

时间:2017-02-04 10:57:21

标签: java python cpu cycle

我想知道如何计算Java或Python中函数的CPU周期。

我在Java中尝试过:

(OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean();   osbean.getProcessCpuTime();

但没有结果。

1 个答案:

答案 0 :(得分:2)

Python中的

使用timeit.default_timer();它为您的平台使用最准确的选项。在Ubuntu中,这将使用time.time()代替。

timeit.default_timer()以特定于平台的方式定义默认计时器。在Windows上,time.clock()具有微秒粒度,但time.time()的粒度为1/60th秒。在Unix上,time.clock()具有第二粒度的1/100thtime.time()更加精确。在任一平台上,default_timer()都会测量挂钟时间,而不是CPU时间。这意味着在同一台计算机上运行的其他进程可能会干扰计时。

JAVA中

  1. System.currentTimeMillis()只会测量wall-clock time,而不会测量CPU时间。
  2. 如果你需要挂钟时间,那么System.nanoTime()通常比currentTimeMillis()更精确(并且永远不会更差)。
  3. ThreadMXBean.getThreadCPUTime()可以帮助您了解给定线程使用了多少CPU时间。使用ManagementFactory.getThreadMXBean()获取ThreadMXBean和Thread.getId()以查找您感兴趣的线程的id。请注意,每个JVM都不需要支持此方法!