我想知道如何计算Java或Python中函数的CPU周期。
我在Java中尝试过:
(OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean(); osbean.getProcessCpuTime();
但没有结果。
答案 0 :(得分:2)
,
使用timeit.default_timer();
它为您的平台使用最准确的选项。在Ubuntu中,这将使用time.time()
代替。
timeit.default_timer()
以特定于平台的方式定义默认计时器。在Windows上,time.clock()
具有微秒粒度,但time.time()
的粒度为1/60th
秒。在Unix上,time.clock()
具有第二粒度的1/100th
,time.time()
更加精确。在任一平台上,default_timer()
都会测量挂钟时间,而不是CPU时间。这意味着在同一台计算机上运行的其他进程可能会干扰计时。
,
System.currentTimeMillis()
只会测量wall-clock time,而不会测量CPU时间。System.nanoTime()
通常比currentTimeMillis()
更精确(并且永远不会更差)。ThreadMXBean.getThreadCPUTime()
可以帮助您了解给定线程使用了多少CPU时间。使用ManagementFactory.getThreadMXBean()
获取ThreadMXBean和Thread.getId()
以查找您感兴趣的线程的id
。请注意,每个JVM都不需要支持此方法!