Java VM macht einfach Pause
-
Und selbst damit sind natürlich die Ergenisse nicht immer gleich.
-
Alles klar,
das wars. Die Zeit ist einfach nicht richtig. hab das ganze in C++ nachgebaut und hatte den gleichen Effekt.
Vielen Dank für eure Hilfe.
basedow
-
Irgendwo habe ich mal gelesen, dass der Timer unter Java-VM für Windows nicht den hochäuflösenden Timer verwendet. Der Autor hat dann den Tipp gegeben den Timer aus Java3D zu verwenden, wenn die Zeit wichtig ist.
Hier gibts mehr dazu zu lesen (im ersten Kapitel)
http://fivedots.coe.psu.ac.th/~ad/jg/
-
Es wurde doch schon System.nanoTime() erwähnt. Was willst du mehr (vorausgesetzt, er funktioniert).
-
Optimizer schrieb:
(vorausgesetzt, er funktioniert).
Wie meinst du das?
Hier ist mal ein kleines Testprogramm von mir:public class TestNano { public static void main(String[] args) { for(int i = 0 ; i < 10 ; ++i) { System.out.println(-(System.nanoTime() - System.nanoTime())); } } }
Output bei mir:
4000 5000 4000 5000 5000 5000 5000 4000 4000 5000
Mit anderen Worten: Bei mir kann man mit System.nanoTime() mit einer Genauigkeit von 4-5 Mikrosekunden Zeit messen.
-
Ich hatte es nur nicht getestet.
Da nicht mal die ms genau stimmen, wollte ich nicht voreilig behaupten, dass es seinen Dienst perfekt tut.
-
Optimizer schrieb:
Es wurde doch schon System.nanoTime() erwähnt. Was willst du mehr (vorausgesetzt, er funktioniert).
Sollte das auf allen Platformen laufen? Also unter Linux (Java 1.4.2_04) erkennt er die Methode nicht. (Hab das TestNano Progrämmchen benutzt)
Also (momentan) würde ich das nicht als die beste Lösung bezeichnen...
-
Gregor hat auch geschrieben "ab Java 1.5". Und ja, es läuft auf allen Plattformen, wo eine 1.5 VM installiert ist. Auf dem Handy vermutlich nicht so genau wie auf einem Windows-PC, aber immerhin.
Warum benutzt du überhaupt noch Java 1.4?
-
Oops, sorry sollte ein wenig besser lesen...
Nun gut mit Java 1.5 oder läufts dann auch unter Linux. Der Output lag sogar nie über 2000...
Ich benutze noch Java 1.4, weil ich mit der Beta 1 von 1.5 Probleme hatte, es lief nicht alles wie es sollte. Mit der Beta 2 gehts jetzt zwar besser, aber ich will auf der sicheren Spur bleiben
-
Die Beta 2 ist sicher, mach dir da keine Sorgen.