util.Timer zu langsam?

B

Boha

Gast
Hi,
ich bin gerade dabei einen Autonomen Rasenmäher zu Programieren und Simulieren.
Die Simulation läuft ausschließlich über Timer.
Je nachdem in welche Richtung sich ein Radmotor dreht wird die Position auf der karte über einen Timer aktualisiert.
Dadurch lässt sich auch die Geschwindigkeit der Simulation einstellen.
Mein Problem ist jetzt, dass die Simulation mit einem Intervall von zB 10ms mal schneller und mal langsamer läuft.
Mir kommt es so vor, je länger mein PC läuft umso schneller bzw. "normaler" laufen auch die Timer.. nach einem Neustart läuft die ganze Simulation im Schneckentempe..
Hat vll jemand eine Idee woran das liegt?
LG
 

Murray

Top Contributor
Prinzipiell muss man bei einem Multitasking-Betriebssystem (sofern es sich nicht um ein Echtzeitbetriebssystem handelt) damit rechnen, dass eine Anwendung für beliebig lange Zeit unterbrochen wird, weil das System gerade etwas anderes zu tun hat. Direkt nach dem Neustart werden oft noch irgendwelche Dienste etc. gestartet, was das System etwas ausbremst.

Wenn man Timer.schedule verwendet, dann verwendet man fixed-delay-execution, so dass zwischen zwei Ausführungen immer wieder 10ms vergehen; evtl. aus länger, wenn das System anderweitig zu tun hatte.

Mit Timer.scheduleAtFixedRate benutzt man fixed-rate-execution, so dass der Timer versucht, auf lange Sicht die Frequenz aufrechtzuerhalten. Wenn der Timer also bemerkt, dass seit der letzten Ausführung bereits 25ms vergangen sind (weil z.B. zwischendurch das System durch eine GarbageCollection ausgebremst war), dann führt er den Task zweimal direkt hintereinander aus und plant den nächsten nur 5ms später ein; er versucht also sozusagen, die Verspätung aufzuholen.

Verwendest Du bereits fixed-rate-execution?
 
B

Boha

Gast
ist unterschiedlich..
ein Task erledigt die Positionsbestimmung, abhängig von Drehrichtung der Radmotoren und Richtung des Rasenmähers.
Andere Tasks werden gestartet um zu vergleichen, ob zB ein bestimmter Punkt oder Richtung erreicht wurde. Dadurch das diese nicht aneinander gekoppelt sind kommt es manchmal zu Problemen weil bei einer Drehung 2mal die Richtung neu bestimmt wird und der Task der die gewollte Richtung mit der aktuellen vergleicht den Zeitpunkt verpasst hat. dann macht der Rasenmäher nochmal ne komplette Drehung.
bei der Positionsbestimmung die immer läuft hab ich jetzt nur Timer.schedule, damit er die aktualisierung nicht 2 mal direkt hintereinander durchführt und der andere Timer nicht hinterher kommt.
Bei den Vergleichstask benutze ich atFixedRate.
Die Vergleichstask werden auch in kürzeren Perioden ausgeführt.. trotzdem verpassen sie manchmal den richtigen Zeitpunkt, ist aber nicht so schlimm.

Danke schonmal, jetzt weiß ich wenigstens woran es liegt.
Kann man vll iwo die Priorität der einzelnen Timertasks im Programm festlegen?
LG
 

Boha

