C gperftools - профилирование кода C
Я пытаюсь сгенерировать профилирование (строка за строкой исходного кода) для моего кода, для которого я использовал gperftools.
gcc a.c -lprofiler -Wl,--no-as-needed -lprofiler -Wl,--as-needed
CPUPROFILE=out.ptof ./a.out
Но
pprof ./a.out out.ptof --inuse_objects --lines --heapcheck --edgefraction=1e-10 --nodefraction=1e-10 --gv
Using local file ./a.out.
Using local file out.ptof.
No nodes to print
Почему pprof сообщает "Нет узлов для печати"?
1 ответ
Кажется, что может быть несколько причин.
Цитирование наиболее вероятное (если ваш код легкий):
Если вы видите сообщение типа "Нет узлов для печати" [...], это просто означает, что код был настолько быстрым, что его нельзя было профилировать - по сути, профилировщик даже не имел возможности взять образец.
А также:
В режиме по умолчанию не будет данных профилирования для "медленного" маршрута, поскольку он использует несколько циклов ЦП (вы увидите сообщение "Нет узлов для печати").
Так что вам может понадобиться искусственно замедлить вашу программу...