В инструменте callgrind valgrind, как указано в документе, по умолчанию включены только считанные инструкции (Ir).
Сам инструмент не подходит для расчета времени, потребляемого функцией, см. здесь.
Для получения времени и загрузки процессора я предпочитаю запускать команду "время" в Unix в подробном режиме
/ usr / bin / time -v
Однако мы можем получить другие утилиты, такие как
== фрагмент из doc ===
Кэширование пропущено при чтении инструкций ("I1mr" /«ILmr»), доступ к чтению данных («Dr») и связанные с ним ошибки кэширования («D1mr» / «DLmr»), доступ к записи данных («Dw») и связанные с ним ошибки кэширования («D1mw» / «DLmw») путем включенияопция
- cache-sim = yes
Также возможно получить другие утилиты, такие как Количество выполненных условных переходов и связанных с ними предикатов ("Bc")/ "Bcm"), выполнили косвенные переходы и связанные с ними ошибки предиктора адреса перехода ("Bi" / "Bim") с помощью опции включенияиз
- branch-sim = yes
Наконец, с помощью утилиты callgrind_annotate мы получаем желаемый выходной файл.
==========