Neues Mitglied
Ok, jetzt bin ich drauf gekommen, dass man auch mehrere Tasks an einen Timer hängen kann..
glaube das hilft mir weiter :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H java.util.Timer und Funktion mit SQL Exception Allgemeine Java-Themen 5
V Frage zu util.Timer (-> TimerTask) Allgemeine Java-Themen 2
M Verständnisfrage java.util.TimerTask Allgemeine Java-Themen 2
M java.util.prefs.Preferences "not visible" Allgemeine Java-Themen 7
J Compilerfehler bis in java.util.regex.Pattern... Allgemeine Java-Themen 2
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
D java.util.ConcurrentModificationException tritt auf Allgemeine Java-Themen 12
L util.logging Log Rotation Allgemeine Java-Themen 3
H java.util.logging Formatter Optionen setzen Allgemeine Java-Themen 2
K Collections java.util.ConcurrentModificationException Allgemeine Java-Themen 3
S java.util.ConcurrentModificationException - aber nur ein Thread Allgemeine Java-Themen 3
N java.util.Date - Zeit auf 00:00 setzen Allgemeine Java-Themen 3
B OOP java.util.logging.Logger: Wie kann ich mehre Klassen in ein Logfile schreiben lassen? Allgemeine Java-Themen 12
D java.util.ConcurrentModificationException - per Copy vermeiden Allgemeine Java-Themen 11
H java.util.random magischer Startwert? Allgemeine Java-Themen 2
D java.util.ConcurrentModificationException bei ArrayList Allgemeine Java-Themen 2
reibi Separator in java.util.Properties-Files Allgemeine Java-Themen 3
E Seltsamer aufruf von java.util.Date.toString() Allgemeine Java-Themen 3
S Tomcat java.util.logging - keine Logs Allgemeine Java-Themen 12
D java.util.InputMismatchException im Scanner -wieso? Allgemeine Java-Themen 5
isowiz java.util.List: Sortierung nicht nach bestimmten Attribut? Allgemeine Java-Themen 4
R java.util.ConcurrentModificationException vermeiden? Allgemeine Java-Themen 8
2 In Jar schreiben? (java.util.jar) Allgemeine Java-Themen 9
V java.util.concurrent.RejectedExecutionException ? Allgemeine Java-Themen 1
J java.util.ConcurrentModificationException bei HashMap? Allgemeine Java-Themen 2
D Problem mit java.util.scanner: Falsche Ergebnisse Allgemeine Java-Themen 4
B java.util.zip Allgemeine Java-Themen 5
M Schnittstelle java.util.Set Allgemeine Java-Themen 9
G java.util.List klonen Allgemeine Java-Themen 17
A java.util.Regex :-( Allgemeine Java-Themen 5
P java.util.ConcurrentModificationException Allgemeine Java-Themen 9
P java.util.List - Typ überschreiben Allgemeine Java-Themen 9
H java.util.Vector langsam ? Allgemeine Java-Themen 5
N Java API java.util.vector Allgemeine Java-Themen 3
L properties auslesen funktioniert nicht(java.util.Properties) Allgemeine Java-Themen 3
L Frage zu java.util.regex und Einlesen einer Datei Allgemeine Java-Themen 2
T java.util.zip subfolders Allgemeine Java-Themen 2
K Wie gut sind java.util - ADTs ? Allgemeine Java-Themen 2
S java.util.Formatter Allgemeine Java-Themen 4
M Rat gesucht: Logging (log4J oder java.util.logging oder .) Allgemeine Java-Themen 5
bernd java.util.Scanner erst ab Java 1.5? Allgemeine Java-Themen 4
I java.util.Date - die 1970-Untergrenze Allgemeine Java-Themen 3
A Split() - Methode und java.util.regex.* Allgemeine Java-Themen 2
V java.util.* vs java.sql.* Allgemeine Java-Themen 2
H java.util.Logger Allgemeine Java-Themen 5
W Timer terminiert nicht Allgemeine Java-Themen 5
W Timer Konzept-Frage Allgemeine Java-Themen 16
Z Timer Allgemeine Java-Themen 5
H Timer funktioniert nicht? Allgemeine Java-Themen 3
Tacofan Kurzer Timer Allgemeine Java-Themen 22
B Threads Timer wird immer schneller Allgemeine Java-Themen 6
H Consumer (Java8 Lambda) an Timer übergeben Allgemeine Java-Themen 2
wolfgang63 Best Practice Taktgeber oder Timer mit variablem Intervall Allgemeine Java-Themen 1
I Timer Allgemeine Java-Themen 1
X Timer Allgemeine Java-Themen 3
C Timer? Allgemeine Java-Themen 8
U Timer - Timertask endet nicht Allgemeine Java-Themen 4
X timer.schedule - Allgemeine Java-Themen 7
D Simpler Timer zum warten Allgemeine Java-Themen 19
G Threads Timer wird unterbrochen Allgemeine Java-Themen 20
P Java Timer Allgemeine Java-Themen 3
K Timer Thread Allgemeine Java-Themen 8
E Wie Timer anbringen mit Designer in Netbeans Allgemeine Java-Themen 5
M Ampelsteuerung über Timer in Java realisieren Allgemeine Java-Themen 3
O Timer pausieren Allgemeine Java-Themen 5
M Timer von nicht existiertem Objekt stopen Allgemeine Java-Themen 5
P Java Timer Allgemeine Java-Themen 2
S Timer in Applet? Allgemeine Java-Themen 11
G Swing Timer führt Methode nicht aus Allgemeine Java-Themen 2
P Swing Eine Sekunde warten (Timer) Allgemeine Java-Themen 7
E Timer class macht einfach garnichts :/ Allgemeine Java-Themen 6
T Timer oder Alternative? Allgemeine Java-Themen 3
Z Timer -> Thread jeden Tag ausführen Allgemeine Java-Themen 5
D Probleme mit einem Timer Allgemeine Java-Themen 6
E Timer - gleichen Task mehrfach planen Allgemeine Java-Themen 2
D Timer oder Thread, das ist hier die Frage Allgemeine Java-Themen 3
A TimerTask - Task stoppen - timer.cancel() funktioniert nicht Allgemeine Java-Themen 8
S Problem mit einem Timer (Aktualisierung etc.) Allgemeine Java-Themen 2
B Timer übergabe Allgemeine Java-Themen 3
G Timer abbrechen und neu starten Allgemeine Java-Themen 3
G timer mit buttondruck abbrechen Allgemeine Java-Themen 7
T Timer oder ähnliches? Allgemeine Java-Themen 3
O Timer und TimerTask: Programm terminiert nicht! Allgemeine Java-Themen 3
O Thread als Timer Interrupt Allgemeine Java-Themen 2
C Timer.scheduleAtFixedRate(). Allgemeine Java-Themen 5
H gibts in Java sowas wie in Visual Basic den Timer? Allgemeine Java-Themen 5
B 24 Uhr Timer Task Allgemeine Java-Themen 5
G Timer nur 64 mal pro Sekunde? Allgemeine Java-Themen 18
S Frage zu jTDS, JAVA allgemein und Timer Allgemeine Java-Themen 6
L Problem mit Timer Allgemeine Java-Themen 7
J Timer-Objekt / Task-Zustand ermitteln Allgemeine Java-Themen 5
R JDK installieren OpenJDK-Aufruf sehr langsam Allgemeine Java-Themen 4
K Arbeitsspeicher wird langsam voll Allgemeine Java-Themen 6
E JavaFX RMI extrem langsam wenn Server nicht läuft Allgemeine Java-Themen 5
Thallius String erzeugen sehr langsam Allgemeine Java-Themen 16
S JNLP startet seit 1.8.0_31 sehr langsam + Windows-Systemverzeichnis Allgemeine Java-Themen 3
P Eclipse langsam/unbrauchbar bei größeren Quelldateien? Allgemeine Java-Themen 8
W Threads NullPointer: Konstruktor "zu langsam"? Allgemeine Java-Themen 3
M Externe Jar sehr langsam Allgemeine Java-Themen 23
C JEditorPane langsam großes HTML Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben