C++-Profilerstellungstools
Dieses Tutorial demonstriert einige der besten Profiler für C++.
C++-Profilerstellungstools
Durch die Profilerstellung wissen wir, in welchem Teil unseres Programms Zeit verbringt. Es ist ein schrittweiser Prozess, bei dem:
- Zunächst kompilieren und verknüpfen wir unser Programm mit Profiling.
- Dann führen wir unser Programm aus und erzeugen eine Datendatei.
- Dann führen wir ein Profiling-Tool aus, um die Profildaten zu analysieren.
Für C++ sind viele Profiling-Tools verfügbar; Dieses Tutorial demonstriert einige der besten Profiling-Tools für C++.
GNU-Profiler
Der GNU-Profiler ist eine allgegenwärtige und kostenlose Software für die C++-Profilerstellung. Es wird mit gprof
abgekürzt und kann mit Hilfe von IDEs Ergebnisse in GUI erzeugen.
Der gprof
hat auch die gleichen drei Schritte:
- Kompilieren und verknüpfen Sie das Programm mit Profiling.
- Führen Sie das Programm aus.
- Führen Sie
gprof
aus, um die Profildaten zu analysieren.
Das gprof
hat eine Befehlszusammenfassung, die die folgenden Optionen enthält:
- Ausgabeoptionen
- Analyseoptionen
- Verschiedene Optionen
- Veraltete Optionen
- Symspezifikationen
Der gprof
wird auf Windows-, macOS- und Linux-basierten C++-Systemen unterstützt.
Wobei gprof
verschiedene Möglichkeiten bietet, die Ausgabe zu interpretieren, darunter das flache Profil, das Aufrufdiagramm und die zeilenweise Profilerstellung, was das gprof
zu einem der besten Profiling-Tools für C++ macht, aber es hat einige Back Draws, was manchmal zu Ungenauigkeiten in der Ausgabe und manchmal zu Unix-Inkompatibilitäten führt. Besuchen Sie diesen Link, um die vollständige Dokumentation anzuzeigen.
Intel VTune-Profiler
Der Intel VTune Profiler ist auch ein kostenloses Profiltool für verschiedene Sprachen. Zu den Sprachen gehören C, C++, C#, Python, OpenCL™-Code, Fortran, GoLang, Java, Assembly, .Net usw.
Der Intel Vtune Profiler wird verwendet, um die System- und Anwendungsleistung zu optimieren; Es optimiert auch die Systemkonfiguration für Speicher, IoT, Cloud, Medien usw.
Einige andere Hauptfunktionen dieses Tools sind:
- Es optimiert die System- und Anwendungsleistung und vermeidet thermisches und leistungsbedingtes Throttling.
- Der Intel Vtune Profiler kann die Systemdaten über einen längeren Zeitraum in einer grobkörnigen Form erhalten; Es kann auch das detaillierte Ergebnis erhalten, das dem Quellcode zugeordnet wird.
- Der Intel Vtune Profiler kann die Leistung der Anwendung optimieren, einschließlich der Beschleunigungsposition.
Der Intel Vtune Profiler wird auf Windows-, macOS- und Linux-basierten C++-Systemen unterstützt.
Der Intel VTune Profiler kann von diesem Link heruntergeladen werden.
Google Performancetools
Das perftools
ist ein Profiler von Google, der für C++ verwendet werden kann, das keine Code-Instrumentierung benötigt. Die gperftools
sind eine Sammlung von multithreaded hochperformanten malloc()
-Implementierungen.
Dieses Tool wird unter der BSD-Lizenz vertrieben, einschließlich des Heap- und CPU-Profilers. Dieses Tool ist auf allen UNIX-basierten Systemen verfügbar.
Die Hauptmerkmale dieses Tools sind:
- Es hat eine sehr schöne grafische Ausgabe.
- Es kann Speicher-Profiling, Leak-Checking und CPU-Profiling durchführen.
- Es gilt als eines der schnellsten Tools für die Profilerstellung.
- Es braucht keine Code-Instrumentierung.
Obwohl dieses Tool schnell ist, sind andere Tools feinkörniger; Dieses Tool wird nur auf Unix-basierten Systemen unterstützt. Die perftools
können von diesem link heruntergeladen werden.
Valgrind
Valgrind ist eine Sammlung von Tools, die die Profiling-Tools Cachegrind
und Callgrind
enthält, die für C++ verwendet werden können. Der Callgrind
ist eine Erweiterung des Cachegrind
.
Der cachegrind
wird für das Cache-Profiling verwendet. Dieses Tool führt die Simulation im CPU-Cache durch, wodurch Cache-Fehlschläge in unserem Code genau lokalisiert werden.
Der cachegrind
kann die Anzahl der Speicherreferenzen, Cache-Fehler und Anweisungen identifizieren, die für jede Zeile unseres Codes ausgeführt werden, wobei diese Operationen mit Zusammenfassungen pro Funktion, pro Modul und ganzem Programm durchgeführt werden. Der cachegrind
kann mit jeder Sprache verwendet werden, führt aber dazu, dass das Programm langsamer läuft.
Wie oben erwähnt, ist callgrind
eine Erweiterung von cachegrind
. Es kann ähnlich wie cachegrind
mit zusätzlichen Funktionen funktionieren, darunter Callgraphs.
Der callgrind
wurde mit cachegrind
in eine Visualisierung namens KCacheGrind
eingebunden, die einen besseren Überblick über die von callgrind
gesammelten Daten geben kann. Dieses Tool kann auch zur Visualisierung des Tools cachegrind
verwendet werden.
Valgrind wird auf macOS-, Linux- und WSL-Systemen unterstützt. Der Valgrind kann von hier heruntergeladen werden.
TAU-Leistungssystem
Das TAU-Performance-System ist ein portables Tracing-Toolkit und Profiling-Tool für die Performance-Analyse von Programmen, die in C, C++, Fortran, Java, Python und UPC geschrieben sind.
Die TAU, abgekürzt als Tunning Analysis and Utilities, wird verwendet, um Leistungsinformationen unter Verwendung der Instrumentierung von Funktionen, Basisblöcken, Anweisungen, Methoden und ereignisbasiertem Sampling zu sammeln.
Hier sind einige Hauptmerkmale von TAU:
- Die TAU unterstützt alle Features von C++.
- Die TAU bietet die Auswahl von Profiling-Gruppen, die uns helfen, die Instrumentierung zu organisieren und zu kontrollieren.
- Die TAU stellt ein Profilvisualisierungstool
paraprof
zur Verfügung, das für die grafischen Ergebnisse der Leistungsanalyseergebnisse verwendet werden kann. - Mit dem TAU können wir schnell die Punktzahl für die Leistung identifizieren.
- Die TAU kann auch die Ereignisspuren generieren, die mit Tools wie den Visualisierungstools
vampir
,paravar
oderJumpshot
weiter angezeigt werden können.
Das TAU Performance System kann von diesem Link heruntergeladen werden.
AMD μProf
AMD stellt eine Profiling-Software namens μProf
zur Verfügung, mit der die x86
-Anwendung von Windows-, Linux- und FreeBSD-Plattformen analysiert werden kann. Dieses Tool hilft dem Entwickler, die Grenzen der Anwendungsleistung zu verstehen, und kann zur Verbesserung der Leistung verwendet werden.
Der AMD μProf
bietet die folgenden Hauptfunktionen:
- Es bietet eine Leistungsanalyse, die verwendet wird, um den Leistungsengpass der Anwendung zu identifizieren.
- Es bietet auch Systemanalyse und Überwachung von Systemleistungsmetriken.
- Es bietet auch Leistungsprofile, mit denen die thermischen und Leistungseigenschaften des Systems überwacht werden können.
- Es bietet auch Remote-Profiling, das verwendet werden kann, um vom Host-Windows-System aus eine Verbindung zu einem Remote-Linux-System herzustellen, um die Datenerfassung vom Remote-System auszulösen und sie dann an die GUI zu melden.
- Es bietet auch eine Energieanalyse, die verwendet werden kann, um den Energie-Hotspot der Anwendungsfenster zu identifizieren.
Der AMD μProf
wird unter Linux und Windows unterstützt. Weitere Informationen zu AMD μProf
und zum Download finden Sie unter diesem Link.
Wir haben einige der besten Profiling-Tools für C++ beschrieben. Diese Tools sind nicht nur Tools, die für die C++-Profilerstellung bereitgestellt werden; es gibt auch einige andere Tools mit anderen Funktionen; hier ist die liste:
Coz – kausaler Profiler
perfekt
Xperf
Apple-Instrumente
DTrace
Sehr schläfrig
Optik
- Oracle-Leistungsanalyse
ARM-Karte
SmartBear AQTime
OProfil
GlowCode
Easy Profiler
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook