Существуют ли средства отладки параллелизма для C # .NET в VS2010? - PullRequest
7 голосов
/ 15 сентября 2011

В проекте, над которым я сейчас работаю, у нас есть неизвестное количество мерцающих тестов, которые проваливаются с разной скоростью (от любого другого прогона до каждых 5000 прогонов), что привело нас к убеждению, что у нас есть серьезные гейзенгиРазрешить.Большую часть времени включение операторов трассировки в код изменяет время, достаточное для устранения этих ошибок или, по крайней мере, для того, чтобы они возникали реже, но, очевидно, это недопустимое исправление ошибки.

Интересно, есть ликакие инструменты похожи на CHESS (http://research.microsoft.com/en-us/projects/chess/download.aspx), которые работают в / с Visual Studio 2010 для стресс-тестирования приложений и выявления потенциальных условий гонки и взаимоблокировок?

Ответы [ 2 ]

2 голосов
/ 17 октября 2011

Другой инструмент только от Microsoft Research, вы можете скачать его с Codeplex - chesstool.codeplex.com . Он поддерживает библиотеки .Net 4.0, следующую версию Chess, но я не знаю, можете ли вы его использовать.

2 голосов
/ 15 сентября 2011

В Visual Studio 2010 (не уверен, какие именно выпуски) вы можете создать новый сеанс профилирования с опцией «Параллелизм».Это должно обнаружить тупики, которые вы ищете.Затем вы можете профилировать модульный тест, чтобы автоматизировать множество прогонов.

Не удалось найти много изображений результатов, но вот пример пример http://i.msdn.microsoft.com/ee336027.Shafi_Figure2(en-us,MSDN.10).png

...