Tauri против Electron для Git-клиентов: бенчмарк производительности
Большинство кроссплатформенных настольных Git-клиентов построены на Electron: GitKraken, GitHub Desktop, GitFiend. GitSquid — один из немногих, построенных на Tauri. Выбор фреймворка невидим для конечных пользователей, но определяет потребление RAM, размер установки, время холодного запуска и CPU в простое. Эта статья ставит цифры на эти различия.
Раскрытие: эта статья опубликована на сайте GitSquid, который построен на Tauri. Мы старались измерять честно — цифры ниже воспроизводимы.
Почему фреймворк важен для Git GUI
Git GUI работают часами. Это фоновые инструменты, которые вы держите открытыми, пока редактор и браузер удерживают фокус. Их след по ресурсам накапливается: Git-клиент, использующий 400 МБ RAM, в изоляции нормален, но на машине с 16 ГБ, где также работают редактор, браузер, Slack, Docker и несколько language server, каждый дополнительный фоновый МБ имеет значение.
Выбор фреймворка влияет на:
- Размер установки — сколько диска занимает приложение.
- Холодный запуск — сколько времени проходит от запуска приложения до отображения первого репозитория.
- RAM в простое — сколько памяти удерживает приложение, когда у вас открыт репозиторий, но вы не взаимодействуете активно.
- CPU в простое — раскручивает ли приложение вентилятор, когда вы переключаете фокус на редактор.
Чем Electron и Tauri отличаются архитектурно
Electron упаковывает полный браузер Chromium плюс среду выполнения Node.js с каждым приложением. Каждое приложение — это полный браузер. Преимущество: детерминированный рендеринг — одна и та же версия Chromium везде. Недостаток: каждое приложение отгружает ~150 МБ бинарей Chromium.
Tauri использует существующий webview операционной системы — WKWebView на macOS, WebView2 на Windows, WebKitGTK на Linux. Логика приложения, написанная на Rust, общается с JavaScript внутри webview через тонкий слой IPC. Преимущество: крошечный бинарь, низкий расход RAM, быстрый холодный запуск. Недостаток: рендеринг может слегка отличаться между платформами, потому что у каждой ОС свой движок webview.
Методология
Мы провели бенчмарк четырёх Git-клиентов на одной и той же машине (M2 MacBook Pro, 16 ГБ RAM, macOS 15) с открытым одним и тем же репозиторием среднего размера (исходный репо GitSquid, ~600 коммитов, ~150 файлов). Для каждого приложения:
- Размер установки: измерен с `du -sh /Applications/<App>.app`
- Холодный запуск: убили приложение, запустили, включили секундомер, остановили, когда репозиторий стал виден и интерактивен.
- RAM в простое: открыли репо, подождали 30 секунд, записали `ps -o rss` для главного процесса и всех вспомогательных процессов. Просуммировали.
- CPU в простое: сэмплировали `top` за 60 секунд при сфокусированном приложении, но без взаимодействия пользователя.
Цифры варьируются между машинами и версиями ОС, но соотношения остаются стабильными. Воспроизведите на своём железе, чтобы проверить.
Результаты
| Инструмент | Фреймворк | Размер установки | Холодный запуск | RAM в простое | CPU в простое |
|---|---|---|---|---|---|
| GitSquid | Tauri 2.x / Rust | ~25 МБ | ~0,7 с | ~180 МБ | <1% |
| GitKraken | Electron | ~300 МБ | ~3,5 с | ~750 МБ | 2-5% |
| GitHub Desktop | Electron | ~200 МБ | ~2,0 с | ~450 МБ | 1-3% |
| Fork (для справки) | Нативный (Cocoa) | ~50 МБ | ~0,5 с | ~150 МБ | <1% |
Два вывода:
- GitSquid на основе Tauri находится в той же лиге, что и нативный Fork по каждой метрике. Архитектура на основе webview легче Electron в 4-5 раз по размеру установки и в 2-4 раза по RAM.
- Клиенты на основе Electron платят существенный оверхед в размере установки (в 10 раз больше Tauri), RAM (в 3-4 раза больше Tauri) и холодном запуске (в 3-5 раз медленнее). Это верно как для GitKraken, так и для GitHub Desktop — это стоимость фреймворка, а не проблема конкретного приложения.
Что это значит на практике
Размер установки
На диске Electron-клиент Git занимает примерно столько же места, сколько 10 установок GitSquid. Если вы держите несколько Git-клиентов установленными (большинство из нас так делает на этапе оценки), это имеет значение. На ноутбуках с SSD на 256 ГБ каждый освобождённый ГБ имеет ценность.
Холодный запуск
Разница в 3 секунды между GitSquid и GitKraken звучит тривиально. Умноженная на количество запусков Git-клиента в день (обычно 5-15), она набирается в одну минуту в день — около 4 часов в год — проведённых, глядя на экран загрузки.
RAM в простое
Разница в 570 МБ между GitSquid и GitKraken — ключевая цифра для машин с ограниченной памятью. На MacBook с 16 ГБ при типичной конфигурации редактор + браузер + Slack + Docker это разница между "у меня свободно 1,5 ГБ" и "я ухожу в swap". Swap замедляет всё, не только Git-клиент.
CPU в простое
Это метрика, которую вы ощущаете в шуме вентилятора. Electron-приложения часто удерживают небольшое количество фонового CPU даже в простое (renderer-процессы, GPU-композитор и т. д.). На безвентиляторном ноутбуке или горячем Mac даже несколько процентов делают разницу между тишиной и слышимым вращением.
Компромиссы
Tauri не лишён недостатков. Честный список:
- Согласованность webview. Каждая ОС использует свой движок webview. Большая часть CSS / JS работает идентично, но очень продвинутые возможности (некоторые крайние случаи flexbox, отдельные детали рендеринга шрифтов) могут отличаться между платформами. За жизнь GitSquid мы наткнулись на 2-3 таких и обошли их.
- Сложность сборки. Tauri требует toolchain Rust на каждой машине разработчика. Electron требует только Node. Для Git GUI, создаваемого небольшой командой, это приемлемо; для хобби-проекта добавляет трения.
- Меньшее сообщество. У Electron 10+ лет ресурсов, библиотек и ответов на Stack Overflow. Экосистема Tauri моложе, но растёт быстро.
Конкретно для Git-клиентов ни один из этих недостатков не виден конечным пользователям. Преимущество (меньший след, более быстрый запуск, меньше памяти) — видно.
Почему больше Git-клиентов не используют Tauri?
Две причины:
- Инерция. GitKraken стартовал до того, как существовал Tauri. GitHub Desktop стартовал до того, как Tauri стал готов к продакшену. Перевод зрелого продукта на новую платформу дорогой — мы это знаем, GitSquid сделал именно это с Electron на Tauri в v2.0 (2026-04-11).
- Tauri моложе. Tauri 1.0 вышел в 2022 году, Tauri 2.0 — в 2024. Для устоявшегося продукта ставка на более молодой фреймворк — реальный риск. Для нового продукта вроде GitSquid компромисс более благоприятен.
Попробуйте сами
Цифры в этой статье воспроизводимы. Установите как GitSquid, так и любой Git-клиент на основе Electron, откройте один и тот же репозиторий в обоих и наблюдайте за статистикой машины. Разница обычно видна без измерений.
Скачайте GitSquid и посмотрите цифры на своём железе.