Инструменты Xcode: профилированные горячие точки не совпадают с исходным кодом

При использовании временного профилировщика Instruments я часто получаю бессмысленные результаты. Они указывают на то, что время тратится на какую-то часть файла, которая либо находится за пределами проверяемой функции, либо не содержит исполняемого кода (комментарии, пустые строки и т.п.). Это делает результаты часто почти бесполезными.

Я пробовал несколько вещей, чтобы попытаться решить эту проблему:

  • Закройте инструменты перед повторной компиляцией и повторным профилированием
  • Чистая сборка, перекомпилировать
  • Перезапускайте инструменты каждый раз, когда я профилирую
  • Обновлено до Xcode 4.3.2

Иногда они помогают, но не всегда предотвращают проблему.

Что я могу сделать, чтобы исправить это?

пример проблемы


person leecbaker    schedule 28.05.2012    source источник


Ответы (1)


Я столкнулся с той же проблемой в коде, который я скомпилировал с помощью gcc с установленным флагом оптимизации -O3. Погуглив, я узнал, что профилировщик времени Apple не любит код gcc, скомпилированный с флагами оптимизации.

Перекомпилировав мой код без флага -O3 и повторно запустив профилировщик времени, горячие точки теперь соответствуют правильным строкам моего исходного кода. Возможно, это относится к вашей проблеме.

person user1774582    schedule 25.10.2012
comment
Хотя это правда, поиск горячих точек без оптимизации не так полезен. - person leecbaker; 26.10.2012