Профилиране
Как да профилирате вашата система
Когато „Sysprof“ профилира вашата система, то записва информация за стека на всички изпълняващи програми, включително Linux ядрото. Това понякога може да е объркващо, ако искате да разгледате само един процес. Ако вашата програма не взаимодейства много със системата, може да имате по-голям успех, като използвате „Sysprof“ за създаване на нов процес.
За да профилирате цялата си система, уверете се, че целевия бутон е зададен на Всички процеси и натиснете върху Записване.
В този момент може да бъдете помолени да позволите профилане на системата. Това е необходимо, тъй като реализацията на perf в Linux ядрото изисква root за профилиране на цялата система.
По време на сесията за профилиране ще видите броя на секундите, през които профилирането е било активно. Повторното натискане на бутона Записване ще спре сесията за профилиране. След това ще бъде показана диаграмата на извикванията.
Ако откриете, че програмата „sysprof“ се появява в диаграмата на извикванията за профилиране, може да помислите да запишете сесията за профилиране с sysprof-cli. Това е програма от командния ред, която ще запази сесията за профилиране на диска, за да бъде прегледана по-късно.
Вижте интерпретиране на резултатите за повече насоки.
Профилиране на нов процес
Често може да се наложи да създадете нов процес за профилиране. Първо, изберете бутона Програма в горната част на прозореца за записване. Попълнете командата и работната папка и по желание посочете всички необходими променливи на средата. Вашият процес ще бъде стартиран, когато започне записът.
Ако създавате процес, който изисква достъп до текущия екран, като например GTK+ програма, трябва да се уверите, че е зададена опцията Наследяване от текущата среда.
Профилиране с sysprof-cli инструмента за командния ред
За минимално претоварване може да помислите да използвате sysprof-cli инструмента от командния ред. Когато се изпълнява без никакви аргументи, той ще записва цялата ви система и ще запази изхода в capture.syscap. Този файл може да се отвори с „Sysprof“, за да се види диаграмата на извикванията.
Ако искате да създадете нов процес, използвайте sysprof-cli -- 'команда', за да посочите команда, която да бъде стартирана. Командата ще наследи текущата среда.
Интерпретиране на резултатите
Резултатите от профилирането в „Sysprof“ са разделени на три части. В горния ляв ъгъл се намира списък на всички профилирани функции. Те са подредени по това колко често са били извиквани по време на записването.
Важно е да се отбележи, че времето, прекарано във всяка функция, не е отчетено. Това изисква програма за проследяващо профилиране за точно записване. Процентът се изчислява, като се определи колко често тази функция се появява в текущото проследяване на стека, когато е записан отчет.
След като изберете функция от списъка с функции, в долния ляв ъгъл ще се покажат всички записани извикващи на тази функция. Те също така са подредени по процента на отчетите, които са включили тази функция в проследяването на стека.
Вдясно са показани всички наследници на избраната функция. Може да изберете функция или от списъка с функции, или от списъка с извикващи.
Ако видите - - Превключване на контекст - - в резултатите, това означава, че програмата е преминала към или от Linux ядрото. Причините за това могат да бъдат много, например syscall или signal.