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毫秒或根本不需要時間,具體取決於它的功能和運行方式。 –