日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

为什么python提示没有clock_python – 为什么time.clock比time.time给出更长的时间?

發布時間:2025/3/11 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为什么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给出更长的时间?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。