Re: Hilfe beim Debuggen gesucht - gelöst

Dein Thema passt einfach in kein Forum? Dann probiers mal hier.
Antworten
eehmke
Beiträge: 4
Registriert: 14. Dezember 2011 18:20

Re: Hilfe beim Debuggen gesucht - gelöst

Beitrag von eehmke »

Hallo, ich habe eine Qt 4.7 Gui-Application, die auf meinem Debian System läuft (AMD64 Dual Core). Das Programm funktioniert recht gut, jedoch beginnt es nach einiger Zeit immer langsamer zu werden. Mit top kann ich sehen, dass es bis zu 100% der CPU-Zeit verbraucht (Ein Core), auch wenn keine Benutzereingaben erfolgen. Normal bei Programmstart sind 20%. Nun laufen diverse Timer, mit denen periodische Aufgaben abgearbeitet werden. Die zugehörigen Slots habe ich bereits überprüft. Wenn ich das Programm im gdb laufen lasse und sporadisch anhalte, sehe ich immer nur den Stack von Qt internen Klassen, nie irgendwelchen Code aus meinem Programm. Alle Module sind mit CPPFLAGS = -g -Wall compiliert. Jetzt bin ich am Ende meiner Weisheit, wie kann ich das Problem eingrenzen? :?
Zuletzt geändert von eehmke am 17. Dezember 2011 00:20, insgesamt 1-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Hilfe beim Debuggen gesucht

Beitrag von franzf »

strace den Prozess überwachen lassen (strace -p PID).
valgind --tool=callgrind <executable> kann dir sagen, welche Methoden am häufigsten aufgerunfen werden, an denen kannst du dich hochhangeln.
eehmke
Beiträge: 4
Registriert: 14. Dezember 2011 18:20

Re: Hilfe beim Debuggen gesucht

Beitrag von eehmke »

Ich habe es jetzt geschafft, einen Testlauf mit valgrind zu machen und das Ergebnis mit kcachegrind zu sehen. Viel schlauer bin ich aber nicht geworden. Viel Zeit scheint in QTextFormat, QTextEngine Methoden verbraucht zu werden. Die werden aber aus dem Qt Framework gerufen. Auch habe ich festgestellt, dass die hohe CPU-Belastung nur auf einem Laptop (Debian Testing) ohne Graphikkarte auftritt. Auf meinem PC (Gentoo) mit NVidia-Karte bleibt die CPU-Last unter 1%. Jetzt versuche ich erst mal die Grafikeinstellungen des Laptops zu prüfen.
eehmke
Beiträge: 4
Registriert: 14. Dezember 2011 18:20

Re: Hilfe beim Debuggen gesucht - gelöst

Beitrag von eehmke »

Weiteres Debuggen hat mich auf diese Spur gebracht:
https://bugreports.qt.nokia.com/browse/QTBUG-16438
Dieser Bug hat die gleichen Symptome. Auch ich habe viele Widgets, die zunächst unsichtbar im Hintergrund angelegt werden. Im Stack finde ich dann die QWidgetPrivate::sendPendingMoveAndResizeEvents. Mal sehen ob es einen Workaround gibt, der Bug ist noch offen.
eehmke
Beiträge: 4
Registriert: 14. Dezember 2011 18:20

Re: Hilfe beim Debuggen gesucht - gelöst

Beitrag von eehmke »

Ich habe nun Qt 4.8.0 installiert (direkt aus den Nokia-Sourcen gebaut). Mit der Version tritt das Problem nicht mehr auf, schon die Grundlast von 20% ist auf weniger als 1% zurückgegangen. Der im Bugreport beschrieben Patch ist in 4.8.0 nicht enthalten, das ist schon merkwürdig.
Antworten