Hm... ich habe zuerst gedacht, $microseconds gibt immer eine sechstellige Zahl aus, da in den Tests auch die hinteren Nullen ausgegeben wurden, bis ich eines besseren belehrt wurde:
Nein, einfach die Nachkommastellen.
Und hier verschiedene Ausgaben:
sieht bei mir so aus:
Normale Funktion time.................: 1195551627
Time::HiRes-Funktion time.............: 1195551627.37511
gettimeofday getrennt (Struppi).......: 1195551627-375000
gettimeofday als Zahl.................: 1195551627375182
Normale Funktion time.................: 1195551629
Time::HiRes-Funktion time.............: 1195551629.92198
gettimeofday getrennt (Struppi).......: 1195551629-921875
gettimeofday als Zahl.................: 1195551629922057
Normale Funktion time.................: 1195551630
Time::HiRes-Funktion time.............: 1195551630.9845
gettimeofday getrennt (Struppi).......: 1195551630-984375
gettimeofday als Zahl.................: 1195551630984587
Im zweiten Test sieht man, dass sehr wohl die hinteren Nullen ausgegeben werden. Ferner sieht man in den zwei ersten Tests die Zeitabweichung bei den Ausgaben, diese beträgt weniger als 200 Mikrosekunden.
Überrascht dich, dass der Rechner Zeit braucht zum Rechnen?
Wenn zwischen gettimeofday getrennt (Struppi)
Es wird nichts getrennt, setzt mal den output separator: $, = "|"; dann siehst du die zwei Werte, die gettimeofday zurück gibt.
was bedeutet dann die letzte Zahl? 199000 Mikrosekunden? Passt doch nicht mit den 2 ersten Tests zusammen, wo nur ca. 200 Mikrosekunden Zeitunterschied zwischen den Ausgaben liegen.
Die Nachkommastelle bedeutet 0,199 Sekunden, das entspricht ungefähr 200 Mikrosekunden.
Und über Abweichungen im Nanosekunden Bereich würde ich mir nicht den Kopf zerbrechen, der interne Timer im Rechner ist dafür mit Sicheheit nicht ausgelegt.
Struppi.