Schleifen laufen zu langsam

Sajo

Sajo

Stammgast
312
Hallo,

ich habe eine Schleife angelegt die bis zu einem bestimmten Wert durchläuft.

Die Variable in der Schleife fängt mit 0 an und wird fortlaufend jede Sekunde um 1 erhöht. So die Theorie jedenfalls.

Stop ich allerdings nebenher mit der Stopuhr und warte bis die Wertausgabe kommt mit den Sekunden, hinkt das irgendwie hinterher.

Bsp. ausgerechnete Zeit 45 Sekunden. Ausgegebener Wert aber blos 33 Sekunden.

Kann man das beschleunigen?
 
Hi,

also ich nehme mal an die Schleife macht irgendwas, dann kommt 1sec Wartezeit und sie beginnt von vorn. Höchst wahrscheinlich kommt zu der 1sek Wartezeit noch die Rechenzeit für die übrigen Aufgaben in der Schleife. Jetzt bringt es aber nichts die Wartezeit zu verkürzen, da die Rechenzeit mit der aktuellen CPU-Last variiert. Du könntest zu Beginn der Schleife ne variable setzen: %TIMES zu %times + 1 (use math) und statt der festen Sekunde Wartezeit, ein wait until: until %times ~ %TIMES. Bei der wait until -Funktion muss allerdings das Zeitintervall zur Überprüfung der "until-Bedingung" festgelegt werden, welches bei dir natürlich möglichst klein sein sollte. So 10-50ms würde ich empfehlen.


Gruß

Chillmann
 
ja stimmt das werde ich mal ausprobieren.

Meine erste Möglichkeit die ich versuchen wollte ist leider nicht realisierbar.
Ich wollte am Anfang der Schleife die Zeit in eine variable schreiben und am Ende der Schleife die Zeit in eine zweite schreiben. Danach %zeit1-%zeit2.

Wurde leider durch den erheblichen Rechenaufwand nicht wirklich rentabel.

Am Zeitmanagement kann man wirklich noch etwas überarbeiten.
 
Moin

Tasker ist nicht darauf ausgelegt, Aktionen innerhalb einer bestimmten Zeit auszuführen.
Die Aktionen werden abgearbeitet, wenn der jeweilige Task in der Warteschlange (Zeit+Prio) dran ist.

Anturix
 
Welches Ziel hat die ganze Aktion. Oft verirrt man sich schon im Ansatz.
 
Der Grundgedanke war für eine bestimmte Schleife einfach die Zeit zu stoppen.
Die Anzahl der Wiederholungen der Schleife ist unbestimmt und wird durch eine Eingabe
gemacht.

Da das so aber nicht funktioniert hab ich jetzt die Zeitmessung rausgelassen.
 

Ähnliche Themen

L
Antworten
15
Aufrufe
783
lodar
L
holms
Antworten
1
Aufrufe
93
Mathens
Mathens
G
Antworten
1
Aufrufe
295
Cecoupeter
Cecoupeter
Zurück
Oben Unten