Код Visual Studio работает медленно

Обновлено: 05.07.2024

Пользователи VS Code (а таких немало) просто обожают наши расширения. Есть тысячи расширений VS Code на выбор, и у многих из нас установлено несколько. Они делают все: от подсветки вашего любимого языка до форматирования кода и даже раскрашивания темы.

Вы когда-нибудь замечали, что некоторым расширениям требуется несколько секунд для инициализации при запуске VS Code? Что может вызвать эту задержку?

Что вы можете с этим поделать? На самом деле много. Оставайтесь со мной, чтобы узнать, как ускорить загрузку ваших любимых расширений!

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

Подождите, почему это?

Когда мы создаем приложения для Интернета, мы пишем десятки или сотни файлов на JavaScript, CSS и HTML. Мы не хотим отправлять 1000 файлов через Интернет в браузер, так как это может быть плохим опытом ожидания и ожидания. Когда мы пишем наш код, он также не оптимизируется для браузера настолько, насколько это возможно. Современные инструменты помогают нам решить эту проблему, сжимая файлы в один (или небольшой набор) файлов. Одним из популярных инструментов является WebPack.

Если вы воспользуетесь командой «Разработчик: Показать запущенные расширения», вы увидите список активированных расширений в вашем экземпляре VS Code. Вы также увидите справа, сколько времени понадобилось для активации каждого расширения в миллисекундах.

Показать запущенные расширения

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

Запуск расширений

Что вы можете сделать, если на ваш вкус это занимает слишком много времени? (может быть, 1000 мс?)

Ускорение работы с расширениями

Недавно команда VS Code выпустила возможность использовать WebPack для объединения файлов в расширения.

В статье действительно все описано, и она может помочь при упаковке расширения.

Я обнаружил, что мое расширение Peacock помещает в пакет 48 файлов. Я внес несколько изменений и значительно сократил это.

Сначала я добавил файл в файл .vscodeignore

Затем я создал новую ветку для своего расширения. Я выполнил шаги, описанные в документации по VS Code, чтобы обновить мой проект для использования WebPack.

Моей целью было заставить все это работать:

  • упаковка с пакетом запуска npm
  • публикация с помощью npm run publish
  • локальное тестирование и тестирование CI с помощью npm run test
  • Отладка F5 с помощью файла launch.json
  • F5 выполняет отладку тестов с помощью файла launch.json

При таком подходе я компилирую как с помощью webpack, так и с tsc для тестов и отладки.

Изменен мой основной файл в package.json

Мои сценарии npm в package.json

Мои конфигурации launch.json для отладки среды выполнения и тестов:

А вот и весь репозиторий, где вы можете увидеть все в контексте 👇

johnpapa / vscode-павлин

Ненавязчиво измените цвет рабочей области Visual Studio Code. Идеально, если у вас есть несколько экземпляров VS Code, вы используете VS Live Share или удаленные функции VS Code и хотите быстро идентифицировать своего редактора.

Ненавязчиво измените цвет рабочей области Visual Studio Code. Идеально, если у вас есть несколько экземпляров VS Code, вы используете VS Live Share или удаленные функции VS Code и хотите быстро идентифицировать своего редактора.

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

Установить

  1. Откройте боковую панель «Расширения» в Visual Studio Code и выберите пункты меню «Вид» → «Расширения».
  2. Найти павлина
  3. Нажмите "Установить".
  4. При необходимости нажмите «Обновить».

Документация

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

Быстрое использование

Давайте посмотрим на Павлина в действии!

  1. Создать/открыть рабочую область VSCode (Peacock работает только в рабочей области)
  2. Нажмите F1, чтобы открыть палитру команд.
  3. Введите «Павлин».
  4. Выберите цвет павлина. Выберите любимый цвет.
  5. Выберите один из предустановленных цветов и посмотрите, как он изменится…

Какое влияние это может оказать?

Это отличный вопрос, и мы обязательно должны его задать. Я имею в виду, в конце концов, чтобы внести какое-либо изменение в код, должно быть какое-то значение. Мне удалось получить разрешение (благодаря команде VS Code и Эриху Гамме) поделиться статистикой производительности (неофициальные тесты) двух расширений, которые вы могли использовать.

