Какой вариант компиляции должен быть установлен для профилирования? - PullRequest
2 голосов
/ 05 мая 2009

Мне нужно профилировать приложение, скомпилированное с помощью компилятора Intel, через VC ++. Я использую VTune для профилирования своего кода.

Насколько я понимаю, в режиме выпуска у меня не будет отладочной информации что необходимо профилировщику для профилирования моего кода в режиме отладки, результат профилирования не будет уместным.

Что мне делать? Можно ли добавить отладочную информацию в режиме релиза? Как я могу установить этот режим?

Если так, буду ли я по-прежнему извлекать выгоду из всей оптимизации (встраивание и т. Д.)?

Ответы [ 3 ]

4 голосов
/ 05 мая 2009

Вы обязательно должны профилировать с включенной оптимизацией (опция компилятора / O3). / Zi - это ключ компилятора Intel (в Windows) для включения отладочной информации.

Из-за оптимизаций некоторые функции могут отсутствовать в отладочной информации из-за встраивания, но VTune справится с этим.

3 голосов
/ 05 мая 2009

Вы можете создавать файлы базы данных программы (PDB) даже в целевом выпуске. Перейдите в свойства проекта, Linker / Debugging и отметьте опцию «Создать файл базы данных программы». Обычно это что-то вроде «$ (TargetDir) $ (TargetName) .pdb». Теперь зависит, знает ли VTune, как интерпретировать файлы PDB ...

1 голос
/ 05 мая 2009

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

...