Visual studio как оптимизировать код

Обновлено: 07.07.2024

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

Сведения о полезных сочетаниях клавиш см. в этой статье. Полный список команд с сочетаниями клавиш см. в статье Сочетания клавиш по умолчанию.

Начало работы

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

Макетирование кода с использованием списка задач. Если вам не хватает требований для завершения фрагмента кода, воспользуйтесь окном "Список задач", которое позволяет отслеживать комментарии к коду, где используются маркеры, такие как TODO и HACK , или настраиваемые маркеры, а также управлять сочетаниями клавиш, с помощью которых можно перейти непосредственно к предварительно заданному месту в коде. Дополнительные сведения см. в статье Использование списка задач.

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

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

Использование специальных возможностей Visual Studio. Visual Studio имеет встроенные специальные возможности, совместимые со средствами чтения с экрана и другими специальными возможностями. Полный список доступных возможностей см. в статье Советы и рекомендации по специальным возможностям для Visual Studio.

Знакомство с жизненным циклом и обслуживанием продуктов Visual Studio. Дополнительные сведения о получении обновлений для Visual Studio, вариантах поддержки для пользователей версий Enterprise и Professional, поддержке прежних версий Visual Studio, а также компонентах, не включенных в программу обслуживания Visual Studio, см. в статье Жизненный цикл и обслуживание продуктов Visual Studio.

Установка пакетов NuGet и управление ими в Visual Studio. С помощью пользовательского интерфейса диспетчера пакетов NuGet в Visual Studio вы можете легко устанавливать, удалять и обновлять пакеты NuGet в проектах и решениях в ОС Windows. Дополнительные сведения см. в статье Установка пакетов в Visual Studio и управление ими с помощью диспетчера пакетов NuGet.

Написание кода

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

Используйте удобные команды. Visual Studio поддерживает разные команды, позволяющие быстрее выполнять стандартные задачи по редактированию кода. Например, вы можете вызвать команду быстрого дублирования строки кода. При этом вам не нужно копировать строку в буфер, перемещать курсор и выполнять вставку. Выберите Изменить > Дублировать или нажмите клавиши CTRL+E,V. Вы также можно быстро развернуть или свернуть выделенный текст с помощью пунктов меню Изменить > Дополнительно > Развернуть выделенный фрагмент или Изменить > Дополнительно > Сжать выделенный фрагмент или клавиш SHIFT+ALT+ = или SHIFT+ALT+ - .

Использование IntelliSense. При вводе кода в редакторе отображаются данные IntelliSense, например элементы списков, сведения о параметрах, краткие сведения, справка по сигнатурам и завершение слов. Эти возможности поддерживают нечеткое соответствие текста: например, результаты для списков членов включают не только элементы, которые начинаются с введенных символов, но и элементы, содержащие это сочетание символов где-либо внутри своих имен. Дополнительные сведения см. в статье Использование IntelliSense.

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

Чтобы включить режим предложений, нажмите клавиши CTRL+ALT+ПРОБЕЛ или в строке меню выберите Правка > IntelliSense > Переключить режим завершения.

Использование фрагментов кода. Вы можете использовать встроенные фрагменты кода или создавать собственные.

Чтобы вставить фрагмент, в строке меню выберите Правка > IntelliSense > Вставить фрагмент или Разместить во фрагменте либо в любом месте файла откройте контекстное меню и выберите Фрагмент > Вставить фрагмент или Разместить во фрагменте. Дополнительные сведения см. в статье Фрагменты кода.

Использование встроенных функций исправления ошибок в коде. Быстрые действия позволяют легко создавать и изменять код, а также выполнять его рефакторинг одним действием. Эти действия можно применять, используя значок отвертки , значок лампочки или сочетание клавиш ALT+ENTER или CTRL+ . когда курсор находится на подходящей строке кода. Дополнительные сведения см. в разделе Быстрые действия.

Отображение и изменение определений элементов кода. Вы можете быстро отобразить и изменить модуль, в котором определен элемент кода, например член, переменная или локальный объект.

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

