Я искал способ узнать, где моя программа проводит время. Я прочитал perf tutorial и попытался рассчитать время сна, как там описано. Я написал простейшую возможную программу для профиля:
#include <unistd.h>
int main() {
sleep(10);
return 0;
}
то я выполнил его с perf:
$ sudo perf record -e sched:sched_stat_sleep -e sched:sched_switch -e sched:sched_process_exit -g -o ~/perf.data.raw ./a.out
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.013 MB /home/pablo/perf.data.raw (~578 samples) ]
$ sudo perf inject -v -s -i ~/perf.data.raw -o ~/perf.data
build id event received for [kernel.kallsyms]: d62870685909222126e7070d2bafdf029f7ed3b6
failed to write feature 2
$ sudo perf report --stdio --show-total-period -i ~/perf.data
Error:
The /home/pablo/perf.data file has no samples!
Кто-нибудь знает, как избежать этих ошибок? Что они имеют в виду? failed to write feature 2
не выглядит слишком удобным...
Обновление:
$ uname -a
Linux debian 3.12-1-amd64 #1 SMP Debian 3.12.9-1 (2014-02-01) x86_64 GNU/Linux