Профилирование С++ на mac os x
Я пытаюсь профилировать некоторый код С++ на моем mac (os x Lion), и я не смог найти ничего полезного. Я ищу профилировщик, который расскажет мне, какие функции занимают мое время процессора (похожее на профилировщик Matlab).
Вот что я пробовал
- дргоЕ. Это то, что я использую на своей Linux-машине, но это просто дает мне пустой вывод на моем mac (видимо, известная проблема).
- Инструменты. Я не могу за всю жизнь понять, как профилировать что-либо в моем скомпилированном двоичном файле. Я также не могу найти какой-либо полезный учебник.
- (в другом поиске обнаружена акула, которая больше не доступна, и Valgrind для памяти).
Действительно оцените помощь!
Ответы
Ответ 1
Инструменты - это инструмент для использования. Полное объяснение инструментов выходит за рамки этого ответа, но здесь приводится краткое руководство:
- Открытые инструменты. 1
- Выберите шаблон "Профайлер времени".
- Выберите свое приложение в раскрывающемся меню "Цель". 2
- Нажмите кнопку красного круга ( "запись" ), чтобы запустить приложение.
- Если применимо, сделайте некоторые вещи в своем приложении, которые вам нужны для профиля.
- Нажмите кнопку записи еще раз, чтобы остановить запись.
- Используйте инструменты в Инструментах для анализа ваших результатов.
Из доступных инструментов наиболее полезными будут следующие:
- Расширение дерева вызовов с помощью стрелок раскрытия
- Щелчок по круговой стрелке по имени функции для ее фокусировки
- Двойной щелчок функции для просмотра связанного источника
- Флажок "Инвертировать имя звонка" в левой части
1 Один простой способ открыть инструменты - использовать Spotlight: просто нажмите на увеличительное стекло в правом верхнем углу панели задач (рядом с часами) и введите "Инструменты",.суб >
2 Нажмите "Выбрать цель..." и перейдите к пути к исполняемому файлу.
Ответ 2
Инструменты - это правильный ответ, но если вы не можете понять, как его использовать, то другой вариант - это профилировщик встроенного приложения Activity Monitor. В Activity Monitor вы можете получить информацию о любом запущенном процессе и есть кнопка, чтобы пробовать ее выполнение на некоторое время. Вам нужно будет запустить свою программу, переключиться на Activity Monitor, найти процесс и затем пробовать его.
Кроме того, вы можете "профилировать плохого человека" просто запустив программу в отладчике и приостановив ее вручную полдюжины раз или около того и отмечая стек вызовов в это время. Это очень просто, но он работает на удивление хорошо, как первый проход для значительной части программ.
Ответ 3
Инструменты - это инструмент для использования.
Чтобы преодолеть проблему пустых трасс, убедитесь, что вы открываете Инструменты из XCode:
Xcode > Open Developer Tool > Instruments
Если вы открываете Инструменты из значка старого инструмента, который вы привязали к док-станции до последнего обновления до XCode, он даст вам пустые трассы.