Что именно собирает callgrind

Это выборка или запись каждой выполненной инструкции?

Это просто захватывает выполняющуюся функцию или также имеет номер строки?

1 ответ

Взято из официальной документации статьи:

Cachegrind собирает данные плоского профиля: количество событий (чтение данных, ошибки в кэше и т. Д.) Напрямую связывается с функцией, в которой они произошли. Этот механизм отнесения затрат называется самостоятельной или исключительной атрибуцией.

Callgrind расширяет эту функциональность, распространяя затраты через границы вызовов функций. Если функция foo вызывает bar, затраты от bar добавляются к стоимости foo. Применительно к программе в целом это создает картину так называемых инклюзивных затрат, то есть когда стоимость каждой функции включает в себя затраты на все функции, которые она вызывала, прямо или косвенно.

Другие вопросы по тегам