← Torna al blog

Tauri vs Electron per i client Git: un benchmark di performance

comparison performance

Tauri vs Electron per i client Git: un benchmark di performance

La maggior parte dei client Git desktop multipiattaforma è costruita su Electron: GitKraken, GitHub Desktop, GitFiend. GitSquid è uno dei pochi costruiti su Tauri. La scelta del framework è invisibile agli utenti finali, ma condiziona l'uso di RAM, la dimensione di installazione, il tempo di avvio a freddo e la CPU a riposo. Questo articolo mette dei numeri su queste differenze.

Trasparenza: questo articolo è pubblicato sul sito di GitSquid, che è costruito su Tauri. Abbiamo cercato di misurare onestamente — i numeri sotto sono riproducibili.

Perché il framework conta per una GUI Git

Le GUI Git restano in esecuzione per ore. Sono strumenti in background che tieni aperti mentre l'editor e il browser hanno il focus. La loro impronta di risorse si somma: un client Git che usa 400 MB di RAM va bene da solo, ma su una macchina da 16 GB che fa girare anche un editor, browser, Slack, Docker e qualche language server, ogni MB extra in background conta.

La scelta del framework impatta:

  • Dimensione di installazione — quanto disco occupa l'applicazione.
  • Avvio a freddo — quanto tempo passa dal lancio dell'app alla prima visualizzazione del repository.
  • RAM a riposo — quanta memoria trattiene l'app quando hai un repository aperto ma non stai interagendo attivamente.
  • CPU a riposo — se l'app fa girare la ventola quando passi il focus all'editor.

Come Electron e Tauri differiscono architetturalmente

Electron incorpora un browser Chromium completo più un runtime Node.js con ogni applicazione. Ogni app è un browser completo. Il vantaggio: rendering deterministico — la stessa versione di Chromium ovunque. Lo svantaggio: ogni app spedisce ~150 MB di binari Chromium.

Tauri usa il webview esistente del sistema operativo — WKWebView su macOS, WebView2 su Windows, WebKitGTK su Linux. La logica applicativa scritta in Rust comunica con il JavaScript nel webview attraverso un sottile strato IPC. Il vantaggio: binario minuscolo, RAM bassa, avvio a freddo veloce. Lo svantaggio: il rendering può variare leggermente tra piattaforme perché ogni OS ha un motore webview diverso.

Metodologia

Abbiamo benchmarcato quattro client Git sulla stessa macchina (MacBook Pro M2, 16 GB di RAM, macOS 15) con lo stesso repository di dimensioni medie aperto (il repo sorgente di GitSquid, ~600 commit, ~150 file). Per ogni app:

  • Dimensione di installazione: misurata con `du -sh /Applications/<App>.app`
  • Avvio a freddo: ucciso l'app, lanciata, avviato il cronometro, fermato quando il repository era visibile e interattivo.
  • RAM a riposo: aperto il repo, atteso 30 secondi, registrato `ps -o rss` per il processo principale e tutti i processi helper. Sommato.
  • CPU a riposo: campionato `top` per 60 secondi con l'app in focus ma senza interazione utente.

I numeri variano tra macchine e versioni di OS, ma le proporzioni restano consistenti. Riproduci sul tuo hardware per verificare.

Risultati

Strumento Framework Dimensione installazione Avvio a freddo RAM a riposo CPU a riposo
GitSquid Tauri 2.x / Rust ~25 MB ~0,7 s ~180 MB <1 %
GitKraken Electron ~300 MB ~3,5 s ~750 MB 2-5 %
GitHub Desktop Electron ~200 MB ~2,0 s ~450 MB 1-3 %
Fork (come riferimento) Nativo (Cocoa) ~50 MB ~0,5 s ~150 MB <1 %

Due conclusioni:

  1. GitSquid basato su Tauri è nella stessa lega di Fork nativo su ogni metrica. L'architettura basata su webview è 4-5 volte più leggera di Electron sulla dimensione di installazione e 2-4 volte sulla RAM.
  2. I client basati su Electron pagano un sovraccosto sostanziale in dimensione di installazione (10x più di Tauri), RAM (3-4x più di Tauri) e avvio a freddo (3-5x più lento). Questo vale sia per GitKraken sia per GitHub Desktop — è il costo del framework, non un problema specifico dell'app.

Cosa significa in pratica

Dimensione di installazione

Su disco, un client Git Electron occupa grosso modo lo stesso spazio di 10 installazioni di GitSquid. Se tieni più client Git installati (la maggior parte di noi lo fa durante la valutazione), questo conta. Sui laptop con SSD da 256 GB, ogni GB liberato ha valore.

Avvio a freddo

La differenza di 3 secondi tra GitSquid e GitKraken sembra banale. Moltiplicata per il numero di volte che lanci il client Git ogni giorno (tipicamente 5-15), arriva a un minuto al giorno — circa 4 ore l'anno — passate a fissare uno schermo di caricamento.

RAM a riposo

La differenza di 570 MB tra GitSquid e GitKraken è il numero chiave per macchine con memoria limitata. Su un MacBook da 16 GB con il setup tipico editor + browser + Slack + Docker, è la differenza tra "ho 1,5 GB liberi" e "sto facendo swap". Lo swap rallenta tutto, non solo il client Git.

CPU a riposo

Questa è la metrica che senti nel rumore della ventola. Le app Electron spesso trattengono un po' di CPU in background anche a riposo (processi renderer, compositore GPU, ecc.). Su un laptop senza ventola o un Mac che scalda, anche pochi punti percentuali fanno la differenza tra silenzioso e udibile.

I compromessi

Tauri non è esente da svantaggi. La lista onesta:

  • Consistenza del webview. Ogni OS usa un motore webview diverso. La maggior parte di CSS / JS funziona identicamente, ma alcune funzionalità molto avanzate (alcuni casi limite di flexbox, certi dettagli del rendering dei font) possono differire tra piattaforme. Ne abbiamo incontrate e aggirate 2-3 nella vita di GitSquid.
  • Complessità di bundling. Tauri richiede la toolchain Rust su ogni macchina di sviluppo. Electron richiede solo Node. Per una GUI Git costruita da un piccolo team, è accettabile; per un progetto hobbystico, aggiunge attrito.
  • Community più piccola. Electron ha 10+ anni di risorse, librerie e risposte Stack Overflow. L'ecosistema di Tauri è più giovane ma cresce velocemente.

Specificamente per i client Git, nessuno di questi svantaggi è visibile agli utenti finali. Il beneficio (impronta più bassa, avvio più veloce, meno memoria) sì.

Perché non più client Git usano Tauri?

Due ragioni:

  1. Inerzia. GitKraken è iniziato prima che Tauri esistesse. GitHub Desktop è iniziato prima che Tauri fosse pronto per la produzione. Ri-piattaformare un prodotto maturo è costoso — lo sappiamo, GitSquid ha fatto esattamente questo da Electron a Tauri in v2.0 (2026-04-11).
  2. Tauri è più giovane. Tauri 1.0 è uscito nel 2022, Tauri 2.0 nel 2024. Per un prodotto consolidato, scommettere su un framework più giovane è un rischio reale. Per un prodotto nuovo come GitSquid, il compromesso è più favorevole.

Provalo tu stesso

I numeri in questo articolo sono riproducibili. Installa sia GitSquid che un qualsiasi client Git basato su Electron, apri lo stesso repository in entrambi e guarda le statistiche della tua macchina. La differenza è di solito visibile senza misurare.

Scarica GitSquid e vedi i numeri sul tuo hardware.