Seite 1 von 1

Profiling von Programmen

Verfasst: Mi Jul 25, 2012 7:10 pm
von fat-lobyte
Hallo!
Hier mal eine etwas härtere Nuss für mich. Die Vorgeschichte: Ich habe eine ATI Grafikkarte, und habe den proprietären Treiber installiert. Das System läuft auch etwas flüssiger, und die Hardwarebeschleunigung von VLC funktioniert.

Allerdings habe ich einen neuen Kandidaten, der die CPU Verbraucht: gnome-shell.
Der Verbrauch geht dabei selten unter 30%. Das ist zu viel.
Mit der Fallback-shell (metacity) oder mit dem Open-Source-Grafiktreiber ist der Verbrauch nicht so hoch.

Ich würde der Sache gerne auf den Grund gehen, und mir Ansehen, welche Codestücke dafür verantwortlich sind. Dann würde ich gerne in der Umgebung nach Optionen, oder einfach Fixes suchen, um die Sache zu beschleunigen. Sollte es so etwas nicht geben, würde ich gerne zumindest den Entwicklern helfen können.


Jetzt die Frage:
Welche profiling-Tools gibt es für Linux? Muss ich dafür die Software neu kompilieren? Welche Flags muss ich dann setzen?
Hat das jemand schon mal gemacht? Hat jemand Tips für mich?

mfg, fat-lobyte

Re: Profiling von Programmen

Verfasst: Mi Jul 25, 2012 7:32 pm
von nufan
fat-lobyte hat geschrieben:Jetzt die Frage:
Welche profiling-Tools gibt es für Linux? Muss ich dafür die Software neu kompilieren? Welche Flags muss ich dann setzen?
Hat das jemand schon mal gemacht? Hat jemand Tips für mich?
Ich habe bis jetzt nur gprof verwendet. Man bekommt nach dem Ausführen des Programms eine schöne Übersicht über die Funktionen. Dabei wird angegeben, wie oft jede Funktion aufgerufen wurde, wie viel Speicher sie braucht, wie viel Zeit ein Aufruf verbraucht und wie viel Zeit sie insgesamt verbraucht (absolut und relativ zur gesamten Laufzeit des Programms). Das Programm musst du dazu neu kompilieren, beim gcc/g++ reicht soweit ich weiß:

Code: Alles auswählen

g++ -o test main.cpp -g -pg
Der Ablauf sieht so aus:
* Programm kompilieren (mit den genannten Flags)
* Programm normal ausführen
* Ergebnisse mit gprof analysieren
Eine etwas ausführlichere Anleitung findest du hier:
http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html

Vor kurzem bin ich noch auf folgenden Artikel gestoßen, hab ich aber nicht selbst ausprobiert:
http://www.phoronix.com/scan.php?page=n ... px=MTE0NDE
(Phoronix kann ich dir übrigens als News-Seite im Unix-Bereich nur empfehlen)
Das interessante daran ist wahrscheinlich folgender Satz:
Phoronix hat geschrieben:Sysprof traces user-space and kernel-space calls, doesn't require the rebuilding of any software, supports saving/loading profiles, provides a straightforward user-interface, and does have command-line options.

Re: Profiling von Programmen

Verfasst: Mi Jul 25, 2012 7:52 pm
von fat-lobyte
dani93 hat geschrieben:Ich habe bis jetzt nur gprof verwendet. ...
Eine etwas ausführlichere Anleitung findest du hier:
http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html
Danke, ich werde mir das mal ansehen.
Vor kurzem bin ich noch auf folgenden Artikel gestoßen, hab ich aber nicht selbst ausprobiert:
http://www.phoronix.com/scan.php?page=n ... px=MTE0NDE
(Phoronix kann ich dir übrigens als News-Seite im Unix-Bereich nur empfehlen)
Phoronix kenne ich schon, den Artikel allerdings noch nicht.
Das interessante daran ist wahrscheinlich folgender Satz:
Phoronix hat geschrieben:Sysprof traces user-space and kernel-space calls, doesn't require the rebuilding of any software, supports saving/loading profiles, provides a straightforward user-interface, and does have command-line options.
Danke, das ist tatsächlich sehr interessant. Mal sehen was ich so finde.