ich habe mich gerade hier angemeldet, weil ich ein Problem mit einem Programm von mir habe und langsam nicht mehr weiter weis.
Vielleicht könnt ihr mir helfen oder meine Vermutung bestätigen.
Kurz zum Rahmen...
Ich habe ein GUI-Programm.
Von dem Programm werden zwei Threads gestartet die verschiedene Aufgaben parallel abarbeiten.
In einem dieser Threads habe ich ein Problem. Dort ist eine For-Schleife in der sich eine Pause mit time.sleep() befindet.
Jetzt habe ich das Problem, dass diese Schleife auf unterschiedlichen Laptops / PCs unterschiedlich lange braucht.
Was eigentlich keinen Sinn macht.
Code: Alles auswählen
for i in range(500):
Liste.append(neuerWert)
time.sleep(Variable)
i += 1
Vorher und nachher messe ich die Zeit um zu überprüfen wie lange diese Schleife real braucht.
ich habe jetzt schon mehrmals gelesen, dass die Variante time.sleep() sehr ungenau ist und für kleine Zeitspannen nicht wirklich gut funktioniert. Stimmt das?
Wenn ich bei meinem Laptop als Variable .008 nutze. braucht die Schleife 4 Sekunden. Was ja stimmt.
Wenn ich den Wert verdopple, verdoppelt sich auch die Zeit der Schleife. Also alles gut.
Ich habe dieses Programm jetzt auf zwei anderen Laptops getestet und da stimmt dass überhaupt nicht mehr.
Habe es nicht ganz genau getestet aber ist der Wert sehr klein ist die Schleife in Bruchteilen fertig. Ist der Wert kleiner 0.015 dann braucht die Schleife für jeden Wert immer ca. 7,3 Sekunden und ist der Wert größer dann ca. 15,6 Sekunden. Also ob time.sleep() einfach nur in Etappen verwendbar ist.
Kann das am Prozessor liegen? Dass der dieses Modul nicht richtig verwendet oder habt ihr vielleicht noch eine andere Idee?
Kann ich eine Unterbrechung auch anders realisieren?
Hoffentlich könnt ihr mir helfen.
Liebe Grüße