Использование примеров приложений. Разработку приложений можно ускорить, скачав и установив примеры приложений из коллекции кода MSDN. Кроме того, вы можете изучить ту или иную технологию или концепцию программирования, загрузив и изучив пакет примеров для этой области.

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

Перемещение по коду и интегрированной среде разработки

Существует множество способов быстрого поиска нужных мест в коде и перехода к этим местам. Также вы можете настроить схему размещения окон Visual Studio в соответствии с личными предпочтениями.

Создание закладок для строк кода. Для быстрого перехода к определенным строкам кода в файле можно использовать закладки.

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

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

Для доступа к этой возможности выберите в строке меню Правка > Перейти к.

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

Переход к заданному расположению в файле с использованием режима карты. В режиме карты показано миниатюрное изображение строк кода на полосе прокрутки. Дополнительные сведения об этом режиме отображения см. в статье Практическое руководство. Настройка полосы прокрутки.

Анализ структуры кода с использованием карты кода. Карты кода позволяют визуализировать зависимости в коде и проанализировать их согласованность, не просматривая все строки кода. Дополнительные сведения см. в статье Сопоставление зависимостей с картами кода.

Просмотр часто используемых файлов с использованием команды "Правка/Перейти к недавнему файлу" . Используйте команды перехода в Visual Studio для направленного поиска кода и быстрого обнаружения указанных элементов. Подробные инструкции см. в статье Поиск в коде с использованием команд перехода.

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

Ускоренный поиск нужных элементов

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

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

Отображение только тех ошибок, которые необходимо устранить. При нажатии кнопки Фильтр на панели инструментов Список ошибок можно уменьшить количество ошибок, отображаемых в окне Список ошибок. Можно отображать только ошибки в файлах, открытых в редакторе, только ошибки в текущем файле или только ошибки в текущем проекте. Кроме того, можно выполнять поиск в окне Список ошибок, чтобы находить конкретные ошибки.

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

Результаты быстрого запуска для нового проекта

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

Результаты поиска для нового проекта

Нажмите клавиши CTRL+Q, чтобы перейти сразу к полю поиска.

Отладка кода

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

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

Тестирование одних и тех же страниц, приложений и сайтов в различных браузерах. В процессе отладки кода можно легко переключаться между установленными веб-браузерами, включая инспектор страниц (Visual Studio), без необходимости открытия диалогового окна Просмотр с помощью. С помощью списка Целевой объект отладки, расположенного на панели инструментов Стандартная рядом с кнопкой Начать отладку, можно быстро узнать, какой именно браузер используется для отладки и просмотра страниц.

Выбор параметров отладки веб-браузера

Установка временных точек останова. Вы можете создать временную точку останова в текущей строке кода и одновременно запустить отладчик. При достижении этой строки кода отладчик входит в режим приостановки выполнения. Дополнительные сведения см. в статье Навигация по коду с помощью отладчика.

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

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

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

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

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

Очистка окна интерпретации. Содержимое окна интерпретации можно очистить во время разработки, введя >cls или >Edit.ClearAll .

Дополнительные сведения о дополнительных командах см. в статье Псевдонимы команд Visual Studio.

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

Отладка в режиме реального времени совместно с другими разработчиками с использованием Live Share. Live Share позволяет редактировать и отлаживать код совместно с другими пользователями в реальном времени независимо от используемых вами языков программирования и создаваемых типов. Дополнительные сведения см. в статье Что такое Visual Studio Live Share?

Доступ к инструментам Visual Studio

Вы сможете быстро переходить к командной строке разработчика и другим инструментам Visual Studio, если закрепите их на начальном экране или на панели задач.

  1. В проводнике Windows перейдите к %ProgramData%\Microsoft\Windows\Start Menu\Programs\Visual Studio 2017\Visual Studio Tools.
  1. В проводнике Windows перейдите к %ProgramData%\Microsoft\Windows\Start Menu\Programs\Visual Studio 2019\Visual Studio Tools.
  1. Откройте контекстное меню командной строки разработчика, а затем выберите Закрепить на начальном экране или Закрепить на панели задач.

