Czy metoda System.currentTimeMillis () naprawdę zwraca aktualny czas?
Na podstawie pomysłów przedstawionych wpołączyć Zaimplementowałem kilka różnych „metod snu”. Jedną z takich metod był „sen binarny”, który wygląda tak:
while (System.currentTimeMillis() < nextTimeStamp)
{
sleepTime -= (sleepTime / 2);
sleep(sleepTime);
}
Ponieważ sprawdzenie, czy następny krok jest już osiągnięty, ma miejsce na początku, oczekiwałbym, że metoda działa zbyt długo. Ale sumaryczny rozkład błędu symulacji (oczekiwany czas - w czasie rzeczywistym) wygląda tak:alt tekst http://img267.imageshack.us/img267/4224/errorvscummulativearran.jpg
Czy ktoś ma pomysł, dlaczego otrzymuję takie wyniki? Może metoda System.currentTimeMillis () naprawdę nie zwraca bieżącego czasu?
BR,
Markus
@irreputable
Kiedy dokonałem oceny, stworzyłem również krzywą dzwonową za pomocą niemieckiego programu statystycznego. Ponieważ nie można było zmienić podpisu, oto angielskie tłumaczenie wszystkich istotnych elementów:
Häufigkeit = częstotliwość
Fehler = błąd
Mittelwert = średnia
Std-Abw = odchylenie standardowe
alt tekst http://img694.imageshack.us/img694/2254/bellcurve.jpg