[Python-de] präzise Zeitmessung unter Linux

Christopher Arndt chris.arndt at web.de
Mi Okt 1 16:24:39 UTC 2008


Bastian Venthur schrieb:
> Stefan J. Betz schrieb:
>> Am 2008-10-01 15:00:59 +0200, Bastian Venthur schrieb:
>>> Weis jemand mehr?
>> Wirf doch mal einen Blick auf das timeit Modul von Python, das gibt es
>> seit Python 2.3 und sollte ausreichend genau für deine Zwecke sein!
> 
> Nein leider kann ich timeit nicht verwenden. Da es sich um zwei
> getrennte Anwendungen handelt die über Netz miteinander kommunizieren
> ist die Sache etwas komplizierter. Ich messe im Grunde wann gesendet und
> wann empfangen wurde -- dafür geht timeit leider nicht.
> 
> Ich benutze im Moment time.time um zu messen wie spät es ist -- nur hab
> ich keine Ahnung wie genau diese Zeitangabe ist.
> 
> Immerhin stand in der Doku von timeit, dass unter Unix time.clock()
> 1/100s Granularität hat und time.time() "viel" präzieser ist (was auch
> immer viel bedeutet).

Ich würde sagen, das bedeutet: gut genug. Ruf doch einfach mal
time.time() zehn-/hundert-/tausend oder millionmal in einer Schleife auf
und dann vergleiche zwei Samples miteinander.

Z.B. so:

import time

samples = []
for i in range(100000):
    samples.append(time.time())

deltas = [j-i for i,j in zip(samples, sample[1:])]
print "Maximum time delta: ", max(deltas)

(Das geht bestimmt auch eleganter, das war die schnellste Lösung,d ie
mir eingefallen ist.)

Sind denn deine beiden Server überhaupt via NTP synchronisiert, damit
die Zeiten vergleichbar sind?

Chris



Mehr Informationen über die Mailingliste python-de