Я должен профилировать свое многопоточное приложение C ++ и найти его узкие места. Проблема в том, что мне нужно посмотреть профиль настенных часов. я использовал oprofile
а также perf
, Никто не может предоставить мне такую информацию.
я использовал perf record -g -e sched:sched_stat_sleep <cmd>
но perf record
падает с исключением SIGFPE. Это меня злит.
Valgrind
меня не устраивает, потому что я использую fanotify_mark
системный вызов, который не реализован в этом инструменте.
Я не уверен, что Google perftools
могу сделать профилирование настенных часов — я не вижу никакой информации в их документации.
Кто-нибудь может подсказать? Спасибо.
Попробуйте PAPI http://web.eecs.utk.edu/~terpstra/using_papi/, это профилировщик с открытым исходным кодом. Обычно я использую этот профилировщик для измерения производительности кэша (например, пропусков и обращений) в некоторых алгоритмах. Может быть, это может быть полезно и для того, что вы хотите.
Если у вас есть MAC, взгляните на профилировщик «инструменты»
Других решений пока нет …