time模塊的兩個函數time.clock()和time.time()的區別


在統計python代碼 執行速度時要使用到time包,在查找相關函數時有time.time()time.clock()兩個函數可供選擇。而兩者是有區別的:

  • cpu 的運行機制:cpu是多任務的,例如在多進程的執行過程中,一段時間內會有對各進程被處理。一個進程從從開始到結束其實是在這期間的一些列時間片斷上斷斷續續執行的。所以這就引出了程序執行的cpu時間(該程序單純在cpu上運行所需時間)和牆上時鍾wall time。
  • time.time()是統計的wall time(即牆上時鍾),也就是系統時鍾的時間戳(1970紀元后經過的浮點秒數)。所以兩次調用的時間差即為系統經過的總時間。
  • time.clock()是統計cpu時間 的工具,這在統計某一程序或函數的執行速度最為合適。兩次調用time.clock()函數的插值即為程序運行的cpu時間。
    自己跑了下例子
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
    import time
    start1 = time.clock()
    start2 = time.time()
    for i in range(10000):
        print (i)
    end1 = time.clock()
    end2 = time.time()
    print ('wall time is different is %6.3f' % (end1 - start1))
    print ('CPU time is different is %6.3f' % (end2 - start2))

wall time is different is 3.593
CPU time is different is 3.594


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM