System.currentTimeMillis() ?????????? Klappt nicht
-
Hallo zusammen
Ich habe da ein kleines/grosses Problem mit der Methode System.currentTimemillis().
Ich will die Zeit messen die eine Methode braucht. Besser gesagt ich muss ermitteln welcher Algorithmus welchen Laufzeitverhalten bei welcher eingabe hat.
Folgendes habe ich gemacht aber irgendwie geht das nicht.
long time1 = System.currentTimMillis(); double[] erg = algorithm1(b); long time = System.currentTimMillis() - time1;
Wenn ich mir jetzt den Wert von time anschaue dann habe ich egal wie gross meine eingabe Variable von algorithm1 ist immer den wert 0 (Zero).
Das kannn doch aber nicht sein die Zeit läuft doch weiter und bleibt nicht stehen.
Kann mir bitte einer sagen wie ich solche sachen besser messen kann und warum der mir immer den Wert 0 (Zero) liefert.
Danke.
-
Wie lange dauert denn das ganze? Die Methode currentTimeMillis ist nicht sehr genau. Auf Windows-Systemen ist sie wohl so auf 10ms oder so genau. Wenn dein Algorithmus also sehr schnell durchläuft, dann kann da durchaus immer 0 rauskommen.
In dem Fall kannst du den Algorithmus zwischen den beiden Messungen ja einfach mal 10.000 mal oder so durchlaufen lassen.
-
long stamp = new java.util.Date().getTimeInMillis();