Mario Blättermann
mario.blaettermann@gmail.com 2016
Tim Sabsch
tim@sabsch.com 2018
Christian Kirbach
christian.kirbach@gmail.com 2018, 2024
Jürgen Benvenuti
gastornis@posteo.org 2023, 2024

# Effizienzanalyse

# So analysieren Sie Ihr System

Sysprof analysiert Ihr System, indem es Information des Stack (Stapelspeichers) für alle laufenden Anwendungen sammelt, einschließlich der des Linux-Kernels. Dies kann zu Verwirrungen führen, wenn nur ein einzelner Prozess Gegenstand der Untersuchung ist. Wenn die Anwendung nur wenig mit dem Wirtssystem interagiert, so kann es von Vorteil sein, mit Sysprof einen neuen Prozess zu starten.

Stellen Sie sicher, dass als Ziel Alle Prozesse eingestellt ist und klicken Sie auf Aufzeichnen, um das gesamte System zu analysieren.

An diesem Punkt kann die Anfrage erschienen, ob Sie Zugriff auf das System zur Analyse zulassen wollen. Dies ist notwendig aus dem Grund, dass der Linux-Kernel Administratorrechte erfordert, um das gesamte System zu analysieren.

Während der Analyse sehen Sie die Zeit in Sekunden, die bereits vergangen ist. Sie beenden die Analyse durch einen Klick auf den Knopf Aufzeichnen. Daraufhin wird der Aufrufgraph dargestellt.

Wenn Sie sysprof im Aufrufgraph sehen, so sollten sie erwägen, die Analyse mit sysprof-cli durchzuführen. Jenes ist die Befehlszeilenvariante, welche die Analysedaten für eine spätere Verwendung auf Datenträger abspeichert.

Lesen Sie Ergebnisse interpretieren für weitere Hilfe.

# Einen neuen Prozess analysieren

Oftmals müssen Sie einen neuen Prozess erzeugen, um ihn zu analysieren. Dazu wählen Sie den Knopf Anwendung oben im Aufnehmen-Fenster. Geben Sie dann Ihren Befehl und den Arbeitsordner ein, und optional benötigte Umgebungsvariablen. Der Prozess wird gestartet, sobald die Aufnahme startet.

Falls Sie einen Prozess erzeugen, der Zugriff auf Ihren aktuellen Bildschirm benötigt, wie etwa GTK-Anwendungen, sollten Sie sicherstellen, dass Aktuelle Umgebung vererben eingestellt ist.

# Mit dem Befehlszeilen-Programm »sysprof-cli« analysieren

Für minimale Kosten können Sie das Befehlszeilen-Programm sysprof-cli in Betracht ziehen. Wird es ohne jegliche Argumente ausgeführt, nimmt es Ihr gesamtes System auf und speichert die Ausgabe in capture.syscap. Diese Datei kann mit Sysprof geöffnet werden, um den Aufrufgraphen zu betrachten.

Falls Sie einen neuen Prozess erzeugen möchten, verwenden Sie sysprof-cli -- 'Befehl', um einen Befehl anzugeben, der gestartet werden soll. Dieser Befehl erbt die aktuelle Umgebung.

# Interpretieren der Ergebnisse

Die Ergebnisse der Analyse in Sysprof sind in drei Bereiche aufgeteilt. Oben links befindet sich eine Liste aller analysierten Funktionen. Sie sind danach sortiert, wie oft sie während der Aufnahme aufgerufen wurden.

Es ist wichtig anzumerken, dass die Zeit, die in jeder Funktion verbracht wurde, nicht aufgezeichnet wird. Eine akkurate Aufnahme davon würde einen verfolgenden Profiler erfordern. Die Prozentangabe wird berechnet, indem bestimmt wird, wie oft die Funktion im aktuellen Stacktrace auftauchte, als eine Messung erfolgte.

Nachdem eine Funktion aus der Funktionsliste ausgewählt wurde, werden alle aufgenommenen Aufrufer dieser Funktion im unteren linken Bereich angezeigt. Sie sind nach dem relativen Anteil an Messungen sortiert, die diese Funktion im Stacktrace beinhalteten.

Auf der rechten Seite befinden sich alle Nachfolger einer ausgewählten Funktion. Sie können eine Funktion entweder über die Funktionsliste oder die Aufrufer-Liste auswählen.

Falls Sie -- Context Switch -- in Ihren Ergebnissen sehen, bedeutet es, dass die Anwendung in den Linux-Kernel überging oder aus ihm hervorging. Dafür kann es viele Gründe geben, beispielsweise einen Systemaufruf oder ein Signal.