Управление файлами, панелями инструментов и окнами

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

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

Чтобы закрепить файл, выберите вкладку файла, а затем нажмите кнопку Закрепить/открепить.

Переместите документы и окна на другие мониторы. Если при разработке приложения используется несколько мониторов, можно более эффективно работать над отдельными частями приложения, перемещая открытые в редакторе файлы на другой монитор. Можно также перемещать окна инструментов, например окна отладчика, на другой монитор и закреплять окна документов вместе с окнами инструментов с помощью вкладок для создания блоков. Дополнительные сведения см. в статье Настройка макетов окон в Visual Studio.

Для более эффективного управления файлами можно создать новый экземпляр обозревателя решений и переместить его на другой монитор. Чтобы создать еще один экземпляр обозревателя решений, откройте контекстное меню в обозревателе решений и выберите команду Создать представление обозревателя решений.

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

Профильная оптимизация это очень интересный способ оптимизации кода приложения в среде выполнения (в команде разработчиков Visual C этот метод называют POGO или PGO, от английского Profile Guided Optimization). Впервые профильная оптимизация была применена в конце 90-х исследовательскими группами в Visual C и Microsoft. Тогда она была рассчитана для архитектуры Itanium. Затем PGO была включена в состав Visual Studio C/C++ 2005. На сегодня это основной процесс оптимизации, значительно повышающий производительность приложений Microsoft и других разработчиков.
В этом посте будет рассказано, как создавать более быстрые и высокопроизводительные нативные приложения. Для начала, познакомимся ближе с PGO, а затем рассмотрим на примере (симуляция NBody), как с помощью нескольких простых шагов можно применить этот процесс оптимизации в ваших приложениях. Для работы используйте исходный код из примера. Для сборки проекта вам понадобится DirectX SDK.

Как сделать нативное приложение более быстрым


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

При работе с функцией whichBranchIsTaken компилятор не знает, как часто параметр «a» будет меньше параметра «b», и сколько раз будет применено условие «if» (т. е. компилятор не может предсказывать ветвления). При работе с функциями девиртуализации и switchCaseExpansion компилятор знает недостаточно о значениях *p и i, что делает невозможным оптимизацию девиртуализации и расширений параметров. Эти проблемы проявятся еще ярче, если мы подставим данный фрагмент кода в разные модули (например, разные объектные файлы), поскольку функции традиционной компиляции не могут быть оптимизированы для работы в пределах исходных модулей.
Базовая модель компилятора и компоновщика не так уж и плоха, но в ней недостает двух основных возможностей для оптимизации. Во-первых, в ней не используется информация, которую можно было бы получить на основе анализа всех исходных файлов (традиционные компиляторы оптимизируют только отдельные объектные файлы). Во-вторых, в ней не проводится оптимизация на базе ожидаемой или профильной реакции приложения. Первый недостаток может быть исправлен с помощью переключателя компилятора (/GL) или переключателя компоновщика (/LTCG), выполняющего полную оптимизацию программы и необходимого для профильной оптимизации приложения. После того, как оптимизация полной программы включена, вы можете применять профильную оптимизацию. Остановимся на ней подробнее.
PGO – это процесс оптимизации компилятора в среде выполнения, применяющий данные профиля, собранные в ходе выполнения важных или требующих высокой производительности пользовательских сценариев, с целью оптимизации приложения. Профильная оптимизация обладает рядом преимуществ по сравнению с традиционной статической оптимизацией, поскольку она принимает в расчет, как будет себя вести приложение в рабочей среде. Благодаря этому оптимизатор может осуществлять оптимизацию по скорости (для частых пользовательских сценариев) или оптимизацию по размеру (для редких сценариев). В результате код становится более лаконичным, что, в конечном счете, повышает производительность приложения.


В настоящее время PGO может применяться только на классических приложениях для настольных компьютеров и поддерживается на платформах x86 и х64. PGO представляет собой процесс, состоящий из трех этапов, как это показано на рисунке выше.

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

