Brendan Gregg Графы пламени CPU - это способ визуализации использования ЦП в течение определенного периода времени на основе стеков вызовов.
Его проект FlameGraph github предоставляет независимый от языка способ построения этих графиков:
Для каждого языка FlameGraph требует способа ввода стека в виде таких строк:
grandparent_func;parent_func;func 42
Это означает, что в инструментальной программе наблюдалась работающая функция func
, где она была вызвана из parent_func
, в свою очередь вызванная из функции верхнего уровня grandparent_func
. В нем говорится, что стек вызовов наблюдался 42 раза.
Как я могу собрать информацию о стеке из программ Python и предоставить его FlameGraph?
Для бонусных очков: как это можно расширить, чтобы показать как стек C, так и Python, или даже до ядра на Linux (аналогично некоторым планам Java и node.js Сайт Брендана)?