Trotz QThread hohe Auslastung

Alles rund um die Programmierung mit Qt
Antworten
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Trotz QThread hohe Auslastung

Beitrag von CaptnChaos »

Tach auch!
Ich habe ein kleines Problem mit QThread....
Folgende Situation:
Ich berechne in einem externen Thread die Streams für eine Matrix Emulation. Für eine Spielerei ist die Auslastung ja ziemlich Pups, ich hatte mir aber überlegt mehr daraus zu machen und da wird der Resourcenaufwand dann doch kritisch.

Jetzt meine Frage: Wie kann ich den Processor stark entlasten? Was mache ich in dem Thread falsch?
Der Code ist im Anhang.
Dateianhänge
matrix.zip
(15 KiB) 90-mal heruntergeladen
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Warum sollte ein Thread die CPU-Last verringern? Wenn ich was zu berechnen habe brauche ich CPU-Zeit - egal in welchem Thread sich das abspielt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Jo... Das Problem liegt übrigens doch nicht bei QThread sondern beim PaintEvent. Könnte man das durch ein QGraphicsView entschärfen?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Das kommt darauf an, in welchen Zeitabständen, welche grafikfläche du änderst...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich weiß nicht genau was Du machst, aber wäre es ggf. sinnvoll das Pixmap komplett im thread zu zeichen und im PaintEvent dann nur ein drawPixmap()? Dort könnte man dann ggf. was optimieren.
Sehe auch nicht dass Du irgendwie mal wartest - d.h. du zeichnest so schnell wie möglich.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Ja. Alle 20ms.
Ich zeichne keine Pixmap.
Das mit dem Pixmap im Thread zeichnen funktioniert nicht wirklich...
"QPainter::begin: Paint device returned engine == 0, type: 2"
Antworten