Применение профильной оптимизации

Теперь, когда мы знаем немного больше о профильной оптимизации, рассмотрим ее применение на конкретном примере. Профильную оптимизацию приложения можно осуществлять с помощью Visual Studio или командной строки разработчика. Ниже рассмотрен пример работы в Visual Studio с приложением под условным названием «Nbody Simulation». Если вы хотите узнать больше о PGO в командной строке, обратитесь к этим статьям. Для начала работы загрузите решение в Visual Studio и выберите конфигурацию построения для работы (т.е. «Release»).


Как было упомянуто выше, PGO состоит из трех этапов: инструментирования, обучения и оптимизации. Для создания инструментированной версии приложения, нажмите правой кнопкой мыши по названию проекта («NBodyGravityCPU») и выберите раздел «Instrument» в меню «Profile Guided Optimization».


В Visual Studio будет построена инструментированная версия приложения. После этого можно переходить к фазе обучения. Запустите инструментированную версию приложения. Для этого зайдите в меню «Profile Guided Optimization» и выберите «Run Instrumented/Optimized Application». В нашем случае приложение выполняется с максимально большим телом кода (15360), т. к. будет реализован стабильный пользовательский сценарий, требующий высокой производительности. После того как два основных показателя производительности приложения — FPS (кадров в секунду) и GFlop – примут устойчивые значения, вы можете закрыть приложение. На этом фаза обучения будет завершена, а полученные данные будут сохранены в файле .pgc. По умолчанию файл .pgc будет включен в вашу конфигурацию построения, т.е. каталог «Release». Например, в результате этого обучения создается файл NBodyGravityCPU!1.pgc.


NBody Simulation представляет собой очень простое приложение, созданное исключительно для иллюстрации процесса PGO. В действительности может существовать множество вариантов сценариев обучения приложений. В частности, можно производить обучение в несколько этапов, разделенных по времени. Для записи таких сценариев обучения лучше всего использовать команду pgosweep в командной строке разработчика после того, как инструментированная версия уже создана (напр., в Visual Studio).


В ходе последней фазы PGO создается оптимизированная версия приложения. В меню «Profile Guided Optimization» выберите «Optimize». Будет создана оптимизированная версия приложения. В выходном журнале PGO-построения вы увидите обобщенную информацию о проведенной операции.
Как было сказано выше, информация из файлов .pgc, полученная в ходе фазы обучения, включается в базу данных .pgd, которая затем используется матрицей оптимизации внутреннего компилятора. В большинстве случаев (за исключением небольших быстрых приложений) критерий оптимизации скорость/размер определяется соотношением динамических инструкций для определенной функции. Функции с большим числом инструкций (т. н. «горячие») оптимизируются на скорость, а с малым количеством инструкций (т. н. «холодные») – на размер.
Это практически все, что вам необходимо для того чтобы начать профильную оптимизацию в ваших приложениях. Попробуйте применить PGO для своих приложений и оцените результаты! И обязательно загляните в блог Инструменты для разработчика, возможно вы найдете там еще какие либо интересные решения!
Автор поста — Анкит Астхана (Ankit Asthana) — руководитель программы по внутреннему компилятору Microsoft Visual С++.

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

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

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

При переходе с 32-разрядной на 64-разрядную версию Windows вы увеличиваете объем виртуальной памяти, доступной Visual Studio, с 2 до 4 ГБ. Это позволяет Visual Studio обрабатывать значительно большие рабочие нагрузки даже несмотря на то, что это 32-разрядный процесс.

Visual Studio 2022 для Windows теперь является 64-разрядным приложением. Это означает, что вы можете открывать, изменять, запускать и отлаживать даже самые большие и сложные решения, не беспокоясь о нехватке памяти. Дополнительные сведения см. в записях блога, посвященных концепции Visual Studio 2022 и Visual Studio 2022, предварительная версия 1.

Отключение автоматического восстановления файлов