Оба этих расширения обладают значительной логикой и делают довольно впечатляющие и полезные вещи.

Учетная запись Azure

Размер и количество файлов расширения учетной записи Azure значительно уменьшились. вроде от "святой моли" до "неплохо"!

Горячая активация — это срок, который требуется для активации расширения, если это расширение уже было установлено ранее (не в первый раз). Это было сокращено вдвое для этого расширения. Совсем неплохо!

Размер загружаемого файла (VSIX): от 6,2 МБ до 840 КБ.

Упакованные файлы: с 4300 по 11

Время горячей активации: от 676 мс до 338 мс

Докер

Расширение Docker значительно улучшило горячую активацию до менее чем 2 секунд. Но ключевым аспектом является время холодной активации. Холодная активация — это время, которое может потребоваться для активации расширения, если оно было только что установлено.

Когда вы закончите, вы можете снова проверить время активации.

Но я не писал расширение

Это нормально, но если вам нравится расширение, рассмотрите возможность создания запроса на включение (PR) в его репозиторий, чтобы включить связывание веб-пакетов!

Преимущество OSS в том, что каждый имеет право голоса. Это отличный способ помочь любимым проектам и коллегам!

Спасибо Эриху Гамме за указание на это!

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

Обновите Visual Studio

Если вы в настоящее время используете Visual Studio 2015, загрузите Visual Studio 2017 или Visual Studio 2019 бесплатно, чтобы оценить ее улучшенную производительность. Решения загружаются в два-три раза быстрее, чем в Visual Studio 2015, с повышением производительности и в других областях. Visual Studio 2017 и Visual Studio 2019 полностью совместимы с Visual Studio 2015, поэтому вы ничего не потеряете, попробовав его.

Если вы уже используете Visual Studio 2017, убедитесь, что у вас установлена ​​версия 15.6 или более поздняя. Данные показывают, что в версии 15.6 решения загружаются в два-три раза быстрее. Загрузите его здесь.

Расширения и окна инструментов

Возможно, у вас установлены расширения, которые замедляют работу Visual Studio. Справку по управлению расширениями для повышения производительности см. в разделе Изменение настроек расширения для повышения производительности.

Аналогично у вас могут быть окна инструментов, которые замедляют работу Visual Studio. Справку по управлению окнами инструментов см. в разделе Изменение параметров окна инструментов для повышения производительности.

Оборудование

Если вы думаете об обновлении своего оборудования, твердотельный накопитель (SSD) больше влияет на производительность, чем дополнительная оперативная память или более быстрый процессор.

Если вы добавите SSD, для оптимальной производительности установите Windows на этот диск, а не на жесткий диск (HDD). Расположение ваших решений Visual Studio на диске не имеет большого значения.

Кроме того, не запускайте решение с USB-накопителя. Скопируйте его на жесткий или твердотельный диск.

Помогите нам стать лучше

Ваши отзывы помогают нам становиться лучше. Используйте функцию «Сообщить о проблеме», чтобы «записать» трассировку и отправить нам. Щелкните значок обратной связи рядом с QuickLaunch или выберите «Справка» > «Отправить отзыв» > «Сообщить о проблеме» в строке меню. Дополнительные сведения см. в разделе Как сообщить о проблеме с Visual Studio.

Недавно у меня был компьютер с 32-разрядной версией Windows 7 и 2 ГБ ОЗУ. Visual Studio Code работал очень хорошо на этом компьютере, но теперь я купил новый ноутбук с 64-разрядной версией Windows 10 и 4 ГБ ОЗУ, и когда я недавно установил VS Code, через несколько дней он работал нормально, но через несколько дней производительность моего ноутбука замедлилась. вниз, и когда я удалил VS Code, мой ноутбук стал нормальным. Итак, я думаю, что VS Code замедлил работу моего ноутбука. Итак, могу ли я получить решение этой проблемы?

Редактировать: и мой vs-код также замедляется через несколько дней.

Ваш ноутбук маломощный, простой и понятный. Любой новый компьютер, который вы купите в 2021 году для выполнения каких-либо реальных разработок в Windows 10, должен быть оснащен как минимум 8 ГБ ОЗУ, процессором I5 (предпочтительно I7 или выше) и твердотельным накопителем (SSD).

