Win32Native. Readfile, ждущий синхронизации, исполнительного узкого места?

Я представил применение. В основном каждая нить читает XML-файл от сетевого ресурса, десериализовывает объект, регистрации к местным файлам, асинхронно регистрируется к db и называет веб-сервис. Сумма Нитей - приблизительно 14 на 24 основных машинах.

Профилировщик Redgate показывает мне, многопоточное применение ждет синхронизации 70% времени. Действительно ли это - тревожный сигнал или ожидаться? Далее, если можно дать совет, как приблизиться к анализу такой регистрации профилировщика, пожалуйста, поделитесь знаниями.

Profiler Log

Call graph

0
nl ja de

1 ответы

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

Если стек указывает на чтение-запись, то это может просто означать, что диск медленный, например. Возможно, можно минимизировать это, изменив код; возможно, это - просто облупленная сеть или дисковод.

1
добавлено
Нити не сотрудничают, параллель вместо этого. Я ожидал видеть очень мало блокирования нитей. Возможно, это - медленная операция по файлу, как вы сказал. Поскольку у меня нет большого знания относительно профилировщиков, я не уверен, что это подвергает сомнению, полностью характеризуется как надлежащий ТАКИМ ОБРАЗОМ материал. В случае, если это оказывается, "хорошо это зависит" вопрос, плохо принимают соответствующие меры.
добавлено автор Th 0 mÄ s, источник