Советы и рекомендации по производительности Visual Studio
Рекомендации по производительности Visual Studio предназначены для ситуаций с низкой памятью, которые могут возникать в редких случаях. В таких ситуациях можно оптимизировать некоторые функции Visual Studio, которые вы не можете использовать. Следующие советы не предназначены в качестве общих рекомендаций.
Заметка
Если у вас возникли трудности с использованием продукта из-за проблем с памятью, сообщите нам через средство обратной связи .
Использование 64-разрядной ОС
При обновлении системы с 32-разрядной версии Windows до 64-разрядной версии вы расширяете объем виртуальной памяти, доступной в Visual Studio, с 2 ГБ до 4 ГБ. Обновление 64-разрядной операционной системы позволяет Visual Studio обрабатывать большие рабочие нагрузки.
Дополнительные сведения см. в разделе Ограничения памяти для выпусков Windows и Windows Server.
Совет
Visual Studio 2022 в Windows — это 64-разрядное приложение. Более ранние версии — 32-разрядная версия.
Отключение автоматического восстановления файлов
Visual Studio автоматически открывает документы, которые были оставлены открытыми в предыдущем сеансе. Это действие автоматического восстановления файлов может продлить время загрузки решения до 30% или более в зависимости от типа проекта и открытых документов. Дизайнеры, такие как Windows Forms и XAML, а также некоторые файлы JavaScript и TypeScript, могут медленно открываться.
Visual Studio уведомляет вас в желтой полосе, когда автоматическое восстановление документов приводит к замедлению загрузки решения. Вы можете отключить автоматическое повторное открытие файла, выполнив следующие действия.
Выберите Инструменты>Параметры, чтобы открыть диалоговое окно Параметры .
На странице "Проекты и решения">Общие снимите флажок открытие документов повторно при загрузке решения.
При отключении автоматического восстановления файлов быстрый способ перехода к файлам, которые нужно открыть, с помощью одной из команд Перейти к:
Для общей функциональности перехода к выберите Изменить>Перейти к>Перейти ко всем, или нажмите Ctrl +T.
Переход к последнему месту редактирования в решении с помощью Редактировать>Перейти к>Перейти к последнему месту редактированияили, нажав Ctrl+Shift+Backspace.
Используйте Перейти к недавнему файлу, чтобы увидеть список файлов, недавно посещённых в решении. Выберите Изменить>Перейти к>Перейти к недавнему файлуили нажмите клавиши Ctrl+1, Ctrl+R.
Настройка параметров отладки
Если во время сеансов отладки обычно не хватает памяти, можно оптимизировать производительность, изменив одну или несколько конфигураций.
включить только мой код
Простейшая оптимизация — включить функцию Just My Code, которая загружает только символы для проекта. Включение этой функции может привести к значительному экономии памяти для отладки управляемых приложений (.NET). Этот параметр уже включен по умолчанию в некоторых типах проектов.
Чтобы включить Только Мой Код, выберите Средства>Параметры>Отладки>Общие, а затем выберите Включить Только Мой Код.
Указать символы для загрузки
Для собственной отладки загрузка файлов символов (PDB) является дорогой в плане ресурсов памяти. Параметры символов отладчика можно настроить для экономии памяти. Как правило, решение настраивается только для загрузки модулей из проекта.
Чтобы указать загрузку символов, выберите Сервис>Параметры>Отладки>Символы.
Задайте параметры Загрузить только указанные модули вместо Загрузить все модули, а затем укажите, какие модули нужно загрузить. При отладке можно также щелкнуть правой кнопкой мыши определенные модули в окне модулей, чтобы явно включить модуль в загрузку символов. Чтобы открыть окно при отладке, выберите Отладка>Windows>Модули.
См. в разделе "Указание символов и исходных файлов в отладчике"для получения дополнительной информации.
Отключить средства диагностики
Рекомендуется отключить профилирование ЦП после использования. Эта функция может использовать большие объемы ресурсов. После включения профилирования ЦП это состояние сохраняется в последующих сеансах отладки, поэтому по завершении его следует явно отключить. Вы можете сохранить некоторые ресурсы, отключив средства диагностики во время отладки, если вам не нужны предоставленные функции.
Чтобы отключить средства диагностики , запустите сеанс отладки, выберите Средства>Параметры>Отладка>Общие, а затем снимите флажок с параметра Включить средства диагностики при отладке.
Дополнительные сведения см. в средствах профилирования.
Отключение инструментов и расширений
Некоторые средства или расширения можно отключить для повышения производительности.
Совет
Часто можно изолировать проблемы с производительностью, отключив расширения по одному за раз и перепроверив производительность.
Управляемая языковая служба (Roslyn)
Сведения о производительности платформы компилятора .NET ("Roslyn") см. в рекомендации по производительности для крупных решений.
Отключение CodeLens
Visual Studio выполняет задачу "поиск всех упоминаний" для каждого метода по мере отображения. CodeLens предоставляет такие функции, как встроенное отображение количества ссылок. Работа выполняется в отдельном процессе, например ServiceHub.RoslynCodeAnalysisService32. В крупных решениях или в системах с ограниченными ресурсами эта функция может оказать значительное влияние на производительность. Если у вас возникли проблемы с памятью, например при загрузке большого решения на компьютере с 4 ГБ или высокой загрузкой ЦП для этого процесса, можно отключить CodeLens для освобождения ресурсов.
Чтобы отключить CodeLens, выберите Средства>Параметры>Текстовый редактор>Все языки>CodeLensи снимите флажок функции.
Дополнительные сведения см. в разделе Поиск изменений кода и другой истории при помощи CodeLens.
Другие средства и расширения
отключить расширения
Расширения — это дополнительные компоненты программного обеспечения, добавленные в Visual Studio, которые предоставляют новые функциональные возможности или расширяют существующую функциональность. Расширения часто могут быть источником проблем с ресурсами памяти. Если у вас возникли проблемы с ресурсом памяти, попробуйте отключить расширения по одному за раз, чтобы узнать, как это влияет на сценарий или рабочий процесс.
Чтобы отключить расширения, перейдите в Расширения>Управление расширениямии отключите конкретное расширение.
Отключить режим карты
режим карты отображает строки кода в миниатюре на полосе прокрутки. Режим карты включен по умолчанию.
Чтобы отключить режим карты, перейдите в раздел "Средства>Параметры>Текстового редактора>Все языки>Полосы прокрутки" и в разделе "Поведение" снимите флажок с опции "Использовать режим карты для вертикальной полосы прокрутки".
Отключить оболочки слов
оболочки Word отображает часть длинной строки кода, которая выходит за пределы текущей ширины окна редактора кода. Оболочка Word включена по умолчанию.
Чтобы отключить перенос слов для проекта, над которым вы работаете, перейдите к разделу Правка>Дополнительно>Перенос слов. (Этот параметр можно переключить с помощью одной команды меню.)
Чтобы отключить перенос слов для всех проектов, перейдите в раздел Средства>Параметры>Общие>Текстовый редактор>Все языки>Общие, и в разделе Параметры снимите отметку с параметра Перенос слов.
Отключение конструктора XAML
Конструктор XAML включен по умолчанию, но использует только ресурсы, если открыть XAML-файл. Если вы работаете с XAML-файлами, но не хотите использовать функции конструктора, отключите эту функцию, чтобы освободить некоторую память.
Чтобы отключить конструктор XAML, перейдите к разделу Сервис>параметры>конструктора XAML>включитьконструктора XAML и отключите этот параметр.
Удаление рабочих нагрузок
Установщик Visual Studio можно использовать для удаления рабочих нагрузок, которые больше не используются. Это действие может упростить затраты на запуск и выполнение, пропуская пакеты и сборки, которые больше не нужны.
Добавление неотслеживаемых файлов в локальный .gitignore
Visual Studio запускает команду Git
git status
с неуправляемыми файлами, чтобы обеспечить простой интерфейс при добавлении новых файлов в репозиторий. При наличии большого количества незаслеченных файловgit status
может использовать дополнительную память. Чтобы игнорировать эти файлы и повысить производительностьgit status
, вы можете добавить эти файлы или папки в локальный файл gitignore. Чтобы получить доступ к файлу, перейдите к Git>Настройки>Настройки репозитория Git. Затем в разделефайлов Git выберите Добавить , чтобы создать файл .gitignore... или выберитеИзменить , если он у вас уже есть.Включить граф фиксации в инструментах Git
Новые возможности Visual Studio 2022 версии 17.2. Если при просмотре репозитория или истории веток Git в Visual Studio возникают задержки, мы интегрировали функцию "граф фиксаций", которая может помочь. Чтобы использовать граф фиксации, убедитесь, что вы скачать и установить Visual Studio 2022. Дополнительные сведения о графе фиксации см. в записи блога «Улучшите опыт работы с Git в Visual Studio».
Принудительное выполнение сборки мусора
Среда CLR использует систему управления памятью сборки мусора. В этой системе иногда память используется объектами, которые больше не нужны. Это временное состояние; Сборщик мусора освобождает эту память на основе его производительности и эвристики использования ресурсов. Вы можете принудительно заставить CLR собирать неиспользуемую память, используя горячую клавишу в Visual Studio. Если существует значительное количество мусора, ожидающего сбора, и вы запускаете принудительную сборку, вы должны увидеть снижение использования памяти процесса devenv.exe в диспетчере задач. Этот метод редко требуется использовать. Однако после завершения дорогостоящей операции (например, полного сеанса сборки, сеанса отладки или открытого события решения) вы можете определить, сколько памяти действительно используется процессом. Так как Visual Studio смешанный (управляемый & машинный код), иногда это возможно для собственного распределителя и сборщика мусора, чтобы конкурировать за ограниченные ресурсы памяти. При высокой загрузке памяти может помочь принудительный запуск сборщика мусора.
Чтобы принудительно выполнить сборку мусора, используйте это сочетание клавиш: CTRL+ALT+SHIFT+F12, CTRL+ALT+SHIFT+F12 (дважды нажмите клавишу ALT).
Если принудительная сборка мусора обеспечивает надежную работу вашего сценария, отправьте отчет с помощью средства обратной связи Visual Studio, так как это поведение, вероятно, является ошибкой.
Подробное описание сборщика мусора CLR см. в разделе Основы сбора мусора.