Кратко / Главное
Новые фреймворки, такие как Tauri, Deno и Electrobun, обещают свергнуть Electron, но наши реальные тесты показывают шокирующую реальность. Мы создали одно и то же требовательное приложение на всех четырех, чтобы раскрыть правду о производительности, размере пакета и трудностях для разработчиков.
Война раздувания: пакет в 400 МБ — это провал
Пакеты — это поля битвы в современном ландшафте настольных приложений. Тестовое приложение, идентичный инструмент для записи экрана, показывает резкие различия в размере развертывания. Electron, когда-то бывший стандартом, весит 323 МБ. Tauri лидирует с всего лишь 57 МБ, за ним следует deno desktop с 111 МБ. Electrobun, однако, раздулся до ошеломляющих 418 МБ, что делает его несомненным проигравшим в этой категории. (Примечание: все размеры включают 45 МБ для встроенного FFmpeg).
Колоссальный размер Electrobun проистекает из критического архитектурного недостатка. Его нативное системное веб-представление не имеет таких важных API, как Screen Capture API и `getDisplayMedia`, которые жизненно важны для функциональности записи экрана на основе JavaScript. Это вынуждает разработчиков включать полный экземпляр Chromium, добавляя примерно 200 МБ раздувания только для включения основных функций. API Deno успешно реализует эти функции, что позволяет избежать этого большого накладного расхода.
Tauri применяет превосходную стратегию. Он переносит интенсивные задачи, такие как запись экрана, на свой Rust backend, используя мощные нативные фреймворки ОС, такие как Screen Capture Kit в macOS. Этот подход означает, что веб-представление обрабатывает только пользовательский интерфейс, никогда не обрабатывая ни одного видеокадра. Результатом является значительно меньший пакет и оптимизированная производительность, демонстрируя четкий путь вперед для эффективной разработки настольных приложений.
Мифы о производительности: Запуск против Реальности
Производительность при запуске часто определяет первоначальное восприятие пользователя, и здесь результаты удивляют. Несмотря на предположения, deno desktop запустился быстрее всего за 242 мс, опередив Electron (273 мс) и Tauri (311 мс). Ожидание того, что Tauri, с его Rust backend и системным веб-представлением, обеспечит мгновенный запуск, оказалось неверным, поскольку движок рендеринга все еще требует времени на загрузку.
Далее, проясним устойчивый миф о памяти «Tauri в 10 раз легче». Хотя размер его пакета на диске действительно значительно меньше, чем у Electron, фактическое потребление памяти во время выполнения гораздо ближе. Electron потреблял 128 МБ, в то время как Tauri использовал 109 МБ. Эта цифра корректно учитывает процессы системного веб-представления, которые macOS запускает отдельно, что часто приводит к ошибочно заниженным данным о первоначальном использовании памяти (например, 36 МБ) до полного учета.
Tauri действительно превосходит в производительности во время выполнения, особенно для требовательных задач, таких как запись экрана. Он достигает превосходных результатов, перенося интенсивную обработку видео на нативный код, используя системные фреймворки, такие как Screen Capture Kit в macOS. Этот метод обходит ограничения на основе браузера, позволяя Tauri обеспечивать плавную запись 60 FPS, которую приложениям на основе браузера трудно достичь. Его backend обрабатывает микширование аудио и финализацию MP4, дополнительно оптимизируя производительность.
Испытание для разработчика: Код, Сбои и Хакерские приемы
В то время как Electron и Tauri предлагают зрелый и простой опыт разработки, путь с их современными альтернативами оказался совсем иным. Создание того же приложения для записи экрана выявило испытание для разработчика для новых фреймворков, отмеченное разочаровывающими проблемами с настройкой, необъяснимыми зависимостями и даже системными сбоями. Стабильность и простота реализации остаются ключевыми отличиями.
deno desktop, несмотря на впечатляющую скорость запуска, выявил критический недостаток в своем опыте разработчика. Когда начиналась запись экрана и окно приложения впоследствии скрывалось, весь процесс неожиданно завершался. Это вынудило разработчиков реализовать костыльное решение: вместо скрытия окна им приходилось перемещать его за пределы экрана, чтобы предотвратить сбой приложения. Это говорит о том, что платформа deno desktop нуждается в значительном созревании.
Electrobun представил по-настоящему разочаровывающее испытание для разработчиков. Его нативный системный веб-просмотрщик не имел критически важного Screen Capture API и функции `getDisplayMedia`, необходимых для записи экрана на основе JavaScript. Этот технический дефицит потребовал включения целого экземпляра Chromium, добавив лишние 200 МБ избыточного кода к уже массивному размеру приложения. Более того, пакет необъяснимым образом подтягивал библиотеки 3D-рендеринга, включая Three.js и Babylon.js, для приложения, которое вообще не выполняло 3D-рендеринг.
Вердикт: Ваш Следующий Стек для Десктопных Приложений
Tauri становится безоговорочным победителем для десктопных приложений, требующих минимального размера и максимальной производительности. С размером пакета всего 57 МБ и нативной записью экрана на бэкенде, он обеспечивает превосходную эффективность во время выполнения. Вашей команде придется освоить Rust, но взамен вы получите беспрецедентную оптимизацию ресурсов.
Enjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
Electron остается бесспорным чемпионом для команд, ориентированных на TypeScript, которые отдают приоритет зрелости экосистемы, стабильности и обширной базе знаний. Несмотря на размер пакета в 323 МБ и запуск за 273 мс, его простой опыт разработчика и сильное сообщество смягчают проблемы с производительностью для многих проектов. Он предлагает надежный и хорошо изученный путь.
deno desktop — многообещающий претендент, отличающийся быстрым запуском за 242 мс и размером пакета 111 МБ. Однако его текущая нестабильность, проявляющаяся в сбоях приложений и костыльных решениях для основных функций, делает его рискованным выбором для продакшена. Следите за развитием, но действуйте с осторожностью.
Electrobun, в этом строгом тесте, оказался худшим из всех миров. Его раздутый пакет в 418 МБ, вызванный необходимостью поставки Chromium для основных API, в сочетании с медленным запуском за 773 мс и сложным испытанием для разработчиков, делает его непригодным вариантом. Игнорируйте Electrobun для серьезной разработки.
Часто Задаваемые Вопросы
Какой фреймворк имел наименьший размер пакета?
Tauri был явным победителем с размером всего 57 МБ. Это значительно меньше, чем Electron (323 МБ), Deno Desktop (111 МБ) и особенно Electrobun (418 МБ).
Tauri быстрее Electron?
По скорости запуска Deno Desktop оказался самым быстрым, удивительно обойдя как Electron, так и Tauri. Однако Tauri продемонстрировал превосходную производительность во время выполнения для требовательных задач, таких как запись экрана с 60 FPS, благодаря прямому использованию нативных системных API.
Почему размер пакета Electrobun был таким большим?
Нативный системный веб-просмотрщик Electrobun не имел необходимого Screen Capture API для тестового приложения. Это вынудило включить в пакет весь браузер Chromium, добавив примерно 200 МБ избыточного кода к конечному пакету.
Какая лучшая альтернатива Electron для разработчиков TypeScript?
Для команд, желающих избежать Rust, Electron остается самой зрелой и стабильной платформой. Deno Desktop показывает перспективы, но в настоящее время страдает от проблем со стабильностью, что делает Electron более безопасным выбором для проектов на чистом TypeScript.
