<?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="cs">

  <section id="system-profiling">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Jak profilovat systém</title>
    <p>Když <app>Sysprof</app> profiluje váš systém, zaznamenává informace ze zásobníku pro všechny spuštěné aplikace, včetně linuxového jádra. To může občas mást, hlavně pokud se chcete podívat jen na jeden proces. Jestliže vaše aplikace s hostitelským systémem moc nekomunikuje, můžete získat lepší výsledky pomocí <link href="profiling#new-process-profiling">profilování existujícího procesu</link>.</p>

    <p>Aby se profiloval celý systém, nastavte cílové tlačítko na <em>Všechny procesy</em> a klikněte na <em>Záznam</em>.</p>

    <p>V tuto chvíli můžete být požádáni o <em>ověření</em> přístupu k profilování systému. Důvodem je, že implementace perf v linuxovém jádru vyžaduje pro profilování celého systému oprávnění superuživatele.</p>

    <p>Během profilovacího sezení vidíte, kolik sekund je již profilování aktivní. Opětovným kliknutím na <em>Záznam</em> profilovací sezení zastavíte. Po té je zobrazen graf volání.</p>

    <note>
      <p>Jestliže najdete aplikaci <app>sysprof</app> zobrazenou v profilovacím grafu volání, můžete pouvažovat o záznamu profilovacího sezení pomocí <cmd>sysprof-cli</cmd>. Jedná se o program příkazové řádky, který zaznamená profilovací sezení na disk pro pozdější zobrazení.</p>
    </note>

    <p>Hlubší vysvětlené viz <link href="profiling#interpreting-results">interpretace výsledků</link>.</p>

  </section>

  <section id="existing-process-profiling">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Profilování existujícího procesu</title>
    <p>S pomocí aplikace <app>Sysprof</app> můžete profilovat jeden nebo i více stávajících procesů ve svém systému. Nejprve vyberte <em>cíl profilování</em> vedle tlačítka <em>Záznam</em>. Ve vyskakovacím dialogu, který se objeví, vyberte <em>Stávající proces</em>. Následně vyberte všechny procesy, které chcete profilovat. Tyto procesu budou mít vedle svého názvu zaškrtávátko.</p>

    <p>Po vybrání cílového procesu klikněte na tlačítko <em>Záznam</em> a profilování začne.</p>

    <p>Když jste hotovi, klikněte znovu na tlačítko <em>Záznam</em> a profilování se zastaví.</p>

    <p>Hlubší vysvětlené viz <link href="profiling#interpreting-results">interpretace výsledků</link>.</p>

  </section>

  <section id="new-process-profiling">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Profilování nového procesu</title>

    <p>Často můžete potřebovat spustit nový proces, který budete profilovat. Nejprve vyberte <em>cíl profilování</em> vedle tlačítka <em>Záznam</em>. Následně zvolte <em>Nový proces</em> a vyplňte informace nutné k jeho spuštění.</p>

    <note>
      <p>Jestliže spouštíte proces, který potřebuje přístup k aktuálnímu displeji, jako třeba aplikace GTK+, ujistěte se, že má nastaveno <em>Zdědit aktuální prostředí</em>.</p>
    </note>

  </section>

  <section id="sysprof-cli">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Profilování pomocí nástroje příkazové řádky sysprof-cli</title>

    <p>Abyste snížili režiji, můžete zvážit použití nástroje příkazové řádky <cmd>sysprof-cli</cmd>. Když jej spustíte bez argumentů, bude zaznamenávat celý systém a výstup ukládat do souboru <file>capture.syscap</file>. Ten pak můžete otevřít v aplikaci <app>Sysprof</app>, která jej zobrazí v podobě grafu volání.</p>

    <p>Můžete se také připojit k již existujícímu procesu pomocí <cmd>sysprof-cli -p pid</cmd>.</p>

    <p>Jestliže si přejete spustit nový proces, použijte k určení spouštěného příkazu <cmd>sysprof-cli -c 'příkaz'</cmd>. Příkaz zdědí aktuální prostředí.</p>

  </section>

  <section id="interpreting-results">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Interpretace výsledků</title>

    <p>Výsledky profilování jsou v <app>Sysprof</app> rozdělené do tří částí. Vlevo nahoře je seznam všech profilovaných funkcí. Jsou seřazené podle toho, jak často byly volány během vzorkování.</p>

    <note>
      <p>Je důležité si uvědomit, že není podchycené množství času stráveného v jednotlivých funkcích. Jeho přesné zaznamenání by vyžadovalo trasovací profiler. Procenta jsou vypočítána podle toho, jak často se funkce objeví v aktuálním zásobníku volání při záznamu jednotlivých vzorků.</p>
    </note>

    <p>Po vybrání funkce v seznamu funkcí se vlevo dole zobrazí všichni volající této funkce. I ti jsou seřazení podle procentuálního zastoupení vzorků s touto funkcí v zásobníku volání.</p>

    <p>Vpravo se nachází všichni následovníci vybrané funkce. Funkci můžete vybrat buď ze seznamu funkcí nebo seznamu volajících.</p>

    <p>Do funkce můžete skočit aktivováním řádku ve stromu následovníků pomocí dvojitého kliknutí nebo zmáčknutím klávesy <key>Enter</key> nebo <key>mezerník</key>.</p>

    <note>
      <p>Pokud ve svých výsledcích vidíte <em>- - kernel - -</em>, znamená to, že aplikace přešla do/z linuxového jádra. To se děje z různých důvodů, například kvůli <em>systémovému volání</em> nebo <em>signálu</em>.</p>
    </note>

  </section>

</page>
