Seite 1 von 2

[gelöst] Colliding Mice Example erzeugt zuviel CPU Last

Verfasst: 18. Februar 2010 23:58
von kater
Bei dem Colliding Mice Beispiel bekomme ich eine CPU Last von 140%. 70% für das Programm selbst und nochmal 70% für den X-Server. Das ist doch viel zu viel für 10 Mäuse die mit 30fps umher laufen.

Was frisst denn so soviel? QGraphicsScene oder so. Man kann ja leider nicht so richtig verfolgen was da im Hintergrund passiert.

Verfasst: 19. Februar 2010 08:50
von drizzt
also bei mir sind ca 2% auslastung ?!

Verfasst: 19. Februar 2010 13:54
von kater
Interesannt. Auf dem selben Rechner unter Windows sind es noch 30%. Na da ist mal ein Schlag ins Gesicht.

Verfasst: 19. Februar 2010 15:30
von Christian81
Ich schätze mal das liegt am opensource - Grafiktreiber.

Verfasst: 19. Februar 2010 16:02
von kater
Ehr nicht. Mit Closed Source Treiber ergibt es das selbe Ergebnis.

Verfasst: 19. Februar 2010 16:03
von Christian81
Welche Grafikkarte?
Liegt aber sicher an sowas in der Art. Qt selbst kompiliert?

Verfasst: 19. Februar 2010 16:28
von kater
Das eine ist eine ATI Radeon X1300 das andere Intel GMA 950.
Qt habe ich nicht selbst compiliert.
Habe jetzte kein 2D Programm zum vergleichen. Aber könnte mal eines suchen bei Gelegenheit.

Verfasst: 19. Februar 2010 16:33
von Christian81
Sind beides nicht gerade gute GraKas - ist wohl demnach eine sehr langsame OpenGL-Implementierung... kann man leider nicht viel machen.

Verfasst: 19. Februar 2010 16:51
von kater
Denke nicht, dass das Beispiel OpenGL verwendet. QPainter zeichnet hat direkt auf den Desktop oder so. Das ist weit weg von OpenGL

Verfasst: 19. Februar 2010 16:51
von franzf
Christian81 hat geschrieben:ist wohl demnach eine sehr langsame OpenGL-Implementierung... kann man leider nicht viel machen.
:D Nur gut dass colliding-mice ohne opengl auskommt.
Ich hab hier auch ~70% CPU (50/50 X/Colliding Mice). Stell ich auf opengl um bin ich bei gerade mal 5% CPU.
Nvidia 220 GT, nvidia-drivers.

Verfasst: 19. Februar 2010 16:52
von kater
@franzf was heisst, du stellst auf opengl um?

Verfasst: 19. Februar 2010 16:55
von franzf

Code: Alles auswählen

//! [4]
QGraphicsView view(&scene);
view.setViewport(new QGLWidget); // das hier
Im .pro noch "QT += opengl" hinzufügen.
Evtl. mgst du auch statt "Antialiasing" ein "HighQualityAntialiasing" setzen.

Verfasst: 19. Februar 2010 17:04
von kater
Ah ist ja toll. Nu gehts :D

Verfasst: 19. Februar 2010 17:17
von Christian81
@franzf: Ich rede natürlich von Qt4.6... -> "The QPaintEngine::OpenGL2 engine is now used as the default engine.", siehe http://qt.nokia.com/developer/changes/changes-4.6.0 und http://labs.trolltech.com/blogs/category/opengl/

Verfasst: 19. Februar 2010 17:25
von kater
Hmm benutze Qt 4.6.0 und musste erst manuell wie oben beschrieben auf OpenGL umschalten damit auch dieses benutzt wird.