2017-04-10 5 views
1

ich zu testen, ich versuche, wie lange ein Verarbeitungscodeblock nimmt HTTP-Anforderung, hier in meinem Kolben-Controller ist das Codebeispiel I verwendet:Python: Signifikanter Unterschied zwischen time.time() und time.clock()?

cancelled = [] 
t0 = time.time() 
t1 = time.clock() 
users = requests.get('https://www.example.com/users/') 
for i in users.json(): 
    user = requests.get('https://www.example.com/user/%s' % i['id]').json() 
    if user['status'] == 'Cancelled': 
     cancelled.append(user) 
t2 = time.clock() 
t3 = time.time() 
print t2 - t1 
print t3 - t0 

Hier sind die Ausgänge:

2.712326 
76.424875021 

Die zweite Ausgabe von der Funktion time.time() stimmt mit den tatsächlichen Sekunden überein, die zum Anzeigen der Ergebnisse benötigt wurden. Daher bin ich mir nicht sicher, warum der Wert von time.clock() so klein ist?

Edit: Mein System ist OSX und Python 2.7, und meine Frage ist, warum wird time.clock() allgemein als "besser" angesehen, wenn time.time() die tatsächliche Zeit eines Benutzers Erfahrungen/Wartezeiten widerspiegelt?

+1

Well time.clock() (vor allem, da dies Ihnen viel mehr Kontrolle über die Testumgebung erlaubt) ist die Prozessorzeit, wenn Sie auf Unix sind, und time.time () ist Sekunden seit Epoche – Jacobr365

+0

Dupliate: http://stackoverflow.com/questions/85451/python-time-clock-vs-timetime-accuracy – Alex

+1

Mögliches Duplikat von [Python - time.clock() vs. time.time() - Genauigkeit?] (http://stackoverflow.com/questions/85451/python-time-clock-vs-timetime-accuracy) –

Antwort

1

Beachten Sie, dass ab Python 3.3 time.clock jetzt deprecated ist, da das Verhalten plattformabhängig ist. Die Dokumentation empfiehlt die Verwendung von time.process_time oder time.perf_counter zur Leistungsmessung.

Ansonsten würde ich empfehlen, die timeit Modul

Verwandte Themen