<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="profiling" xml:lang="de">
    <info>
      <link type="guide" xref="index#profiling"/>
    
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Mario Blättermann</mal:name>
      <mal:email>mario.blaettermann@gmail.com</mal:email>
      <mal:years>2016</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Tim Sabsch</mal:name>
      <mal:email>tim@sabsch.com</mal:email>
      <mal:years>2018</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Christian Kirbach</mal:name>
      <mal:email>christian.kirbach@gmail.com</mal:email>
      <mal:years>2018, 2024</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Jürgen Benvenuti</mal:name>
      <mal:email>gastornis@posteo.org</mal:email>
      <mal:years>2023, 2024</mal:years>
    </mal:credit>
  </info>
    <title>Effizienzanalyse</title>
  <section id="system-profiling">
    <title>So analysieren Sie Ihr System</title>
    <p><app>Sysprof</app> 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 <app>Sysprof</app> <link href="profiling#new-process-profiling">einen neuen Prozess zu starten</link>.</p>

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

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

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

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

    <p>Lesen Sie <link href="profiling#interpreting-results">Ergebnisse interpretieren</link> für weitere Hilfe.</p>

  </section>

  <section id="new-process-profiling">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Einen neuen Prozess analysieren</title>

    <p>Oftmals müssen Sie einen neuen Prozess erzeugen, um ihn zu analysieren. Dazu wählen Sie den Knopf <em>Anwendung</em> 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.</p>

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

  </section>

  <section id="sysprof-cli">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Mit dem Befehlszeilen-Programm »sysprof-cli« analysieren</title>

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

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

  </section>

  <section id="interpreting-results">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Interpretieren der Ergebnisse</title>

    <p>Die Ergebnisse der Analyse in <app>Sysprof</app> 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.</p>

    <note>
      <p>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.</p>
    </note>

    <p>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.</p>

    <p>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.</p>

    <note>
      <p>Falls Sie <em>-- Context Switch --</em> 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 <em>Systemaufruf</em> oder ein <em>Signal</em>.</p>
    </note>

  </section>

</page>
