<?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="sv">
    <info>
      <link type="guide" xref="index#profiling"/>
    
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Anders Jonsson</mal:name>
      <mal:email>anders.jonsson@norsjovallen.se</mal:email>
      <mal:years>2016</mal:years>
    </mal:credit>
  </info>
    <title>Profilering</title>
  <section id="system-profiling">
    <title>Hur du kan profilera ditt system</title>
    <p>Då <app>Sysprof</app> profilerar system spelar det in stackinformation för alla program som kör, inklusive Linux-kärnan. Detta kan ibland vara förvirrande om du bara vill titta på en enstaka process. Om ditt program inte interagerar mycket med värdsystemet kan du lyckas bättre med att använda <app>Sysprof</app> för att <link href="profiling#new-process-profiling">starta en ny process</link>.</p>

    <p>För att profilera hela ditt system säkerställer du att målknappen är inställd på <em>Alla processer</em> och klickar <em>Spela in</em>.</p>

    <p>Vid denna tidpunkt kan du bli efterfrågad att <em>auktorisera</em> åtkomst för att profilera systemet. Detta krävs för att Linux-kärnans implementation av perf kräver att root utför profilering av hela systemet.</p>

    <p>Under profileringssessionen kommer du att se antalet sekunder som profilen varit aktiv. Att klicka på knappen <em>Spela in</em> igen kommer att stoppa profileringssessionen. Efter detta kommer anropsgrafen att visas.</p>

    <note>
      <p>Om du ser att programmet <app>sysprof</app> dyker upp i anropsgrafen för din profilering kan du vilja spela in profileringssessionen med <cmd>sysprof-cli</cmd>. Detta är ett kommandradsprogram som fångar in din profileringssession till disk så att den kan visas vid ett senare tillfälle.</p>
    </note>

    <p>Se <link href="profiling#interpreting-results">tolka resultat</link> för mer hjälp.</p>

  </section>

  <section id="existing-process-profiling">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Profilera en befintlig process</title>
    <p>Med<app>Sysprof</app> kan du profilera en eller flera befintliga processer på ditt system. Välj först knappen för <em>profileringsmål</em> intill knappen <em>Spela in</em>. Välj <em>Befintlig process</em> i kontextfönstret som visas. Markera sedan så många processer som du vill profilera. Processer som är markerade för profilering kommer ha en bock intill sitt namn.</p>

    <p>Klicka på knappen <em>Spela in</em> efter att ha valt dina målprocesser för att börja profilera.</p>

    <p>Då du är klar klickar du på knappen <em>Spela in</em> igen för att sluta profilera.</p>

    <p>Se <link href="profiling#interpreting-results">tolka resultat</link> för mer hjälp.</p>

  </section>

  <section id="new-process-profiling">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Profilera en ny process</title>

    <p>Ofta kan du behöva starta en ny process att profilera. Välj först knappen för <em>profileringsmål</em> intill knappen <em>Spela in</em>. Välj sedan <em>Ny process</em> och fyll i nödvändig information för att starta processen.</p>

    <note>
      <p>Om du startar en process som kräver åtkomst till din aktuella display, så som ett GTK+-program, kommer du vilja vara säker på att <em>Ärv aktuell miljö</em> är inställt.</p>
    </note>

  </section>

  <section id="sysprof-cli">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Profilering med kommandoradsverktyget sysprof-cli</title>

    <p>För minimal prestandakostnad kan du överväga att använda kommandoradsverktyget <cmd>sysprof-cli</cmd>. Då det körs utan några argument kommer det spela in hela ditt system och spara utdata till <file>capture.syscap</file>. Denna fil kan öppnas med programmet <app>Sysprof</app> för att visa anropsgrafen.</p>

    <p>Du kan också fästa till en befintlig process med <cmd>sysprof-cli -p pid</cmd>.</p>

    <p>Om du vill starta en ny process, använd <cmd>sysprof-cli -c 'kommando'</cmd> för att ange ett kommando som ska startas. Kommandot kommer ärva den aktuella miljön.</p>

  </section>

  <section id="interpreting-results">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Tolka resultat</title>

    <p>Profileringsresultaten i <app>Sysprof</app> är uppdelade i tre delar. Längst upp till vänster finns en lista över alla profilerade funktioner. De sorteras efter hur ofta de anropades under inspelningen.</p>

    <note>
      <p>Det är viktigt att notera att mängden tid som spenderats i varje funktion inte fångas. Det skulle kräva en spårningsprofilerare för att spela in det korrekt. Procentandelen räknas ut genom att avgöra hur ofta funktionen dök upp i det aktuella stackspåret då ett stickprov spelades in.</p>
    </note>

    <p>Efter att ha valt en funktion från funktionslistan kommer alla anroparna till den funktionen att visas längst ner till vänster. De är också sorterade efter procentandelen av stickproven som innehåller funktionen i stackspåret.</p>

    <p>Till höger är alla ättlingarna till en vald funktion. Du kan välja en funktion antingen från funktionslistan eller från listan över anropare.</p>

    <p>Du kan hoppa in i en funktion genom att aktivera en rad i trädet av ättlingar med ett dubbelklick eller genom att trycka <key>Retur</key> eller <key>Blanksteg</key>.</p>

    <note>
      <p>Om du ser <em>- - kernel - -</em> bland dina resultat betyder det att programmet gick in i eller ut från Linux-kärnan. Det kan finnas många orsaker till detta som ett <em>systemanrop</em> eller en <em>signal</em>.</p>
    </note>

  </section>

</page>
