Не слишком ли много времени потрачено на синхронизацию?

Сегодня я профилировал одно из своих приложений на C # с помощью анализатора производительности Visual Studio 2010. В частности, я был профилирование для "совпадение«потому что казалось, что мое приложение должно иметь больше возможностей, чем демонстрировало. Отчет об анализе показал, что потоки тратят ~ 70-80% своего времени в состоянии синхронизации.

Если честно, я не уверен, что это значит. Означает ли это, что приложение страдает от состояния блокировки?

Для контекста ... существует ~ 30 + долго работающих потоков, привязанных к одному домену приложений (если это имеет значение) и некоторые темы очень заняты (напр.while(true) { _waitEvent.WaitOne(0); //do stuff }).

Я понимаю, что это довольно расплывчатый вопрос ... Думаю, я хочу пояснить, что означает состояние синхронизации потоков. Сколько это слишком много и почему? ~ 75% действительно плохо? У меня слишком много тем? или я должен просто начать искать в других областях?

Ответы на вопрос(3)

Ваш ответ на вопрос