Конфликт блокировки синхронизации профилирующего потока - PullRequest
5 голосов
/ 30 января 2010

В прошлом я использовал инструменты профилирования производительности, такие как nprof, Equatec profiler и Yourkit profiler, чтобы выявлять и устранять / уменьшать узкие места производительности в коде, в основном выполняемом в одном потоке (сериализованное выполнение). В настоящее время я пишу много многопоточного кода, который может быть замедлен конфликтом блокировок; какие инструменты и приемы можно использовать, чтобы определить, где и в какой степени происходит конфликт блокировки?

Ответы [ 3 ]

2 голосов
/ 31 января 2010

Это доступно в ближайшее время, в настоящее время поставляется в Visual Studio 2010 beta 2. Вот видео инструмента .

1 голос
/ 31 января 2010

Попробуйте ThreadChecker от Intel. Работает как на Windows, так и на Linux. Если вы работаете в Windows, попробуйте Parallel Studio . Он предоставляет простой в использовании профилировщик блокировок и ожиданий. Он показывает общий параллелизм во время выполнения, который дает подсказки о конфликтах блокировок и плохом параллелизме. Инструменты делают прямо сейчас, что вы хотите.

0 голосов
/ 11 марта 2010

Для разработки под Windows, Software Verification имеет значение (http://www.softwareverify.com/thread.html).

Для C, C ++, Delphi попробуйте Thread Validator.

Для Java есть также Java Thread Validator.

Существуют также экспериментальные версии для Python и Ruby.

...