О выводе callgrind - PullRequest
       16

О выводе callgrind

1 голос
/ 30 сентября 2011

я использую http://valgrind.org/docs/manual/cl-manual.html для профилирования моей заявки. Но у меня есть вопрос о это о / п, показывает ли он

  1. время, потраченное внутри этой функции

OR

  1. Процессор, потребляемый внутри этого вызова функции

То, что я думаю, В настоящее время он показывает 90% использования в curl connect. Я думаю, какой процесс ввода / вывода связан.

Так что я думаю, что это показывает время, затраченное на вызов этой функции.

Ответы [ 2 ]

1 голос
/ 15 ноября 2013

В инструменте 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 мы получаем желаемый выходной файл.

==========

0 голосов
/ 30 сентября 2011

Может отображать различные значения: количество команд (примерный прокси-сервер для времени ЦП), приблизительный счетчик циклов (также примерный прокси-сервер для времени ЦП) или различного рода приблизительное число попаданий / промахов в кэше.

...