При использовании perf report
я не вижу никаких символов для своей программы, вместо этого получаю вывод следующим образом:
$ perf record /path/to/racket ints.rkt 10000
$ perf report --stdio
# Overhead Command Shared Object Symbol
# ........ ........ ................. ......
#
70.06% ints.rkt [unknown] [.] 0x5f99b8
26.28% ints.rkt [kernel.kallsyms] [k] 0xffffffff8103d0ca
3.66% ints.rkt perf-32046.map [.] 0x7f1d9be46650
Это довольно неинформативно.
Соответствующая программа построена с помощью отладочных символов, а инструмент sysprof
показывает соответствующие символы, как и Zoom, который, как я думаю, использует perf
под капотом.
Обратите внимание, что это на x86-64, поэтому двоичный файл скомпилирован с -fomit-frame-pointer
, но этот случай выполняется и под другими инструментами.