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

  <section id="system-profiling">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Jak profilować system</title>
    <p>Profilując system, program <app>Sysprof</app> nagrywa informacje o stosie dla wszystkich wykonywanych programów, w tym jądra Linux. Może to przeszkadzać, jeśli badany jest tylko jeden proces. Jeśli dany program nie korzysta za bardzo z systemu, to lepiej użyć programu <app>Sysprof</app> do <link href="profiling#new-process-profiling">wywołania nowego procesu</link>.</p>

    <p>Aby profilować cały system, wybierz <em>Wszystkie procesy</em> i kliknij <em>Nagrywaj</em>.</p>

    <p>Na tym etapie może pojawić się prośba o <em>upoważnienie</em> dostępu do profilowania systemu. Jest to wymagane, ponieważ implementacja „perf” jądra Linux wymaga uprawnień roota do profilowania całego systemu.</p>

    <p>Podczas sesji profilowania wyświetlane będą sekundy aktywności. Ponowne kliknięcie przycisku <em>Nagrywaj</em> zatrzyma sesję. Po jej ukończeniu wyświetlony zostanie wykres wywołań.</p>

    <note>
      <p>Jeśli program <app>sysprof</app> pojawi się na wykresie, to należy rozważyć nagrywanie sesji profilowania za pomocą programu <cmd>sysprof-cli</cmd>. To program wiersza poleceń, który zapisze sesję na dysku do przejrzenia później.</p>
    </note>

    <p><link href="profiling#interpreting-results">Interpretacja wyników</link> zawiera więcej informacji.</p>

  </section>

  <section id="existing-process-profiling">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Profilowanie istniejącego procesu</title>
    <p>Za pomocą programu <app>Sysprof</app> można profilować jeden lub kilka istniejących procesów w systemie. Najpierw wybierz przycisk <em>cel profilowania</em> obok przycisku <em>Nagrywaj</em>. Wybierz <em>Istniejący proces</em> w wyświetlonym menu. Następnie zaznacz procesy, które chcesz profilować. Profile wybrane do profilowania zostaną oznaczone haczykiem obok nazwy.</p>

    <p>Po wybraniu procesów docelowych kliknij przycisk <em>Nagrywaj</em>, aby rozpocząć profilowanie.</p>

    <p>Po ukończeniu kliknij przycisk <em>Nagrywaj</em> ponownie, aby zatrzymać profilowanie.</p>

    <p><link href="profiling#interpreting-results">Interpretacja wyników</link> zawiera więcej informacji.</p>

  </section>

  <section id="new-process-profiling">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Profilowanie nowego procesu</title>

    <p>Często zachodzi potrzeba wywołania nowego procesu do profilowania. Najpierw wybierz przycisk <em>cel profilowania</em> obok przycisku <em>Nagrywaj</em>. Następnie wybierz <em>Nowy proces</em> i wypełnij wymagane informacje, aby wywołać proces.</p>

    <note>
      <p>Jeśli wywoływany jest proces wymagający dostępu do bieżącego ekranu, taki jak program GTK+, to ustaw opcję <em>Dziedziczenie obecnego środowiska</em>.</p>
    </note>

  </section>

  <section id="sysprof-cli">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Profilowanie za pomocą narzędzia wiersza poleceń sysprof-cli</title>

    <p>Narzędzie wiersza poleceń <cmd>sysprof-cli</cmd> używa jak najmniej zasobów komputera. Po wykonaniu bez parametrów nagra cały system i zapisze wyjście w pliku <file>capture.syscap</file>, który można otworzyć za pomocą programu <app>Sysprof</app>, aby wyświetlić wykres wywołań.</p>

    <p>Można także dołączyć do istniejącego procesu za pomocą polecenia <cmd>sysprof-cli -p pid</cmd>.</p>

    <p>Aby wywołać nowy proces, użyj <cmd>sysprof-cli -c 'polecenie'</cmd>, aby podać polecenie do uruchomienia. Polecenie odziedziczy bieżące środowisko.</p>

  </section>

  <section id="interpreting-results">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Interpretacja wyników</title>

    <p>Wyniki profilowania w programie <app>Sysprof</app> są podzielone na trzy sekcje. Na górze po lewej znajduje się lista wszystkich profilowanych funkcji. Są one uporządkowane według częstości wywołania podczas nagrywania.</p>

    <note>
      <p>Warto zauważyć, że czas spędzony w każdej funkcji nie jest przechwytywany. Tak dokładne nagrywanie wymagałoby profilera śledzącego. Procent jest obliczany przez określanie częstości pojawienia się funkcji w bieżącym śledzeniu stosu podczas nagrywania próbki.</p>
    </note>

    <p>Po wybraniu funkcji z listy wszystkie nagrane wywołania tej funkcji zostaną wyświetlone na dole po lewej. One także są uporządkowane według procentu próbek, które zawierają tę funkcję w śledzeniu stosu.</p>

    <p>Po prawej znajdują się wszystkie elementy potomne wybranej funkcji. Można wybrać funkcję z listy funkcji lub z listy wywołań.</p>

    <p>Można przejść do funkcji aktywując rząd na drzewie elementów potomnych za pomocą podwójnego kliknięcia albo naciskając <key>Enter</key> lub <key>spację</key>.</p>

    <note>
      <p><em>- - kernel - -</em> w wynikach oznacza, że program przeszedł do lub z jądra Linux. Może to mieć wiele przyczyn, na przykład <em>wywołanie systemowe</em> lub <em>sygnał</em>.</p>
    </note>

  </section>

</page>
