Resharper для огромных проектов, использовать или не использовать?

#visual-studio #resharper

#visual-studio #resharper

Вопрос:

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

Я все еще получаю исходный код из TFS, кажется, это занимает еще 2 часа (аааа), каждое решение должно содержать около 30 проектов, каждый проект содержит 50-100 файлов .cs. Наши компьютеры работают на Q6700 / 4 ГБ оперативной памяти и Windows 7 x64 Enterprise, VS / TFS 2010.

Я попробую это сам, но я хочу спросить, подходит ли Resharper (последняя версия) для огромного проекта. Есть ли какие-либо изменения для настройки / настройки VS / Resharper, чтобы получить приемлемую производительность в моей ситуации? Вы сталкивались с тем же самым?

Большое вам спасибо

Комментарии:

1. немного не по теме, но есть ли возможность реорганизовать код в решения меньшего размера?

2. это вне моей компетенции, более того, рефакторинг огромного решения для решений меньшего размера займет много человеко-дней, что моему боссу определенно не нравится!

3. @your_boss Ему должно понравиться, потому что это сделает ваше программное обеспечение более ценным.

Ответ №1:

Однажды мне пришлось работать над проектом со 180 проектами в решении, с VS 2008, R # 4 и всего 2 ГБ оперативной памяти. Хитрость заключалась в том, чтобы выгрузить проекты из памяти (прямо в проекте в solution-explorer, затем выгрузить). Я работал в основном с 5 проектами, и только они были обработаны R #. Если мне нужно было получить более новую версию незагруженного проекта, я использовал клиент управления версиями (например, source safe), затем я запускал msbuild.exe mysolution.sln в консоли командной строки. Это перекомпилирует все решение в фоновом процессе без полной среды разработки.

Комментарии:

1. Вау 10, если бы я мог. Просто выгрузка некоторых из моих проектов освободила десятки МБ памяти. Все остальное по-прежнему в порядке, особенно мои модульные тесты по-прежнему выполняются нормально. Я хочу сказать R # v7.1.

2. Это практически невозможно сделать каким-либо надежным способом. Если вы проводите какую-либо серьезную отладку, вам нужно все перенести. Кроме того, типы из незагруженных проектов приводят к тому, что статический анализ resharper (или VS2012?) считает, что они не существуют. Поначалу казалось многообещающим.

3. Это требует хорошего понимания всего решения. Если вы хорошо организуете свое решение, вы будете довольно хорошо знать, какие проекты связаны с тем, над которым вы работаете. Например: когда вы меняете файлы JavaScript, вы точно знаете, что вам не нужно беспокоиться о серверной части и проекте базы данных. Так что вы можете их выгрузить.

4. @DioPhung, ты прав. В моем случае большинство областей приложения были разделены на 2 или 3 проекта. Итак, я в основном выгрузил проекты, связанные с другой частью приложения, на которой я не фокусировался. Тем не менее, архитектор приложения был упрям и не признал, что лучшая архитектура принесла бы пользу.

Ответ №2:

Используйте Resharper несмотря ни на что. Это настолько повышает вашу производительность, что вы можете позволить себе незначительное снижение производительности. Это становится немного вялым с очень большими классами (более 500 строк), но кто в здравом уме создает такие классы-монстры в наши дни? 🙂

Комментарии:

1. Во-первых, я ярый сторонник R #. Тем не менее, перемещение вашей системы в файл подкачки вместо памяти не может быть классифицировано как незначительное. Учитывая, что в системе также должно быть запущено другое программное обеспечение, и что разработчик, возможно, работает над несколькими решениями (в нескольких VS Windows), это реальная проблема.

2. кто-нибудь в любой корпоративной компании, когда-либо

Ответ №3:

Последние версии были частично сосредоточены на повышении производительности, сокращении занимаемой памяти и оптимизации для более крупных решений. Хотя ваш случай довольно экстремальный, на мой взгляд, вы все равно можете извлечь выгоду из повышения производительности. Просто будьте осторожны, открывая огромные файлы кода — и ОТКЛЮЧИТЕ «Анализ всего решения». =)

Ответ №4:

Сложно дать вам точный ответ на этот вопрос. В прошлом я сталкивался с проблемами производительности (памяти) с Resharper после нескольких длительных сеансов кодирования. Перезапуск Visual Studio часто устраняет это. Возможно, мои проекты невелики, так что вы, вероятно, столкнетесь с этой проблемой быстрее меня.

Однако я думаю, что преимущество, которое я получаю в производительности, используя ReSharper, значительно компенсирует потерю производительности.

Если бы я был вашим менеджером, я бы предпочел потратить немного больше денег на дополнительное оборудование и память, чем тратить деньги на неэффективных программистов.

Комментарии:

1. По моему опыту, программисты более эффективны без resharper. На этот раз они могут быть мобильными и использовать ноутбуки для разработки. Resharper нужен надежный рабочий стол с новейшим четырехъядерным процессором i7 6-го поколения, по крайней мере, 32 ГБ оперативной памяти и очень быстрым SSD-накопителем. На рынке нет подобных ноутбуков.

Ответ №5:

Я не знаю почему, но у меня всегда были проблемы с тем, что Resharper загружает процессор и требует много памяти (и у меня есть Intel Core 2 Duo P9700 и 4 ГБ оперативной памяти и SSD-накопитель). Я даже попробовал новейший EAP 6.0, и в файле на 2000 строк (как единственном открытом) он занимал 97% процессора (ну, VS был, но без него проблем нет). Проверка в масштабе решения отключена. Это убивало мою производительность, поскольку я не мог печатать достаточно быстро, и это заставляло меня больше сосредоточиться на Resharper, чем на реальном написании. Весь проект имеет 120-160 тысяч строк, так что, возможно, это проблема, поскольку в небольших проектах Resharper работал как по маслу.

Комментарии:

1. Здесь та же проблема, я обнаружил, что resharper снижает производительность. Большую часть времени мне приходилось ждать 2-5 секунд, пока VS вернется при вводе ключа в коде. В кодовой базе меньше 1 кб кода. Это на четырехъядерном процессоре i7 / 8Gb RAM. Требования к оборудованию не позволят мне работать на ходу даже на самых дорогих конфигурациях ноутбуков. Поддержка Jetbrains — это мусор.

Ответ №6:

Пара советов по производительности R #:

  • Отключите анализ в масштабе решения и запускайте его только тогда, когда вам нужно: Resharper -> Options -> снимите флажок Analyze errors in whole solution и многое другое здесь https://confluence.jetbrains.com/pages/viewpage.action?pageId=37228482

  • В VS выгружайте проекты, которые, как вы точно знаете, вы трогать не будете, или, что еще лучше, используйте несколько решений, которые загружают только нужный вам проект. Например: All.sln,WebOnly.sln, ApiOnly.sln (проявите творческий подход).

Примечание 1: с тех пор, как вы задали этот вопрос, индустрия аппаратного обеспечения значительно продвинулась вперед. Я открываю решение с 72 проектами, 51 000 файлов на Macbook Pro с твердотельным накопителем PCI-e SSD, и это занимает всего 10-15 секунд. Время компиляции составляет около 20-30 секунд, так что, я думаю, пока проблем нет.

Примечание 2: В 2015 году Git >>> TFS.

Комментарии:

1. к черту это ))) купите resharper и отключите его в определенных проектах или отключите функции resharper, где в этом здравый смысл?

2. вы делаете это только в том случае, если ваше решение очень большое. При работе с большим решением всегда есть предостережения. Вам решать, стоит ли не использовать Resharper, но я думаю, что производительность, получаемая при использовании Resharper, перевешивает их недостатки