Я использую Visual Studio 2010 для написания и отладки небольшой программы. Проблема заключается в том, что всякий раз, когда я запускаю приложение через Visual Studio 2010, процесс моего приложения вызывает сбои страниц в диапазоне 100000 в секунду, что замедляет программу в 10 и более раз. Когда я запускаю сгенерированный исполняемый файл из файловой системы, после завершения запуска сбои страниц не генерируются. Это происходит с отладкой и (все возможная оптимизация) выпуском сборки. Никаких исключений не выбрасывают.
Сама программа компилируется около 200 КБ и при ее выполнении содержит около 10 МБ данных с более чем 4 ГБ доступной памяти. Работает только основной поток и поток каркаса ведения журнала. Данные загружаются один раз в начале, и после этого только результаты сохраняются во вновь выделенной памяти и записываются в журнал в конце.
Кажется, что активность диска невелика, и монитор ресурсов Windows не обнаруживает серьезных сбоев, в то время как диспетчер задач показывает постоянно увеличивающиеся числа. Я знаю, что при использовании IDE следует ожидать некоторой потери производительности, но это кажется немного чрезмерным. Любой совет?
Edit:
Примечание: я смог сократить счет до половины, сократив (де) выделив новую память.
Process Explorer говорит:
Кажется, отладчик виноват. Если я не присоединяю его, он ведет себя как ожидалось. Хотя мне все еще интересно, почему это вызвало бы такое большое количество ошибок страниц, что это значительно замедляет все сборки.