Ressourcen eines Qtimers?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Tinker232
User
Beiträge: 50
Registriert: Mittwoch 25. Juli 2018, 13:45

Hallo zusammen,
ich habe eine kurze Frage :-)
Sind die benötigten Ressourcen eines Qtimer unabhängig von dereren Länge, also ob ich jede 1 Sekunde etwas ausführe oder eben nur alle 850 Sekunden? Ich gehe mal davon aus es hängt an der komplexität der jeweiligen Methode die dann aufgerufen wird, oder?
Ich führe nämliche alle X Sekunden eine Rechnung aus und schreibe dann den Wert der Progress Bar neu.

Nebensächlich:
Da sich die Progress Bar in 1% Schritten fortbewegt würde laut meiner Rechnung eine Aktualisierung sich erst alle bei min. 864 Sekunden lohnen, da voher das Delta <1% wäre...
Benutzeravatar
__blackjack__
User
Beiträge: 13006
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Tinker232: Grundsätzlich hängt der Ressourcenverbrauch eines `QTimer` davon ab was man in der Rückruffunktion macht. Das gilt auf jeden Fall für `QTimer` die in den angesprochenen Grössenordnungen auslösen. Wenn die Frequenz sehr hoch ist, dann fällt natürlich auch noch das bisschen Rechenzeit ins Gewicht die der `Qtimer` selbst verbraucht, aber das ist bei Frequenzen ≤ 1Hz nicht relevant.

Man kann neben der Prozentzahl auch den aktuellen Wert und den maximalen Wert anzeigen lassen. Auch zusätzlich zur Prozentzahl. Und bei solch langen Laufzeiten (~24h) würde ich persönlich ja noch überlegen zusätzlich selbst ein oder mehrere Label zu erstellen wo mehr Informationen stehen. Also zum Beispiel vergangene Zeit und/oder noch erwartete verbleibende Restzeit und die dann mindesten 10sekündlich oder so zu aktualisieren.

Edit: Oder das aktualisieren gar nicht zeitabhängig machen, sondern nach jeweils x Verarbeitungsschritten.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Tinker232
User
Beiträge: 50
Registriert: Mittwoch 25. Juli 2018, 13:45

Hallo blackjack,
danke für den Hinweis :)
Kannst du mir erklären, warum überhaupt es möglich ist, dass das GUI nicht durch den QTimer der sekündlich ein timeout bekommt irgendwie ins stocken gerät?
So wie ich es gelesen habe wird ja nicht explizit eine Thread im Hintergrund erstellt, sondern er arbeitet nur wenn die Zeit um ist.
Benutzeravatar
__blackjack__
User
Beiträge: 13006
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Tinker232: Ich würde ja eher umgekehrt fragen warum die GUI ins stocken geraten sollte wenn der `QTimer` nur einmal in der Sekunde eine Methode aufruft die nur ganz kurz etwas macht‽ In der Zeit zwischen den Aufrufen läuft ja kein Code der CPU-Zeit verbrauchen würde durch den `QTimer`.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten