C++-Profilerstellungstools

Sheeraz Gul 16 Februar 2024
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:

  1. Zunächst kompilieren und verknüpfen wir unser Programm mit Profiling.
  2. Dann führen wir unser Programm aus und erzeugen eine Datendatei.
  3. 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:

  1. Kompilieren und verknüpfen Sie das Programm mit Profiling.
  2. Führen Sie das Programm aus.
  3. Führen Sie gprof aus, um die Profildaten zu analysieren.

Das gprof hat eine Befehlszusammenfassung, die die folgenden Optionen enthält:

  1. Ausgabeoptionen
  2. Analyseoptionen
  3. Verschiedene Optionen
  4. Veraltete Optionen
  5. 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:

  1. Es optimiert die System- und Anwendungsleistung und vermeidet thermisches und leistungsbedingtes Throttling.
  2. 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.
  3. 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:

  1. Es hat eine sehr schöne grafische Ausgabe.
  2. Es kann Speicher-Profiling, Leak-Checking und CPU-Profiling durchführen.
  3. Es gilt als eines der schnellsten Tools für die Profilerstellung.
  4. 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:

  1. Die TAU unterstützt alle Features von C++.
  2. Die TAU bietet die Auswahl von Profiling-Gruppen, die uns helfen, die Instrumentierung zu organisieren und zu kontrollieren.
  3. Die TAU stellt ein Profilvisualisierungstool paraprof zur Verfügung, das für die grafischen Ergebnisse der Leistungsanalyseergebnisse verwendet werden kann.
  4. Mit dem TAU können wir schnell die Punktzahl für die Leistung identifizieren.
  5. Die TAU kann auch die Ereignisspuren generieren, die mit Tools wie den Visualisierungstools vampir, paravar oder Jumpshot 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:

  1. Es bietet eine Leistungsanalyse, die verwendet wird, um den Leistungsengpass der Anwendung zu identifizieren.
  2. Es bietet auch Systemanalyse und Überwachung von Systemleistungsmetriken.
  3. Es bietet auch Leistungsprofile, mit denen die thermischen und Leistungseigenschaften des Systems überwacht werden können.
  4. 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.
  5. 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:

  1. Coz – kausaler Profiler
  2. perfekt
  3. Xperf
  4. Apple-Instrumente
  5. DTrace
  6. Sehr schläfrig
  7. Optik
  8. Oracle-Leistungsanalyse
  9. ARM-Karte
  10. SmartBear AQTime
  11. OProfil
  12. GlowCode
  13. Easy Profiler
Sheeraz Gul avatar Sheeraz Gul avatar

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