← ブログに戻る

Gitクライアント向けTauri vs Electron:パフォーマンスベンチマーク

comparison performance

Git クライアントにおける Tauri と Electron の比較: パフォーマンスベンチマーク

クロスプラットフォームのデスクトップ Git クライアントの大半は Electron で構築されています。GitKraken、GitHub Desktop、GitFiend などです。GitSquid は数少ない Tauri ベースのクライアントの一つです。フレームワークの選択はエンドユーザーには見えませんが、RAM 使用量、インストールサイズ、コールドスタート時間、アイドル時の CPU を左右します。この記事ではそれらの違いを数値で示します。

開示: この記事は Tauri で構築されている GitSquid のサイトに掲載されています。私たちは誠実に計測しようと努めました — 以下の数値は再現可能です。

Git GUI においてフレームワークが重要な理由

Git GUI は何時間も動作し続けます。エディタやブラウザがフォーカスを持っている間、バックグラウンドで開いたままにするツールです。リソースのフットプリントは積み重なります。400 MB の RAM を使う Git クライアントは単独で見れば問題ありませんが、エディタ、ブラウザ、Slack、Docker、いくつかの language server を同時に走らせる 16 GB マシンでは、バックグラウンドの追加 MB がすべて影響します。

フレームワークの選択は次に影響します:

  • インストールサイズ — アプリケーションが占有するディスク容量。
  • コールドスタート — アプリ起動から最初のリポジトリ表示までの時間。
  • アイドル時の RAM — リポジトリを開いているが操作していないときにアプリが保持するメモリ量。
  • アイドル時の CPU — エディタにフォーカスを切り替えたときにアプリがファンを回すかどうか。

Electron と Tauri はアーキテクチャ的にどう異なるか

Electron は各アプリケーションに完全な Chromium ブラウザと Node.js ランタイムをバンドルします。各アプリは完全なブラウザです。利点: 決定論的なレンダリング — どこでも同じ Chromium バージョン。欠点: 各アプリが約 150 MB の Chromium バイナリを配布します。

Tauri は OS 既存の WebView を使用します — macOS では WKWebView、Windows では WebView2、Linux では WebKitGTK。Rust で書かれたアプリケーションロジックは、薄い IPC レイヤーを介して WebView 内の JavaScript と通信します。利点: 極小のバイナリ、低 RAM、高速なコールドスタート。欠点: 各 OS が異なる WebView エンジンを持つため、レンダリングがプラットフォーム間でわずかに異なる場合があります。

方法論

同じマシン (M2 MacBook Pro、16 GB RAM、macOS 15) で同じ中規模リポジトリ (GitSquid のソースリポジトリ、約 600 commits、約 150 ファイル) を開いた状態で、4 つの Git クライアントをベンチマークしました。各アプリについて:

  • インストールサイズ: `du -sh /Applications/<App>.app` で計測。
  • コールドスタート: アプリを終了し、起動して、ストップウォッチを開始、リポジトリが表示され操作可能になった時点で停止。
  • アイドル時の RAM: リポジトリを開き、30 秒待機、メインプロセスとすべてのヘルパープロセスについて `ps -o rss` を記録。合算。
  • アイドル時の CPU: アプリにフォーカスを当てユーザー操作なしで `top` を 60 秒サンプリング。

数値はマシンや OS バージョンによって変動しますが、比率は一貫しています。検証のためにご自身のハードウェアで再現してください。

結果

ツール フレームワーク インストールサイズ コールドスタート アイドル時 RAM アイドル時 CPU
GitSquid Tauri 2.x / Rust 約 25 MB 約 0.7 秒 約 180 MB <1%
GitKraken Electron 約 300 MB 約 3.5 秒 約 750 MB 2-5%
GitHub Desktop Electron 約 200 MB 約 2.0 秒 約 450 MB 1-3%
Fork (参考) ネイティブ (Cocoa) 約 50 MB 約 0.5 秒 約 150 MB <1%

