Профилиране

Как да профилирате вашата система

Когато „Sysprof“ профилира вашата система, то записва информация за стека на всички изпълняващи програми, включително Linux ядрото. Това понякога може да е объркващо, ако искате да разгледате само един процес. Ако вашата програма не взаимодейства много със системата, може да имате по—голям успех, като използвате „Sysprof“ за създаване на нов процес.

За да профилирате цялата си система, уверете се, че целевия бутон е зададен на Всички процеси и натиснете върху Записване.

В този момент може да бъдете помолени да позволите профилане на системата. Това е необходимо, тъй като реализацията на perf в Linux ядрото изисква root за профилиране на цялата система.

По време на сесията за профилиране ще видите броя на секундите, през които профилирането е било активно. Повторното натискане на бутона Записване ще спре сесията за профилиране. След това ще бъде показана диаграмата на извикванията.

Ако откриете, че програмата „sysprof“ се появява в диаграмата на извикванията за профилиране, може да помислите да запишете сесията за профилиране с sysprof-cli. Това е програма от командния ред, която ще запази сесията за профилиране на диска, за да бъде прегледана по—късно.

Вижте интерпретиране на резултатите за повече насоки.

Профилиране на нов процес

Често може да се наложи да създадете нов процес за профилиране. Първо, изберете бутона Програма в горната част на прозореца за записване. Попълнете командата и работната папка и по желание посочете всички необходими променливи на средата. Вашият процес ще бъде стартиран, когато започне записът.

Ако създавате процес, който изисква достъп до текущия екран, като например GTK+ програма, трябва да се уверите, че е зададена опцията Наследяване от текущата среда.

Профилиране с sysprof-cli инструмента за командния ред

За минимално претоварване може да помислите да използвате sysprof-cli инструмента от командния ред. Когато се изпълнява без никакви аргументи, той ще записва цялата ви система и ще запази изхода в capture.syscap. Този файл може да се отвори с „Sysprof“, за да се види диаграмата на извикванията.

Ако искате да създадете нов процес, използвайте sysprof-cli -- 'команда', за да посочите команда, която да бъде стартирана. Командата ще наследи текущата среда.

Интерпретиране на резултатите

Резултатите от профилирането в „Sysprof“ са разделени на три части. В горния ляв ъгъл се намира списък на всички профилирани функции. Те са подредени по това колко често са били извиквани по време на записването.

Важно е да се отбележи, че времето, прекарано във всяка функция, не е отчетено. Това изисква програма за проследяващо профилиране за точно записване. Процентът се изчислява, като се определи колко често тази функция се появява в текущото проследяване на стека, когато е записан отчет.

След като изберете функция от списъка с функции, в долния ляв ъгъл ще се покажат всички записани извикващи на тази функция. Те също така са подредени по процента на отчетите, които са включили тази функция в проследяването на стека.

Вдясно са показани всички наследници на избраната функция. Може да изберете функция или от списъка с функции, или от списъка с извикващи.

Ако видите - - Превключване на контекст - - в резултатите, това означава, че програмата е преминала към или от Linux ядрото. Причините за това могат да бъдат много, например syscall или signal.