Visual Studio автоматически повторно открывает документы, открытые во время предыдущего сеанса. Это может увеличить время загрузки решения до 30 % или более в зависимости от типа проекта и открываемых документов. Конструкторы, например Windows Forms и XAML, и некоторые файлы JavaScript и typescript могут открываться медленно.

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

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

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

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

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

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

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

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

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

Включение функции "Только мой код"

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

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

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

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

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

Дополнительные сведения см. в разделе Общие сведения о файлах символов.

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

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

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

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

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

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

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

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

Отключение полного анализа решения

Отключение CodeLens

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

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

Функция CodeLens доступна в выпусках Visual Studio Professional и Enterprise.

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

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

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

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

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

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

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

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

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

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

Чтобы отключить перенос по словам для проекта, над которым вы работаете в текущий момент, последовательно выберите в меню пункты Правка > Дополнительно > Перенос по словам. (Этот параметр можно переключать с помощью одних и тех же команд меню.)

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

Отключение конструктора XAML

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

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

Удаление рабочих нагрузок

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

Добавление неотслеживаемых файлов в локальный файл .gitignore

Visual Studio выполняет команду Git git status для неотслеживаемых файлов, чтобы вам было удобно добавлять новые файлы в репозиторий. При наличии большого количества неотслеживаемых файлов git status может потреблять большой объем памяти. Чтобы сделать эти файлы игнорируемыми и повысить производительность git status , можно добавить такие файлы или папки в локальный файл .gitignore. Чтобы получить доступ к файлу, выберите Git > Параметры > Параметры репозитория Git. Затем в разделе файлы Git щелкните Добавить, чтобы создать файл .gitignore, или щелкните изменить, если он у вас уже есть.

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

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

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

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

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

VsCode

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

Visual Studio Code стал популярен среди редакторов кода с момента своего появления. Я же долгое время сопротивлялась и не хотела его осваивать, причем не из-за возможной сложности, а скорее из-за того, что весь мой рабочий процесс уже был идеально отлажен в Sublime.

В то время, как процесс работы и написания кода оставался прежним вне зависимости от того, каким редактором я пользовалась — моя итоговая производительность резко снизилась в течение первой недели использования VSC.

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

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

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

1. Сниппеты

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

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

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

Применение сниппетов также может помочь вам освоить новый фреймворк или библиотеку.

С Vue я еще не работала, но судя по указанным данным, набор Vue 2 Snippets от hollowtree был установлен более 900 000 раз, зарекомендовав себя как весьма многообещающее расширение.


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

2. IntelliSense

Intellisense — это просто модное название автодополнения. Тем не менее работает оно гораздо продуманнее стандартного.

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

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

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

Для тех, кто приступает к работе с VS Code на базе знания Java или C++, эта возможность не станет новшеством. Я применяла нечто подобное, когда работала с Eclipse. Что же касается проектов в JavaScript — эта возможность, наряду с удобным перемещением между связанными элементами кода, существенно ускоряет процесс.

3. Встроенный терминал

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

Открыть терминал можно, нажав ctrl + ` .

Изначально он запускается с указанием корневой директории вашего рабочего пространства.

Для открытия еще одного терминала нажмите shift + ctrl + ` .


4. Просмотр ссылок и обновление имен

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

Для этого вам достаточно кликнуть правой кнопкой на выбранном методе, функции или ссылке, которую вы хотите отследить, и выбрать “просмотреть ссылки”. В качестве альтернативы можно выделить нужный элемент и использовать сочетание клавиш shift + F12 , но такой способ сработает только в среде Windows.

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

5. Форматирование и контроль технического долга

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

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

Несмотря на то, что инструменты форматирования могут помочь сократить число командных аргументов и улучшить внешний вид кода, они никак не устранят технический долг. Поэтому следующее расширение, которое я вам представлю контролирует технический долг.


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

6. Горячие клавиши

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

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

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

Их список вы можете посмотреть, нажав ctrl + k + s .


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

Здесь вы найдете расширения для перенастройки встроенных горячих клавиш в Visual Studio Code.

7. Режим дзен

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

