2010-03-05 7 views
8

Ich habe zwei Profiling-Tools (VTune auf Windows und dbx (innerhalb von Sunstudio) auf Solaris) verwendet, die Programm profilieren können, ohne sie neu zu erstellen, und während der Profilerstellung, das Programm läuft nur mit der gleichen Geschwindigkeit wie normal. Beide Funktionen haben mir viel Zeit gespart.Wie Profil Programm auf Linux-Plattform ohne Neuaufbau?

Jetzt möchte ich wissen, ob es einige kostenlose Tools auf Linux-Plattform gibt, die das gleiche tun können. Ich denke, ich brauche Profiling-Tools basierend auf Stichproben. VTune ist gut, aber teuer ... Ich habe von Gprof und Valgrind gehört. Aber gprof muss das Programm instrumentieren (also müssen wir das Programm neu aufbauen) und valgrind wird die Programmausführung ziemlich verlangsamen. (von Valgrind Einführung führt Cachegrind Programme etwa 20-100x langsamer als normal, und Callgrind, die ich Profilerstellung auf Cachegrind basiert)

Zum Profiling, ich muss nur herausfinden, die Ausführungszeit von Funktionsaufrufen, damit ich kann herausfinden, wo die Leistungsdegradation auftritt. Eigentlich brauche ich nicht viele Low-Level-Profiling-Informationen wie Cachegrind zur Verfügung gestellt ...

Antwort

5

oprofile ist ziemlich gut, aber es kann schwierig sein, einzurichten. Es erfordert auch nicht, dass Sie Ihr Programm neu erstellen.

+0

Yeah ... Das scheint, was ich brauche .. Aber ich denke es braucht Root-Account einzurichten, oder? – superb

+0

Ja, es muss root eingerichtet werden. Oder sudo, abhängig davon, wie Ihre sudoers-Datei eingerichtet ist. Ich würde vorschlagen, eine virtuelle Maschine zu verwenden, aber das Profiling in einer VM scheint eine schlechte Idee zu sein - die Engpässe beim Ausführen unter einer VM sind möglicherweise nicht dieselben wie beim Ausführen auf einer physischen Maschine. Ich hoffe, Sie haben Root in Ihrem System. – George

+0

Bekam es. Nachdem ich ein Dokument über oprofiler gelesen habe, verstehe ich, dass es einen Kernel braucht, um einen Hardware-Zähler zu sammeln, so dass das Programm schnell erstellt werden kann. Daher ist ein Root-Privileg erforderlich, um es zu konfigurieren. Es ist möglicherweise nicht einfach, Root-Zugriff zu erhalten, da ich eine öffentliche Maschine verwendet habe und die Profilerstellung die Leistung dieser Maschine beeinträchtigt. Also ich denke Valgrind ist vielleicht die beste Option ... – superb

0

Eine bessere Option als oprofile ist Zoom. Es ist ähnlich wie Shark unter Mac OS X, wenn Sie jemals das verwendet haben. Es ist kommerziell ($ 199), aber Sie können eine kostenlose Testversion von www.rotateright.com bekommen.

1

Ich stimme mit Paul überein, ich denke Zoom ist wahrscheinlich der beste Linux-Profiler, für den man bezahlen kann.

Jedoch, für real results, verlasse ich mich auf this simple method, die ich verwendet habe, seit vor Profiler erfunden wurden.

1

Performance Counters for Linux ist ein neues Tool, das auf Kernel 2.6.31 und höher verwendet werden kann; es ist weniger aufdringlich (sowohl für das Programm als auch für das System als Ganzes) als Valgrind oder OProfile.