Профилирование C++ многопоточные приложения

что не так с:

option_defaults = (1, 2, "White Horse", "Pumpkin", "Cinderella")
ConfigOption.__new__.__defaults__ = option_defaults  # type: ignore
8
задан Ólafur Waage 12 March 2009 в 10:56
поделиться

6 ответов

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

  1. Инструмент проверки работоспособности во время выполнения
    • Средство проверки потока - средство проверки Intel Thread / VTune, здесь
  2. Инструменты проверки непротиворечивости памяти (использование памяти, утечки памяти) - Блок проверки допустимости Памяти, здесь
  3. Анализ производительности. (Использование ЦП) - AQTime, здесь

Править: Средство проверки потока Intel может использоваться для диагностирования гонок Данных, Мертвые блокировки, Остановленные потоки, отказались от блокировок, и т.д. имейте большое терпение в анализе результатов, поскольку легко запутаться.

Немного подсказок:

  1. Отключите опции, которые не требуются. (В случае идентификации мертвых блокировок гонка данных может быть отключена и наоборот.)
  2. Используйте уровень Инструментария на основе своей потребности. Уровни как "Весь Функциональный" и "Полный образ" используются для гонок данных, где как "Импорт API" может использоваться для обнаружения мертвой блокировки),
  3. используйте контекстно-чувствительное меню "Diagnostic Help" часто.
8
ответ дан 5 December 2019 в 07:37
поделиться

На Linux попробуйте oprofile. Это поддерживает различные счетчики производительности.

В Windows CodeAnalyst AMD (свободный, в отличие от VTune) достойный внимания. Это только поддерживает профилирование события на аппаратных средствах AMD, хотя (на Intel CPUs это - просто удобный основанный на таймере профилировщик).

Коллега недавно попробовал Intel Parallel Studio (бета) и оценил его благоприятно (это нашло некоторые интересные связанные с параллелизмом проблемы в некотором коде).

5
ответ дан 5 December 2019 в 07:37
поделиться

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

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

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

аплодисменты, Martin.

3
ответ дан 5 December 2019 в 07:37
поделиться

Я вставлю другой ответ для valgrind, особенно callgrind часть с UI. Это может обработать несколько потоков путем профилирования каждого потока для неудачных обращений в кэш и т.д. У них также есть ошибочное средство проверки мультипотока, названное helgrind, но я никогда не использовал его и не знаю, насколько хороший это.

2
ответ дан 5 December 2019 в 07:37
поделиться

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

PurifyPlus доступен и на различных Нельдах и на Windows, таким образом, он должен покрыть Ваши требования, но к сожалению в отличие от Valgrind, это не свободно.

1
ответ дан 5 December 2019 в 07:37
поделиться

Для простого профилирования gprof довольно хорош..

1
ответ дан 5 December 2019 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: