Когда я начну отлаживать свое веб-приложение или от Запуска с Отладкой (F5) или от присоединения к рабочему процессу ASP.NET, это будет загружать блоки из приложения очень медленно, что я могу индивидуально считать названия их, поскольку они просматривают строку состояния путем прокрутки VS2010.
Когда я начинаю отлаживать, я вижу, что MSVSMON.exe использует 50% ЦП и блокирует в 50%, ясно заполняющих полное ядро. Также видя, что это описано как Visual Studio Удаленный Отладчик, я смущен, если это должно даже использоваться, так как я отлаживаю все локальное для своей машины.
Я выполняю свою среду, фактически соединенную RDP, если это могло бы быть связано с этим.
Хост-машина: предприятие сервера 2008 года R2 Dualcore Xeon 2.53 ГГц
Виртуальный Экземпляр: Win7 Enterprise 6 ГБ таранят полное выделение процессора
Это кажется нормальным? MSVSMON должен даже работать, если я отлаживаю локально?
Да, msvsmon.exe будет использоваться при отладке 64-битной программы. Поскольку Visual Studio полностью 32-битная, удаленный отладчик необходим для преодоления разрыва.
Нет никаких оснований полагать, что замедление вызвано тем, что это удаленный отладчик. Вполне вероятно, что приходится много работать, чтобы найти и загрузить файлы .pdb. Или случайно включена опция отладки в смешанном режиме, так что отладчик также видит все неуправляемые DLL и находит для них символы. Это, конечно, только предположения.
Поиск символов часто очень медленный в начале отладки, особенно если у вас настроена одна из опций удаленного символа и не установлено «игнорирование» для различных библиотек DLL, которые не будут иметь символов на серверах MS.
Это могут быть не только сторонние компоненты вашего кода, но и перехватчики DLL, внедренные, например, графическими драйверами, поэтому стоит следить за тем, что пытается загрузить.
Запуск Fiddler ( http://www.fiddler2.com/fiddler2/ ) при запуске отладки покажет вам, извлекаются ли символы удаленно.
Даже если VS явно не установлен (в tools-> options-debug) для удаленной выборки символов, он все равно будет следовать переменной среды _NT_SYMBOL_PATH - проверьте, установлена ли она и на что указывает.