Казалось бы, с выходом Arduino IDE 2.x разработчики наконец-то подарили сообществу современный, элегантный инструмент с удобной системой автодополнения, встроенным отладчиком и продвинутым интерфейсом. Однако за фасадом красивого редактора на базе платформы Eclipse Theia скрывается проблема, которая знакома многим, кто пытается работать с объемными проектами, — это катастрофически медленная скорость сборки.
То, что в классической версии 1.8.x происходило за секунды, в «двойке» растягивается на минуты. Вместо того чтобы сосредоточиться на коде, разработчик вынужден бесконечно ждать, пока среда «переварит» библиотеки, проиндексирует файлы или просто запустит компилятор. Особенно остро это проявляется при использовании сложных плат (ESP32, STM32) и большого количества зависимостей, когда интерфейс начинает заметно «подвисать», а индикатор загрузки, кажется, застывает во времени.
Парадокс в том, что более мощная IDE вместо ускорения процесса превращается в его узкое место.
Посмотрим, какое время займет сборка примера BlinkRGB для мигания RGB светодиодом, который уже есть на плате ESP32S3-N16R8
Компьютер, на котором установлена OS Windows 10 Pro имеет следующие характеристики:
Среда Arduino IDE установлена по умолчанию (дополнительных изменений в конфигурацию не вносилось). Версия поддержки плат 3.3.7
Детализированный вывод отключен
Первая сборка проекта заняла около 30 секунд.
Добавим пару строк для работы с COM портом и снова попробуем скомпилировать проект.
Повторная сборка прошла чуть быстрее — около 25 секунд, но для проекта, в котором по сути всего две встроенные библиотеки (для RGB‑светодиода и Serial), это всё равно очень‑очень долго. А если библиотек будет много, а код нужно часто тестировать на этапе разработки?
Может ли среда Arduino IDE работать быстрее, если взять более современное железо и выполнить тонкую настройку самой среды программирования?
Скорость компиляции в Arduino IDE (особенно для больших проектов ESP32, STM32 или сложных скетчей) упирается в четыре узких места:
- Процессор (CPU):
Узкое место: Низкая тактовая частота и, критически, низкая производительность на одно ядро (single-core). Компилятор (gcc) в процессе сборки большую часть времени работает в одном потоке. Даже 16-ядерный процессор с низкой частотой каждого ядра будет компилировать медленно.
Решение: Высокая частота (от 3 ГГц и выше) и современная архитектура. - Накопитель (SSD vs HDD):
Узкое место: Жесткий диск (HDD). Сборка создает тысячи мелких временных файлов, объектных файлов библиотек и кэша предкомпиляции. HDD захлебывается на операциях ввода-вывода случайного доступа.
Решение: Установка Arduino IDE и папки с ядрами/библиотеками (обычно C:\Users\...\AppData\Local\Arduino15) на SSD (NVMe). - Оперативная память (RAM):
Узкое место: Недостаток ОЗУ (8 ГБ или менее) или одноканальный режим. При компиляции больших проектов (особенно ESP-IDF, сложные платы) компилятор активно использует память. Если памяти мало, ОС начинает сбрасывать данные на диск (свопинг), что создает огромные задержки.
Решение: 16+ ГБ ОЗУ в двухканальном режиме. - Антивирус (Софт):
Узкое место: Активная защита в реальном времени. Антивирус проверяет каждый создаваемый .o (объектный) файл, каждый вызов компилятора и линковщика. Это может замедлить сборку в 2-3 раза.
Решение: Добавить папки с проектами и папку Arduino15 в исключения антивируса.
Ноутбук, который я приобрел исключительно для разработки, удовлетворяет пунктам 1-3
а вот с пунктом 4 и отчасти скорости доступа к данным в OS Windows 11 PRO для разработчиков есть специальное решение.
Зачем в Windows 11 Pro нужен Dev Drive
Dev Drive — это специальный диск для разработчиков, доступный в актуальных версиях Windows 11 Pro (а также Enterprise). Он создаётся как отдельный том на основе файловой системы ReFS и сочетает ускоренную работу с исходниками и пакетами с более щадящей настройкой защиты в Microsoft Defender — режимом производительности. Главная идея: минимизировать накладные расходы при интенсивных файловых операциях (сборки, клонирование репозиториев, работа пакетных менеджеров) без компромисса по безопасности.
Что даёт Dev Drive
Ускорение операций ввода-вывода в разработке
- Большие монорепозитории, частые checkout/pull, массовые мелкие файлы (node_modules, obj/bin, NuGet/pip/cargo кеши) — все это типичные «тяжёлые» сценарии, где Dev Drive даёт ощутимый выигрыш.
- ReFS оптимизирован под такие нагрузки: эффективнее копирует и перемещает большие наборы файлов, снижает фрагментацию и накладные расходы на метаданные.
Режим производительности Microsoft Defender
- Для томов Dev Drive доступен специальный режим защиты, снижающий влияние антивирусной проверки на операции с файлами развития (сохранения, компиляции, развёртывания зависимостей), сохраняя при этом ключевые контуры безопасности.
- Это даёт стабильные сборки и меньше «пробок» при пакетных операциях.
Изоляция и предсказуемость
- Отдельный том упрощает управление правами, исключениями и политиками безопасности.
- Проще поддерживать чистую структуру: исходники, артефакты сборки и кеши разнесены от системного и пользовательского дисков.
Кому особенно полезен
- Разработчикам с крупными репозиториями (Git, monorepo) и частыми сборками (MSBuild, Gradle, CMake и т. п.).
- Тем, кто активно работает с пакетными менеджерами и кешами (npm, Yarn/pnpm, NuGet, pip, cargo) и страдает от «долго крутится диск».
- Командам, которым важна повторяемость и стабильное время сборки на рабочих станциях.
Включение в Windows 11 PRO режима разработчика и настройка DEV Drive
Прежде чем настраивать Dev Drive в Windows 11 необходимо активировать режим разработчика.
Зачем включать режим разработчика
- Установка приложений из любых источников (sideload): UWP/MSIX пакеты не из Microsoft Store.
- Разработка и отладка: развёртывание приложений из IDE (Visual Studio и др.) без дополнительных лицензий.
- Windows Device Portal и Device Discovery: удалённая диагностика и профилирование устройства через веб-интерфейс.
- Символические ссылки без прав администратора: пользователи могут создавать symlink’и (удобно для git/npm/yarn и сценариев сборки).
- Разрешение некоторых ограничений среды выполнения UWP (например, loopback для отладки).
Когда лучше не включать
- На рабочих/корпоративных ПК, где политика безопасности запрещает sideload и удалённый доступ.
- Если вы не разрабатываете ПО и не ставите сторонние пакеты/инструменты — лишнее расширение поверхности атаки.
- Если включаете временно для конкретной задачи — отключите после завершения.
Поскольку мы создаем среду, в которой будем заниматься исключительно программированием - режим разработчика активируем.
- Нажмите Win + I, либо Пуск → Параметры.
- Перейдите: Система → Дополнительно
- Включить режим разработчика
В мастере «Создать диск разработчика», который находится на этой-же вкладке настроек доступны два варианта.
Оба делаются полностью в GUI:
Вариант A — Виртуальный диск (VHD/VHDX)
- Выберите «Виртуальный диск (VHD/VHDX)». Это один файл, который монтируется как отдельный диск.
- Укажите: Путь для файла (например, D:\Dev\devdrive.vhdx). Размер (например, 100–200 ГБ). Режим выделения: как правило, «динамически расширяемый» удобен и экономит место. Букву диска и метку (например, «DEV»).
Файловая система будет ReFS (назначается автоматически). - Запустите создание. После завершения увидите новый диск в Проводнике.
Примечания: Такой диск удобно переносить между ПК, хранить на другом SSD.
Как правило, созданные через «Параметры» Dev Drive-виртуальные диски автоматически подключаются после перезагрузки. Управление доступно на той же странице «Для разработчиков → Dev Drive».
Вариант B — Раздел на физическом диске
- Выберите «Создать раздел на диске».
- Мастер предложит: Выделить пространство из существующего тома (уменьшить том) или использовать уже неразмеченное пространство.
- Укажите размер (≥50 ГБ), задайте букву и метку. Файловая система — ReFS (назначается автоматически).
- Подтвердите. Будет создан новый том, который появится в Проводнике.
Мне повезло - на ноутбуке, который я приобрел уже изначально было 2 раздела. Данных там еще нет.
Поэтому смело удаляем том D.
И в неразмеченной области создаем диск разработчика
Минимальный объем как мы видим может составить 51Гб. Букву для DEV Drive назначим E.
В оставшейся свободной области создаем раздел с обычной NTFS под свои нужды.
Открываем Мой компьютер
Диск E с файловой системой ReFS и есть наш DEV Drive.
Осталось проверить защиту Microsoft Defender (режим производительности)
- Откройте Параметры → Конфиденциальность и безопасность → Безопасность Windows → Открыть «Безопасность Windows».
- В «Защита от вирусов и угроз» откройте «Управление настройками».
- Проверьте раздел, связанный с Dev Drive/режимом производительности Microsoft Defender. Для Dev Drive он обычно включён автоматически.
- Если переключатель доступен — убедитесь, что он включен. Если такого пункта нет, это может зависеть от редакции/версии Windows — в большинстве случаев ничего дополнительно делать не нужно.
Настройка Arduino IDE для работы с Dev Drive
Скачиваем и устанавливаем последнюю версию Arduino IDE (на момент написания статьи Arduino IDE 2.3.8 25.02.2026). Доступ к сайту arduino.cc давно закрыт, поэтому, если не хотите использовать средства обхода блокировок дистрибутив можно взять например тут:
1. Перенос скетчей и пользовательских библиотек на DEV Drive (E:)
- Создайте корневую папку для работы с Arduino, например:E:\Arduino\
- Внутри E:\Arduino\ создайте структуру (минимум — две папки):
- E:\Arduino\libraries\ — сюда IDE будет ставить пользовательские библиотеки.
- E:\Arduino\projects\ — сюда вы будете сохранять свои проекты (скетчи).
Далее
- Запустите Arduino IDE 2.3.8.
- Откройте меню File → Preferences (Файл → Настройки).
- Параметр Sketchbook location (Папка со скетчами):
- Нажмите Browse… (Обзор…).
- Укажите папку e:\Arduino\projects.
- Нажмите OK/Применить.
Что это даёт:
- По умолчанию IDE будет сохранять новые скетчи в E:\Arduino\projects
- Все пользовательские библиотеки, устанавливаемые через Library Manager или через «Add .ZIP Library…», будут попадать в E:\Arduino\libraries.
2. Перенос пакетов плат (Arduino cores и tools) на DEV Drive
Это актуально если:
- на системном диске мало места;
- вы используете тяжёлые платформы (ESP32/ESP-IDF, STM32, RP2040 с GCC, toolchains для ARM и т.п.);
- вы часто обновляете/добавляете пакеты и компилируете большие проекты.
Что даёт перенос на DEV Drive (E:)
- Экономия места на C:. Пакеты некоторых платформ занимают гигабайты:
- Arduino AVR Boards ~100–200 МБ
- ESP32 (esp32 + toolchains, python, esptool и т.д.) ~1–3 ГБ
- STM32 ~1–2+ ГБ
- Потенциально быстрее установка/обновление пакетов и чуть быстрее сборка, т.к. DEV Drive оптимизирован под разработку и диско‑I/O. В реальных сценариях прибавка обычно ощутима при установке и распаковке пакетов; ускорение сборки 5–15% зависит от проекта и антивируса.
- Разгрузка профиля пользователя (%LOCALAPPDATA%), меньше риска «забить» системный SSD.
Когда можно не переносить
- Если вы работаете только с Arduino Uno/Nano (AVR) и несколькими небольшими библиотеками — выигрыш минимален.
- Если у вас достаточно места на системном диске и важно «не трогать» стандартную конфигурацию.
Как перенести
Открываем с помощью блокнота файл arduino-cli.yaml
%LOCALAPPDATA%\Arduino15\arduino-cli.yaml (обычно это C:\Users\<Имя_пользователя>\AppData\Local\Arduino15\)
Эту папку нужно переместить на наш DEV Drive (я буду хранить папку в папке Arduino)
Теперь редактируем файл с учетом новых путей и сохраняем его.
Для совместимости, вместо удаленной папки необходимо создать ярлык.
В командной строке (cmd) от имени администратора:
mklink /J "%LOCALAPPDATA%\Arduino15" "E:\Arduino\Arduino15"
Перенос временных папок (Temp) и кэша сборки Arduino IDE 2.3.8 на DEV Drive (E:)
Это ускорит установку/распаковку пакетов и сборку, снизит нагрузку на диск C
Что именно переносим
- Временные каталоги Windows для вашего профиля (TEMP и TMP). Arduino IDE/CLI создаёт там: временные папки сборки (arduino‑build‑…/arduino‑sketch‑…)
- кэш компиляции/препроцессинга
- временные файлы «Unsaved Sketches» (.arduinoIDE‑unsaved)
Рекомендуемый путь на DEV Drive:
- E:\Arduino\Temp\ (одна папка для TEMP и TMP)
sysdm.cpl
- Нажмите «Создать…»Имя переменной: TEMP
Значение: E:\Arduino\Temp
ОК - Ещё раз «Создать…»Имя переменной: TMP
Значение: E:\Arduino\Temp
ОК
Важное замечание
- Меняем именно пользовательские TEMP и TMP (верхний блок). Системные TEMP/TMP (нижний блок) трогать не нужно — это оставит системные службы Windows без изменений.
Выйдите из учётной записи и войдите снова (или перезагрузите ПК), чтобы новые пути подхватились для ярлыков/«Пуска».
Открываем Arduino IDE и собираем любой пример
Если сейчас открыть папку E:\Arduino\Temp - можно увидеть там много хлама
Среда Arduino IDE настроена для работы с DEV Drive
Итоговое тестирование
Ставим поддержку плат ESP32
Cсылка:https://dl.espressif.com/dl/package_esp32_index.json
После установки можно открыть свойства папки Arduino15 и увидеть, что она сильно разбухла
а значит установка поддержки платформы произошла в назначенную нами папку.
Открываем пример из начала статьи и пере-сохраняем его в E:\Arduino\projects
Теперь сборка проекта происходит меньше чем за 10 секунд вместо 30 секунд, т.е. Arduino IDE для платформы ESP32 стало собирать проекты в 3 раза быстрее.
Вам не нравится Arduino IDE версии 2.Х ? - Вы просто не умеете её готовить!
Оглавление канала доступно тут
Всем удачи!