2 つの示唆:

  1. Tauri ベースの GitSquid はあらゆる指標でネイティブの Fork と同じリーグにいます。 WebView ベースのアーキテクチャは、インストールサイズで Electron より 4-5 倍、RAM で 2-4 倍軽量です。
  2. Electron ベースのクライアントは大きなオーバーヘッドを支払っています。 インストールサイズ (Tauri の 10 倍)、RAM (Tauri の 3-4 倍)、コールドスタート (3-5 倍遅い)。これは GitKraken と GitHub Desktop の両方に当てはまります — 特定のアプリの問題ではなくフレームワークのコストです。

これが実際に意味するもの

インストールサイズ

ディスク上で、Electron 製の Git クライアントは GitSquid 約 10 個分のスペースを占有します。複数の Git クライアントをインストールしておく場合 (評価中の私たちの多くがそうします)、これは重要です。256 GB SSD のラップトップでは、解放される 1 GB ごとに価値があります。

コールドスタート

GitSquid と GitKraken の 3 秒の差はささいに聞こえます。1 日に Git クライアントを起動する回数 (典型的には 5-15 回) を掛けると、1 日 1 分 — 年間約 4 時間 — をローディング画面を見つめて過ごすことになります。

アイドル時の RAM

GitSquid と GitKraken の 570 MB の差は、メモリ制約のあるマシンにとって最重要の数字です。エディタ + ブラウザ + Slack + Docker という通常の構成の 16 GB MacBook では、これが「1.5 GB 空きがある」と「スワップしている」の違いです。スワップは Git クライアントだけでなく、すべてを遅くします。

アイドル時の CPU

これはファンの音で感じる指標です。Electron アプリはアイドル時でもバックグラウンドで少量の CPU を保持することがよくあります (renderer プロセス、GPU コンポジターなど)。ファンレスのラップトップや熱を持ちやすい Mac では、わずか数パーセントが静かと音を立てて回るかの差を生みます。

トレードオフ

Tauri に欠点がないわけではありません。正直なリスト:

  • WebView の一貫性。 各 OS が異なる WebView エンジンを使います。CSS / JS のほとんどは同一に動作しますが、非常に高度な機能 (一部の flexbox エッジケース、特定のフォントレンダリングの詳細) はプラットフォーム間で異なる可能性があります。GitSquid のライフタイムでこれらに 2-3 件遭遇し回避してきました。
  • バンドルの複雑さ。 Tauri はすべての開発者マシンに Rust ツールチェーンを必要とします。Electron は Node のみで足ります。少数チームが構築する Git GUI には許容範囲ですが、ホビープロジェクトには摩擦を加えます。
  • コミュニティが小さい。 Electron には 10 年以上のリソース、ライブラリ、Stack Overflow の回答があります。Tauri のエコシステムはより若いですが急速に成長しています。

Git クライアントに限れば、これらの欠点はいずれもエンドユーザーには見えません。利点 (フットプリントが小さい、起動が速い、メモリが少ない) は見えます。

なぜもっと多くの Git クライアントが Tauri を使わないのか?

2 つの理由があります:

  1. 慣性。 GitKraken は Tauri が存在する前に始まりました。GitHub Desktop は Tauri が本番運用可能になる前に始まりました。成熟した製品をリプラットフォームするのは高コストです — 私たちはそれを知っています。GitSquid はまさにそれを v2.0 (2026-04-11) で Electron から Tauri に行いました。
  2. Tauri は若い。 Tauri 1.0 は 2022 年、Tauri 2.0 は 2024 年にリリースされました。確立された製品にとって、より若いフレームワークに賭けるのは現実的なリスクです。GitSquid のような新しい製品にとっては、トレードオフはより有利です。

自分で試してみてください

この記事の数値は再現可能です。GitSquid と任意の Electron ベースの Git クライアントの両方をインストールし、両方で同じリポジトリを開いて、マシンの統計を見てください。違いは通常、計測なしでも分かります。

GitSquid をダウンロードして、ご自身のハードウェアで数値を確認してください。