Программирование и разработка программного обеспечения

Как Microsoft Defender замедлял запуск Rider и ReSharper?

JetBrains объясняет, что проверки, выполняемые Microsoft Defender, добавляли десятки секунд к первому запуску Rider и ReSharper после перехода ReSharper на архитектуру выполнения вне процесса. В сотрудничестве с Microsoft Defender был улучшен, а JetBrains также выпустила инструмент с открытым исходным кодом для измерения влияния проверок на инструменты разработки.

2026-09-09
5 мин. чтения
7 просмотров
فريق تحرير certi.news
Как Microsoft Defender замедлял запуск Rider и ReSharper?

JetBrains выяснила, что о замедлении запуска, о котором сообщали пользователи Rider и ReSharper в Windows, не полностью свидетельствовала архитектура самих инструментов: в значительной степени оно было связано с проверками, выполняемыми Microsoft Defender при их запуске. Согласно результатам компании, Defender добавлял десятки секунд к первому запуску, когда ReSharper работал как отдельный процесс вне Visual Studio, тогда как проверки других инструментов завершались менее чем за секунду.

Этот результат появился после перехода ReSharper на архитектуру выполнения вне процесса (Out-of-Process, или OOP) — архитектуру, разработанную JetBrains для уменьшения влияния ReSharper на отзывчивость Visual Studio. Компания представила режим OOP широкой публике в предыдущем году, а в ReSharper 2026.2.1 он стал включён по умолчанию. Хотя внутренние измерения показали общее улучшение производительности, сообщения пользователей начали указывать на замедление запуска, что побудило JetBrains провести более подробный анализ.

Где возникала задержка?

JetBrains сосредоточилась на журналах трассировки Microsoft Defender через ETW, или Event Tracing for Windows, а также на прямых измерениях времени работы процессора. Компания использовала события поставщика Microsoft-Antimalware-Engine, в частности события StreamScanRequestTask, которые фиксируют начало и окончание каждой операции проверки.

Данные показали, что файлы, находящиеся в защищённых от записи путях, получают правила доверия, благодаря которым Defender выполняет более лёгкую проверку при запуске. Когда же ReSharper начал работать как отдельный процесс, он подвергался полной проверке, включая DLL-библиотеки, загружаемые из папки установки пользователя. В результате время проверки в некоторых случаях увеличивалось примерно с нескольких секунд до десятков секунд.

JetBrains проанализировала десятки инструментов разработки и обнаружила между ними значительные различия. Время холодной проверки сред JetBrains и других инструментов категории редакторов составляло примерно от 10 до 40 секунд, тогда как в том же тесте у сред Microsoft и других редакторов оно оставалось менее секунды. Инструментам, основанным на командной строке, требовалось примерно менее двух секунд; компания связала это с небольшим размером исполняемых файлов и ограниченным числом DLL-библиотек.

Тестирование и сотрудничество с Microsoft

Измерения проводились на компьютере Dell Pro Max 16 (MA16250) с 16-ядерным процессором Intel Core Ultra 9 285H и 64 гигабайтами памяти DDR5 под управлением Windows 11 Pro. Инструменты запускались внутри виртуальной машины на Hyper-V, которой были выделены восемь виртуальных процессоров vCPU и фиксированные 8 гигабайт памяти. JetBrains измеряла каждый инструмент десять раз, перезапуская виртуальную машину перед каждой попыткой, чтобы смоделировать холодный запуск и уменьшить влияние кэширования файлов и памяти.

Поначалу JetBrains не могла объяснить все правила проверки даже после изучения доступной документации, поэтому обратилась к команде Microsoft. Сотрудничество помогло определить факторы, заставляющие Defender выполнять больший объём работы, а также объяснить, почему Rider подвергался более интенсивной проверке, чем IntelliJ IDEA и ReSharper вместе взятые.

Microsoft выпустила изменения для Defender в версии 1.449.454.0, чтобы устранить особый случай с Rider и ReSharper OOP при их установке внутри защищённой от записи папки. Однако JetBrains Toolbox по умолчанию устанавливается в путь %LOCALAPPDATA%\Programs — путь, допускающий запись без повышенных привилегий, поэтому он не получает преимущества от улучшения, связанного с защищёнными папками. JetBrains сообщает, что всё ещё оценивает лучший способ работы с установкой Rider через Toolbox и исключениями Microsoft Defender.

Инструмент для измерения влияния Defender

JetBrains выпустила инструмент Defender Performance Tool, чтобы помочь разработчикам и издателям провести такое же расследование. Инструмент позволяет в реальном времени отслеживать активность проверки во время запуска приложения, загрузки плагинов или выполнения компиляции, а также открывать заранее записанные снимки с помощью New-MpPerformanceRecording и анализировать их позднее, экспортируя данные в CSV при работе с несколькими снимками.

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

Что на практике меняется для разработчиков?

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

JetBrains рекомендует поддерживать определения Microsoft Defender в актуальном состоянии, использовать специальный модуль PowerShell для расследования производительности Defender и пробовать новый инструмент измерения при обнаружении необъяснимого замедления. Компания также упоминает установку программ в защищённые от записи папки, использование команды Add-MpPreference для настройки исключения при необходимости и создание Dev Drive для хранения репозиториев и кэша пакетов.

Редакционный комментарий: наиболее важным изменением является не просто внутреннее улучшение Rider или ReSharper, а выявление неочевидного взаимодействия между дизайном инструмента разработки и механизмом проверки безопасности. При этом результаты связаны с конкретной тестовой средой, виртуальной машиной и ограниченным числом измерений; поэтому они не доказывают, что все пользователи Windows столкнутся с такой же разницей. Практическая ценность материала заключается в предоставлении методики и инструмента для проверки причины до изменения настроек безопасности, тогда как вопрос поддержки установки JetBrains Toolbox и ограничений, устанавливаемых системными администраторами, остаётся открытым.

Источник новости
ف
Автор

فريق تحرير certi.news

В той же категории

Вам также может понравиться

Все новости