Select Page

Profiling mit gperftools

by | Sep 5, 2013 | Linux, Technology, Development

Eines der bekanntesten Profiling-Tools unter Linux ist wohl Valgrind. Valgrind instrumentiert die zu profilende Anwendung und kann so jeden einzelnen Funktionsaufruf nachverfolgen. Allerdings läuft die Anwendung dadurch um ein Vielfaches langsamer ab, als wenn sie ohne Profiling gestartet wird.
Abhilfe schaffen hier Sample-basierte Profiler wie z.B. gperftools. Anstatt jeden Funktionsaufruf mittels Instrumentierung “aufzunehmen”, erstellt gperftools in regulären Intervallen Stack-Snapshots der einzelnen Threads und erkennt so, welche Funktionen häufig aufgerufen werden.
Unter Debian kann gperftools per Paketmanager installiert werden:

# aptitude install google-perftools

Über die Environment-Variable CPUPROFILE können wir angeben, wo gperftools seine Profile-Dateien erstellen soll. Mit LD_PROFILE linken wir den Profiler zur Laufzeit in unser Programm:

$ CPUPROFILE=/tmp/profile LD_PRELOAD=/usr/lib/libprofiler.so ./bin/icinga2 -c ../master.conf

Mit google-pprof kann anschließend die Profile-Datei angezeigt werden:

$ google-pprof ./bin/icinga2 /tmp/profile

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

More posts on the topic Linux | Technology | Development

Kibana Sicherheits-Updates: CVSS:Critical

Und täglich grüßt das Murmeltier. Nein nicht ganz. Heute ist es  aus der Elastic Stack Werkzeugkiste Kibana, für das es ein wichtiges Sicherheits-Update gibt. Es besteht auf jeden Fall Handlungsbedarf! IMHO auch wenn ihr die "Reporting" Funktion deaktiviert habt. Der...