为什么python提示没有clock_python – 为什么time.clock比time.time给出更长的时间?
我使用time.clock和time.time在Ubuntu上定時了一段python代碼:
clock elapsed time: 8.770 s
time elapsed time: 1.869 s
我知道time.time使用系統時間和time.clock使用處理器時鐘.當time.time給出比time.clock更長的經過時間時,這對我來說是有意義的:處理器在整個時間內都沒有活動(例如,調用time.sleep的時間).
但是為什么/何時處理器時鐘會比系統時間大得多?
附錄
我做了一個粗略的測試,使用標準映射計算相同的函數,使用進程池映射和線程池映射.可以理解,進程池速度更快,線程池更慢.更有趣的是:時鐘時序小于處理器池的時間,但線程池中的時間更長.
同樣,我理解為什么處理器池的時鐘時序較少:假設主進程沒有做太多事情,只是等待池進程完成.但是為什么線程池的時鐘時間更長?任何見解?
結果:
map
time 1738.8
clock 1739.6
mp pool
time 580.1
clock 15.9
thread pool
time 3455.3
clock 5378.9
碼:
from time import clock,sleep,time
from multiprocessing.pool import ThreadPool
from multiprocessing import Pool
import random
def f(i):
x = [random.random() for j in range(100000)]
return x[i]
def t(fn):
t0,c0 = time(),clock()
for i in range(10): fn(f,range(16))
print ' time ',round(1000*(time()-t0),1)
print ' clock',round(1000*(clock()-c0),1)
if __name__ == '__main__':
print 'map'
t(map)
pool = Pool(8)
print 'mp pool'
t(pool.map)
pool = ThreadPool(8)
print 'thread pool'
t(pool.map)
總結
以上是生活随笔為你收集整理的为什么python提示没有clock_python – 为什么time.clock比time.time给出更长的时间?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 水星怎么设置网速最快_水星无线路由器如何
- 下一篇: 九年级数学解方程50道_【初中数学】北师