Существует несколько различных вариантов это сделать. Для начала нужно заглянуть в раздел горячих клавиш.

В моем случае по умолчанию установлена команда ctrl + z и k . То есть сначала я нажимаю ctrl + z , а потом k , а не все три вместе.

8. Git

VSC поддерживает git и позволяет производить все привычные коммиты, не выходя из его интерфейса. Стейдж, коммит, откат, комментарии — эти и другие возможности, доступные из командной строки, можно задействовать прямо из редактора.

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

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

9. Дебаггер

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

Процесс дебаггинга подразумевает гораздо больше, чем просто проверку посредством консоли разработчика в Chrome. К примеру, вы предполагаете в каком месте могла возникнуть проблема: в определенной строке, функции или методе.

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


Все, что для этого нужно ,— это перейти в дебаггер через значок жучка в левой нижней части и запустить приложение кнопкой play.

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

По умолчанию VSC запускает дебаггер на основе Node.js, но вы также можете запустить его на базе самого Chrome. В обычном режиме у вас нет возможности приостанавливать выполнение вашего приложения, но с помощью дебаггера вы с легкостью сможете это сделать, назначив точки прерывания.

В то же время вы получаете возможность более пристально оценить различные элементы кода и их состояния в тех или иных местах.

10. Live Share

Пробовали ли вы когда-нибудь редактировать Google Docs совместно с кем-нибудь еще? Live share работает по тому же принципу, только связь устанавливается через ваш аккаунт Azure или GitHub.

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

Заключение

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

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


Разработчикам

Вы должны знать код Visual Studio уже сейчас. Это так, потому что мы уже говорили об этом в статье некоторое время назад. Теперь в этой статье мы поговорим о том, как сделать программы, которые вы пишете, лучше. Для меня «лучше» относится к понятию безошибочного оптимизированного кода, который приведет к более плавному развертыванию и выполнению соответствующего проекта. В этой статье мы расскажем обо всем, что касается написания кода для среды IDE. Но перед этим мы должны рассказать о том, что все языки и технологии лучше поддерживаются кодом Visual Studio.

Как написать и улучшить вашу первую программу на Visual Studio Code

Этот учебник по Visual Studio Code для начинающих покажет вам, как скомпилировать или написать свою первую программу или код. Microsoft добавила поддержку расширений в коде Visual Studio. Эти расширения помогают улучшить и оптимизировать ваш код для таких языков, как PHP, C, C ++ и других!

Языки, поддерживаемые кодом Visual Studio

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

Подсветка синтаксиса и сопоставление скобок, интеллектуальные дополнения (IntelliSense), окрашивание и исправления, навигация по коду (Перейти к определению, найти все ссылки), отладка и рефакторинг.sc

Если язык или расширение файла поддерживаются средой IDE, вы увидите название этого конкретного языка в строке состояния в правом нижнем углу. Иначе, он покажет вам разметку или обычный текст .



Изображение выше, когда IDE идентифицирует файл как известный тип (HTML).


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

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

Как установить расширения на код Visual Studio

Итак, на первом шаге при открытии кода Visual Studio вы можете увидеть экран, похожий на приведенный ниже фрагмент кода.


После этого нажмите кнопку Расширения в вертикальном меню слева, как показано на снимке экрана ниже.


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

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


Как только вы нажмете кнопку Установить , все готово!

Теперь, когда я установил PHP IntelliSense Extension в коде Visual Studio, он начинает отображать умные предложения и автозаполнение для другого синтаксиса. Следовательно, это уменьшит вероятность ошибки и сделает выполнение и развертывание вашего приложения гладким.

Пример работы IntelliSense с PHP-файлом в реальном времени приведен здесь.


Бонус: что я сделал для демонстрации?

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

Теперь создайте новый файл и сохраните его в расширении .php для файла.

Сохраните, а затем переместите файлы в папку htdocs XAMPP или папку WWW в WAMP.

Теперь, наконец, откройте ваш любимый веб-браузер и введите локальный URL для вашего файла. Тогда вы увидите такой вывод.


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

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