@Robert Даже 8 ГБ может оказаться слишком мало, если кто-то на экране звонка в Zoom делится VS Code, как я с трудом понял.

4 ответа 4

через несколько дней производительность моего ноутбука снизилась, и когда я удалил VS Code, мой ноутбук стал нормальным.

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

Поэтому я не уверен на 100%, что вы описали правильно, могут быть другие аспекты этой проблемы (установленные расширения, открытые проекты и т. д.), вот несколько вещей, которые пришли мне в голову.

Были некоторые для кода IntelliSense, но были некоторые проблемы с просмотром такого огромного количества файлов на предмет каких-либо изменений.Я думаю, что когда он достигает предела ОС (в Linux мне пришлось увеличить предел inotify), после превышения предела он прибегает к ручному опросу, что очень тяжело.

Получение типа можно настроить, добавив это в settings.json:

Мой код VS работал очень медленно, когда я открывал огромный проект с большим количеством файлов. Таким образом, ваша эффективность может зависеть от того, над какими проектами вы работаете.

Вы можете сделать несколько настроек, например отключить телеметрию, чтобы сделать ее немного менее тяжелой:

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

В следующих разделах описывается, как можно сузить круг проблем с производительностью.

Visual Studio Code потребляет много ресурсов ЦП

Высокое потребление ЦП часто вызвано проблемой в расширении. VS Code запускает несколько процессов, а расширения выполняются процессом Extension Host.

Выясните, не вызывает ли расширение высокую нагрузку на ЦП. Вы можете открыть Process Explorer, выбрав Help>Open Process Explorer, чтобы открыть новое окно с постоянно обновляемым списком процессов VS Code.

Попробуйте воспроизвести проблему с открытым окном или сделайте снимок процессов, выполнив код --status из командной строки. Информацию о том, как запускать код из командной строки в OS X, см. в документации по установке. Когда список процессов в Process Explorer или вывод кода --status показывает, что extensionHost потребляет высокий процент ЦП (см. ниже), это, вероятно, вызвано расширением.

Запускать с отключенными расширениями

Первый шаг — попытаться воспроизвести проблему со всеми отключенными расширениями. Вы можете отключить расширения либо из командной строки, используя аргумент командной строки --disable-extensions, например, code --disable-extensions, либо из файла . меню в окне расширений:

Если вы не можете воспроизвести проблему, когда все расширения отключены, можете ли вы ограничить расширение, выборочно отключив расширения? Вы можете отключить расширения в окне просмотра расширений и перезапустить/перезагрузить.

image

После того, как вы нашли расширение, сообщите о проблеме с расширением. Чтобы сообщить о проблеме с расширением, откройте редактор запущенных расширений, выполнив «F1 > Разработчик: Показать запущенные расширения», и используйте кнопку «Сообщить о проблеме» или найдите расширение на рынке и используйте ссылку «Проблемы» в разделе «Ресурсы».

Профилирование запущенных расширений

Вы можете создать профиль ЦП и поделиться им в задаче с автором расширения или с нами. Чтобы создать профиль ЦП:

  • Закройте все экземпляры VSCode и начните с кода --inspect-extensions=9993 или любого другого номера порта.
  • Выполните «F1 > Разработчик: Показать работающие расширения». Эта команда открывает редактор со всеми запущенными расширениями.
  • Чтобы начать запись профиля, щелкните элемент управления запуском в строке заголовка редактора:
  • Выполните некоторые шаги в VS Code, которые выявят замедление.
  • Остановите запись, используя тот же элемент управления.
  • Сохраните профиль хоста расширения:

image

Чтобы самостоятельно проанализировать эффективность:

Сбор информации о работающем коде VS

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

Примечание: эта команда требует, чтобы VS Code уже был запущен

Эта команда собирает информацию о запущенном вами VS Code и открытом вами рабочем пространстве. Вы можете прикрепить эту информацию к отчету о проблеме с производительностью.

image

Вывод включает информацию о среде, всех запущенных процессах VS Code и количестве некоторых типичных файлов в рабочей области.

