Хорошо, здесь идет. Из-за проблем с производительностью на одном из наших производственных серверов меня попросили использовать профилировщик dottrace, чтобы узнать, что происходит. Проект, который я профилирую, представляет собой приложение с множеством служб WCF, работающих в IIS. Это довольно сложный проект и состоит из нескольких сборок. В рамках проекта Ninject используется как контейнер DI.Сбивание с толку результатов профилирования dottrace
Я пробовал профилирование приложения несколько раз на сервере разработки, чтобы убедиться, что он работает как ожидалось, что, казалось, было случаем.
Я начал профилировать наш производственный сервер (используя трассировку как уровень детализации, на w3wp), и мгновенно производительность сервера снизилась, и он стал очень медленным и не реагирующим. Я знал, что у профайлера будет проблема с производительностью, но я понятия не имел, что он почти убьет сервер (на dev-сервере проблем не было).
Так что после этого страшный опыт в очень смущен. Dit dottrace действительно убивает наш производственный сервер? Зачем?
Результаты профилирования, по крайней мере, сбивают с толку, и я понятия не имею, что с ними делать, мне кажется, что проблема в ninject здесь, но действительно ли это, или это профайлер dottrace, играющий со мной ?
Любой вход очень приветствуется! Ниже результаты от dottrace
http://i.stack.imgur.com/vVvlM.png
UPDATE:
Хорошо, я расширил точки доступа, это, кажется, в основном WCF звонков. Но почему они появляются под преобразователем ninject?
Теперь я буду использовать отбор проб и надеюсь, что он будет более мягким на нашем производственном сервере.
http://i.stack.imgur.com/c2tzL.png
Профиль в режиме «Сэмплинг». Кроме того, режим «трассировки» замедляет профилированное приложение, он может обеспечить искаженные результаты для методов, называемых временами thouthands. В вашем случае методы Resolve называются 157 000 раз. Также, чтобы посмотреть, что занимает все это время, пожалуйста, разверните дерево на этом скриншоте http://i.stack.imgur.com/BWqBP.png –