Я работаю над средним решением ASP.NET MVC с Visual Studio 2010 и Resharper.Проект быстро развивался, когда я начал его разрабатывать полтора года назад, но со временем он стал медленнее - не только компиляция, но и время, необходимое ASP.NET для повторной инициализации сайта.Поскольку я практикую TDD и рефакторинг довольно часто, мне часто приходится перекомпилировать повторные тесты, поэтому я ищу способы смягчить это, если это возможно.
Проблема в деталях
У меня уходит около 20-25 секунд от начала перекомпиляции проекта до возможности просмотра результата в веб-браузере.
Выполнение одиночного модульного теста (только одного теста, а не всего пакета) с помощью инструмента запуска Resharper также очень медленное (около 15-20 секунд).По какой-то странной причине кажется, что Resharper большую часть времени инициализирует тестовый прогон и тратит только очень небольшую часть, фактически выполняя тест.
Что я уже сделал:
- Заменил мой жесткий диск на SSD (огромное влияние)
- Перемещена компиляция ASP.NETи директория Windows Temp dir к SSD-подобному (аппаратному) ОЗУ (большое влияние, но это было до SSD)
- Отключена автоматическая компиляция одного проекта, который я редко изменяю (Небольшое влияние, так как этот проект в любом случае мал),
- Устранены ненужные ссылки на .NET и сторонние библиотеки (очень небольшое влияние, если таковые имеются)
- Некоторые уловки черной магии, обсуждаемые в этом посте .(очень небольшое влияние, если таковое имеется).
И все же я все еще застрял с (медленными?) Цифрами выше и чувствую, что это наносит ущерб моей производительности.Теперь мне интересно, что делать дальше.
Моя текущая настройка системы:
- Core 2 Quad Q6600 CPU
- 4 ГБ DDR2 800 RAM
- 120 ГБ SSD
- Windows 7 x64
- Visual Studio 2010 Ultimate с Resharper 5.5
Характеристики моего решения:
- 22.000 строк кода .NET 4 C #
- 3 проекта: один ASP.NET MVC, один тестовый проект, одна крошечная библиотека общего назначения включены в две другие и которые я не компилирую, если что-то не изменилось.
- 35 ссылок на другие библиотеки (.NET Framework и с открытым исходным кодом)
- ~ 200 Views
- 850 Unit-тестов
Теперь мойвопросы:
- Может ли повышение оперативной памяти до 8 ГБ дать мне значительный прирост производительности?
- Являются ли эти цифры нормальными?Или, может быть, это может быть проблемой с моим решением?
- Что вы попробуете дальше (кроме покупки совершенно нового компьютера)?
Спасибо,
Адриан
Редактировать: Одна особенно странная вещь заключается в том, что когда я нажимаю кнопку "решение для сборки", Visual Studioтратит около 8 секунд, показывая мне символ ожидания, пока он фактически не начнет компилироваться и окно компиляции обновляется.IDE не отвечает на этот период.Это хорошая часть фактического времени компиляции.Интересно, что делает Visual Studio в этот период?