Поделиться через


Советы и рекомендации по улучшению работы Visual Studio

Рекомендации по повышению производительности Visual Studio предназначены для редких ситуаций, когда может возникать нехватка памяти. В таких случаях можно оптимизировать определенные компоненты Visual Studio, которые могут не использоваться. Следующие советы не предназначены в качестве общих рекомендаций.

Примечание.

Если при работе с продуктом у вас возникают затруднения из-за проблем с памятью, свяжитесь с нами через средство обратной связи.

Использование 64-разрядной ОС

При переходе с 32-разрядной на 64-разрядную версию Windows вы увеличиваете объем виртуальной памяти, доступной 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 уведомляет вас в желтой полосе, когда автоматическое восстановление документов приводит к замедлению загрузки решения. Вы можете отключить автоматическое повторное открытие файлов, выполнив следующие действия.

  1. Выберите пункты меню Сервис>Параметры, чтобы открыть диалоговое окно Параметры.

  2. На странице Проекты и решения>Общие отмените выбор пункта Повторно открыть документы при загрузке решения.

Если отключить автоматическое восстановление файлов, быстро перейти к нужным файлам можно с помощью одной из команд Перейти к:

  • Чтобы использовать общие функции Перейти к, выберите Изменить>Перейти к>Перейти ко всем или нажмите CTRL+T.

  • Перейдите к последней правке в решении, выбрав Изменить>Перейти к>Перейти к последнему изменению или нажав CTRL+SHIFT+BACKSPACE.

  • Используйте Перейти к последнему файлу, чтобы просмотреть список недавно просмотренных файлов в решении. Выберите Изменить>Перейти к>Перейти к последнему файлу или нажмите CTRL+1, CTRL+R.

Настройка параметров отладки

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

  • Включение режима "Только мой код"

    Простейшая оптимизация заключается в том, чтобы включить функцию Только мой код, которая загружает только символы для проекта. Включение этой функции может привести к значительной экономии памяти при отладке управляемых приложений (.NET). Для некоторых типов проектов этот параметр уже включен по умолчанию.

    Чтобы включить функцию Только мой код, выберите Сервис>Параметры>Отладка>Общие и затем Включить только мой код.

  • Указание символов для загрузки

    При отладке машинного кода для загрузки файлов символов (.pdb) требуется большой объем памяти. Вы можете настроить параметры отладочных символов для экономии памяти. Как правило, решение настраивается для загрузки только модулей из проекта.

    Чтобы указать загрузку символов, выберите Сервис>Параметры>Отладка>Символы.

    Задайте параметры для загрузки только указанныхмодулей вместо загрузки всех модулей, а затем укажите, какие модули необходимо загрузить. Во время отладки также можно щелкнуть определенные модули правой кнопкой мыши в окне Модули, чтобы явно включить модуль в загрузку символов. (Чтобы открыть окно во время отладки, выберите Отладка>Окна>Модули.)

    Дополнительные сведения см. в разделе "Указание символов и исходных файлов" в отладчике.

  • Отключение средств диагностики

    Рекомендуется отключить профилирование ЦП после использования. Эта функция может потреблять очень много ресурсов. После включения профилирования ЦП это состояние распространяется и на все последующие сеансы отладки, поэтому его следует отключать явным образом. Вы можете сохранить некоторые ресурсы, отключив средства диагностики во время отладки, если вам не нужны предоставленные функции.

    Для отключить Средства диагностики, запустите сеанс отладки, выберите Средства>Параметры>Отладка>Общие и снимите флажок Включить средства диагностики при отладке.

    Дополнительные сведения см. в разделе "Средства профилирования".

Отключение инструментов и расширений

Для повышения производительности можно отключить некоторые инструменты или расширения.

Совет

Часто проблемы производительности можно выявить, отключая расширения по одному и проверяя уровень производительности.

Управляемые службы языка (Roslyn)

Сведения о производительности .NET Compiler Platform ("Roslyn") см. в статье Особенности производительности для крупных решений.

  • Отключение CodeLens

    Visual Studio выполняет задачу Найти все ссылки для каждого метода при его отображении. CodeLens предоставляет такие функции, как встроенное отображение числа ссылок. Эта работа выполняется в отдельном процессе, например ServiceHub.RoslynCodeAnalysisService32. В крупных решениях или системах с небольшим объемом ресурсов эта функция может значительно снижать производительность. В случае возникновения проблем с памятью, например при загрузке большого решения на компьютере с 4 ГБ памяти или высокой загрузки ЦП при выполнении этого процесса, попробуйте отключить CodeLens для высвобождения ресурсов.

    Чтобы отключить CodeLens, выберите Сервис>Параметры>Текстовый редактор>Все языки>CodeLens и отмените выбор данной функции.

    Дополнительные сведения см. в разделе "Поиск изменений кода" и других журналов с помощью CodeLens.

Другие инструменты и расширения

  • Отключение расширений

    Расширения — это дополнительные программные компоненты в Visual Studio, которые предоставляют новые или расширяют имеющиеся функциональные возможности. Расширения часто могут выступать источником проблем с памятью. При возникновении подобных проблем попробуйте отключать расширения по одному за раз, чтобы оценить, как это влияет на сценарий или рабочий процесс.

    Чтобы отключить расширения, перейдите в меню Расширение>Управление расширениями и отключите нужное расширение.

  • Отключение режима карты

    В режиме карты на полосе прокрутки показывается миниатюрное изображение строк кода. Режим карты включен по умолчанию.

    Чтобы отключить режим карты, последовательно выберите Инструменты>Параметры>Текстовый редактор>Все языки>Полосы прокрутки, а затем в разделе Поведение снимите флажок Использовать режим карты для вертикальной полосы прокрутки.

  • Отключение переноса по словам

    При включенном переносе по словам отображается часть длинной строки кода, выступающая за пределы текущей ширины окна редактора кода. Перенос по словам включен по умолчанию.

    Чтобы отключить оболочку слов для проекта, над которым вы работаете, перейдите к разделу "Изменить>расширенную>оболочку 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. Дополнительные сведения о функции фиксации графа см. в этой записи блога.

Принудительная сборка мусора

Среда CLR использует систему управления памятью, подразумевающую сборку мусора. В этой системе память иногда используется объектами, которые больше не нужны. Это временное состояние; Сборщик мусора освобождает эту память на основе его производительности и эвристики использования ресурсов. Вы можете заставить среду CLR собрать всю неиспользуемую память, используя сочетание клавиш в Visual Studio. Если есть значительное количество мусора, ожидающего сборки, и вы принудительно заставить сборку мусора, вы увидите, что использование памяти процесса devenv.exe отпадает в диспетчере задач. Потребность в этом методе возникает довольно редко. Тем не менее после завершения операции, потребляющей много ресурсов (такой как полная сборка, сеанс отладки или событие открытия решения), он может помочь определить объем памяти, действительно используемый процессом. Так как среда Visual Studio является смешанной (управляемый и машинный код), собственный распределитель и сборщик мусора могут конкурировать за ограниченные ресурсы памяти. В условиях высокого использования памяти это может помочь принудительно запустить сборщик мусора.

Чтобы принудительно выполнить сборку мусора, используйте это сочетание клавиш: CTRL+ALT+SHIFT+F12, CTRL+ALT SHIFT+F12 (дважды нажмите клавишу ALT).+

Если принудительная сборка мусора надежно делает работу сценария, отправьте отчет с помощью средства обратной связи Visual Studio, так как это поведение, скорее всего, будет ошибкой.

Подробное описание сборщика мусора CLR см. в статье Основы сборки мусора.