Piotr Drąg
piotrdrag@gmail.com 2017-2019
Aviary.pl
community-poland@mozilla.org 2017-2019

# Profilowanie

# Jak profilować system

Profilując system, program Sysprof 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 Sysprof do wywołania nowego procesu.

Aby profilować cały system, wybierz Wszystkie procesy i kliknij Nagrywaj.

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

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

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

Interpretacja wyników zawiera więcej informacji.

# Profilowanie nowego procesu

Often times, you may need to spawn a new process to profile. First, select the Application button next at the top of the recording window. Fill in your command and working directory, and optionally specify any environment variables you need. Your process will be started when recording begins.

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

# Profilowanie za pomocą narzędzia wiersza poleceń sysprof-cli

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

If you would like to spawn a new process, use sysprof-cli -- 'command' to specify a command to be launched. The command will inherit the current environment.

# Interpretacja wyników

Wyniki profilowania w programie Sysprof 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.

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.

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.

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

If you see - - Context Switch - - in your results, that means that the application transitioned into or from the Linux kernel. There can be many reasons for this such as a syscall or signal.