0
我想知道如何计算Java或Python中函数的CPU周期。为Java函数计算CPU周期
我在Java中尝试了用:
(OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean(); osbean.getProcessCpuTime();
但没有结果。
我想知道如何计算Java或Python中函数的CPU周期。为Java函数计算CPU周期
我在Java中尝试了用:
(OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean(); osbean.getProcessCpuTime();
但没有结果。
在Python ,
使用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时间。这意味着在同一台计算机上运行的其他进程可能会影响计时。
在JAVA ,
System.currentTimeMillis()
将只测量wall-clock time,从来没有CPU时间。System.nanoTime()
通常比currentTimeMillis()
更精确(且从不差)。ThreadMXBean.getThreadCPUTime()
可以帮助您找出给定线程已使用多少CPU时间。使用ManagementFactory.getThreadMXBean()
可以获得ThreadMXBean和Thread.getId()
以找到您感兴趣的线程的id
。请注意,每个JVM都不需要支持此方法!
这不是一个小问题。以下是Java的一个很好的起点:http://stackoverflow.com/questions/504103/how-do-i-write-a-correct-micro-benchmark-in-java – NPE
在Java中执行任何操作所需的时间Java因许多因素而异。相同的功能可能需要50毫秒或根本不需要时间,具体取决于它的功能和运行方式。 –