2014-09-13 49 views
2

閱讀有關timeit.default_time()它說,在文檔(Python的3.4):什麼perf_counter確實

默認的定時器,這始終是time.perf_counter()。

但看完舊文檔(Python 2.7版),它說:

定義一個默認的定時器,在特定平臺的方式。在Windows上,time.clock()的粒度爲微秒,但time.time()的粒度爲1/60秒。在Unix上,time.clock()具有1/100秒的粒度,而time.time()更精確。

那麼,perf_counter()只是做一個選擇,以保持便攜性?我的意思是,如果系統是windows,則返回time.clock(),否則返回time.time(),以便上面定義的精度等級仍然保持爲真,不是嗎?

總之,perf_counter()是如何工作的?

回答

1

介紹了Python 2.7和Python 3.4之間的某處time.perf_counter()。現在timeit.default_time()不再需要打擾最佳時間源的選擇,因爲這是在時間模塊中處理的。

在後臺time.perf_counter()只是簡單地調用最佳可用的C API。有關詳細信息,請參閱PEP 418,其中包括新的Python時間API和操作系統的本地時間API的說明。

+1

那麼,'time.perf_counter()'做'timeit.default_time()'做了什麼? – zer0uno 2014-09-13 17:30:55

+0

就功能而言:是的。就實施而言:不。 – maxy 2014-09-13 17:44:37

相關問題