CALLGRIND_START_INSTRUMENTATION
Типичный вариант использования - пропустить ввод кода запуска приложения.Если вы вызываете его в цикле, то это дорого обходится как в памяти, так и в процессоре, так как callgrind будет каждый раз переинструментировать код.
Если вас интересует только измерение некоторых функций, вам лучше начатьИнструментарий где-то перед циклом, а затем используйте CALLGRIND_TOGGLE_COLLECT
до / после вызова функций, которые вас интересуют. Это будет использовать как меньше процессора, так и меньше памяти.
Если вы хотите сделать выше, вы должны тогдаиспользуйте опции --instr-atstart=no
и --collect-at-start=no
.Затем вы запускаете инструментарий в соответствующем месте вашей программы (например, после кода запуска / инициализации).Затем вы можете вставить вызовы к CALLGRIND_TOGGLE_COLLECT
в интересующие вас функции.
Обратите внимание, что вместо изменения вашей программы для вызова CALLGRIND_TOGGLE_COLLECT
для набора функций вы также можете использовать один или несколько разопция командной строки --toggle-collect=<function>