# Profilování

# Jak profilovat systém

Když Sysprof 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 použitím Sysprof ke spuštění nového procesu.

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

V tuto chvíli můžete být požádáni o ověření 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.

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

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

Hlubší vysvětlené viz interpretace výsledků.

# Profilování nového 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.

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 Zdědit aktuální prostředí.

# Profilování pomocí nástroje příkazové řádky sysprof-cli

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

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.

# Interpretace výsledků

Výsledky profilování jsou v Sysprof 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 zaznamenávání.

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ů.

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í.

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

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.