Процесс Renderer/Window потребляет много ресурсов ЦП

image

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

Запустите VS Code, когда ваши настройки будут сброшены/пусты. Откройте свои настройки, скопируйте свои настройки, а затем очистите содержимое JSON, чтобы остался только <>.

Запустите VS Code в подробном режиме и проверьте, нет ли каких-либо подозрительных выходных данных в консоли или инструментах разработчика.Вы запускаете VS Code в подробном режиме с помощью кода --verbose . Кроме того, откройте DevTools ("Справка> Переключить инструменты разработчика") и откройте там консоль.

Профилирование процесса визуализации

Очень подробная информация фиксируется в профилях ЦП, что помогает нам лучше всего сузить круг замедления. Итак, создайте профиль ЦП ядра VS Code (процесс рендерер) и прикрепите его к задаче. Чтобы создать профиль:

  • Выполните «F1 > Переключить инструменты разработчика». В дополнительном меню инструментов разработчика
  • Выберите «Дополнительные инструменты > Профилировщик JavaScript». Там выберите Пуск.
  • Подождите от 30 до 60 секунд, затем остановите его.
  • Если проблема с производительностью возникает при запуске, запустите профилировщик, а затем перезагрузите окно, нажав "F1 > Перезагрузить окно".
  • Сохраните профиль в файл и прикрепите файл к своей проблеме.

Общий процесс потребляет много ресурсов ЦП

shared-process

Попробуйте воспроизвести проблему в других папках; папку с меньшим количеством файлов, либо открыть один файл, либо открыть пустое окно,

Запустите VS Code, когда ваши настройки будут сброшены/пусты. Откройте свои настройки, скопируйте свои настройки, а затем очистите содержимое JSON, чтобы остался только <>.

Запустите VS Code в подробном режиме и проверьте, нет ли каких-либо подозрительных выходных данных в консоли или инструментах разработчика. Вы запускаете VS Code в подробном режиме с помощью кода --verbose . Кроме того, откройте DevTools ("Справка> Переключить инструменты разработчика") и откройте там консоль.

Профилирование общего процесса

Очень подробная информация фиксируется в профилях ЦП, что помогает нам лучше всего сузить круг замедления. Итак, создайте профиль ЦП ядра VS Code (общий процесс) и прикрепите его к задаче. Чтобы создать профиль:

  • Выполните «F1 > Переключить общий процесс». В дополнительном меню инструментов разработчика
  • Выберите «Дополнительные инструменты > Профилировщик JavaScript». Там выберите Пуск.
  • Подождите от 30 до 60 секунд, затем остановите его.
  • Сохраните профиль в файл и прикрепите файл к своей проблеме.

Visual Studio Code работает медленно

Если VS Code тормозит при прокрутке, перемещении мыши или наборе текста, создайте профиль производительности. Сделайте следующее

  • Переключение инструментов разработчика. Справка > Переключение инструментов разработчика.
  • Выберите "Производительность". Там нажмите кнопку записи.
  • Прокрутка, ввод или любая другая операция приводит к замедлению работы пользовательского интерфейса.
  • Подождите от 30 до 60 секунд, затем остановите его.
  • Сохраните профиль в файл и прикрепите файл к своей проблеме.

Visual Studio Code запускается медленно

Если VS Code запускается медленно, создайте загрузочный профиль ЦП. Сделайте следующее

  • Убедитесь, что открыто только одно окно.
  • Выход из VS Code ( CMD+Q для Mac, закрытие последнего окна в Linux/Windows)
  • Запустите VS Code из командной строки, например, code --prof-startup
  • Запустится VS Code и создаст два файла профилей в вашем домашнем каталоге. Прикрепите эти файлы к своей задаче или создайте новую задачу с этими двумя файлами

Прочитайте таймеры запуска

Если VS Code запускается медленно, вы можете проверить таймеры запуска. Нажмите F1 и выберите «Производительность при запуске». Это откроет инструменты разработчика и напечатает некоторую статистику запуска в «Консоли».

image

Пожалуйста, поделитесь с нами этими цифрами, так как они часто позволяют нам понять, что происходит медленно.

Читайте также: