Präzision von (QT-)Timern

Verschiedenes zu Qt
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Weniger Fragezeichen benutzen. Ein Echtzeit-Betriebssystem verwenden. Überlegen warum Windows so lange braucht. Mal überlegen, was du jetzt wirklich willst 1ms, oder 100ms.

Und hier von ein bischen zu reden, halt ich für ein bischen untertrieben.

Code: Alles auswählen

i++; 
 ui->label->setText(QString::number(i));
Das erste ist in einer Maschinenanweisung machbar.
Das zweite kann mehre Millionen Maschinenanweisungen nach sich ziehen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Also bei dem Testprojekt langweilt sich mein PC (Qt 4.6.x, MSVC Debug-Mode). Also gehe ich davon aus dass auch die Timer korrekt gehen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Uwe
Beiträge: 176
Registriert: 9. Oktober 2005 13:37
Wohnort: München

Beitrag von Uwe »

lx2 hat geschrieben:Was würdest du denn dagegen machen???
Zunächst einmal würde ich die tatsächlich abgelaufene Zeit nehmen und nicht eine Zeitspanne aus den abgelaufenen Timern zusammen rechnen. D.h den Wert jeweils mit QTimer::elapsed() ermitteln. So kannst Du dann Timer Events sogar ganz verpassen ohne, daß die Anzeige falsch wird.

Dann würde ich keinen periodischen Timer aufziehen, sondern am Ende von updateLabel jeweils nur einen. Damit kannst Du verhindern, daß sich die Events aufstauen und das Fenster beim Resize hängt.

100 ms zum Zeichnen eines Texts erscheint mir selbst unter Windows zu viel ( habe es allerdings nicht ausprobiert, da ich selber keine benötige ). Wirf doch mal alles andere (kein MainWindow, StatusBar, ToolBar) außer dem QLabel aus Deinem Programm raus um sicher zu gehen, daß die anderen Widgets nicht versehentlich mitgezeichnet werden.

Als kleine Optimierung kannst Du QWidget mit QPainter::drawText() anstelle des Labels verwenden.

Uwe
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

100 ms zum Zeichnen eines Texts erscheint mir selbst unter Windows zu viel
Was ist schon Normal ? Ich kann dir dinge erzaehlen von unserem netzwerk hier .... da waerst um timer im sekundenbereich scho gluecklich ^^ ok bissi übertrieben :-)

An dern TE:
Was fuer windows, was fuer ne Installation ? Was laeuft im Hintergrund so ? Bist Du an ner Domaene ? Laufen da irgendwelche fiesen Scripte (Sytemadmins scheinen VB/Java scripte zu lieben, die die ganze zeit laufen, zumindest bei uns) .....

Und ja ich kann das Nachvollziehen, bei mir verspaeten sich timer auch gern mal um sekunden. Aber das liegt bei uns am Netz und dem ganzen sicherheits und verwaltungsoverhaed, den der Rechner bewaeltigen muss (Nein, iss kein Server, nur nen "normaler Office rechner" mit bissi ueppigerer ausstattung fuers programmieren). (Statt Green PC labels zu verteilen, sollt man Admins und System/Netwzwerk Architekten nen Green-Führerschein machen lassen ^^). Aber das ist kein windows eigenes Problem ...

Ciao ...
Antworten