Przejdź do głównej treści
3 min czytania

Electron czy Tauri 2 i Rust? Architektura desktopowa dla lokalnego AI

Porównanie architektury Electron i Tauri 2: jak mierzyć RAM, czas startu i rozmiar pakietu, gdzie kończą się gwarancje bezpieczeństwa Rusta i jak zaplanować rzetelny benchmark lokalnych aplikacji AI.

Porównanie architektury Electron i Tauri 2: zakres pomiarów RAM, czasu startu i rozmiaru pakietów, granice bezpieczeństwa Rusta oraz procedura rzetelnego benchmarku lokalnych aplikacji AI.

W lokalnych aplikacjach AI interfejs, silnik obliczeniowy i modele konkurują o zasoby komputera. Wybór frameworka wpływa na sposób budowy programu, ale sam w sobie nie przesądza o zużyciu pamięci RAM ani o szybkości przetwarzania.

1. Status pomiarów

Nie publikujemy tu zweryfikowanego benchmarku naszych aplikacji. Wcześniejsze liczby dotyczące pamięci, czasu startu, rozmiaru instalatora i opóźnień komunikacji zostały usunięte, ponieważ nie towarzyszyły im surowe wyniki, wersje porównywanych buildów ani odtwarzalny scenariusz. Poniższe porównanie opisuje architekturę, a procedura testowa jest propozycją, a nie raportem z wykonanych pomiarów.

2. Co właściwie porównujemy

ObszarElectronTauri 2Co sprawdzić w aplikacji
Środowisko interfejsuChromium i Node.js; proces główny oraz procesy renderująceSystemowy WebView i backend w RuściePamięć całego drzewa procesów
DystrybucjaPakiet zawiera środowisko uruchomieniowe ElectronaKorzysta z WebView dostępnego w danym systemieInstalator, zależności i modele – osobno
KomunikacjaIPC między procesamiKomunikacja WebView–backendFaktyczna liczba kopii buforów i czas całej operacji

Tauri nie gwarantuje automatycznie mniejszego zużycia RAM ani szybszego startu każdego programu. Koszt silników AI, wag modeli i procesów pomocniczych trzeba uwzględnić niezależnie od warstwy interfejsu.

Ilustracja

Interfejs Video2X Ultimate Manager

3. Granice bezpieczeństwa i integracji z GPU

Reguły bezpiecznego Rusta (safe Rust) zapobiegają określonym błędom bezpieczeństwa pamięci i wyścigom danych – pod warunkiem, że użyte abstrakcje unsafe są poprawne. Nie gwarantują natomiast braku wycieków pamięci, zakleszczeń ani błędów w kolejności operacji. FFI, kod C/C++, sterowniki i zarządzanie buforami GPU wymagają osobnej weryfikacji.

Wywołanie natywne nie dowodzi jeszcze, że operacja jest zero-copy. Trzeba prześledzić transfery między procesami oraz między RAM a VRAM, własność buforów i synchronizację. Nie przedstawiamy przekazywania surowego adresu z interfejsu jako gotowego, bezpiecznego rozwiązania. Przeglądu konfiguracji wymagają także uprawnienia komend.

4. Proponowany protokół benchmarku

  1. Zapisać wersję aplikacji, commit, tryb kompilacji (release), framework, system operacyjny i wersję WebView, sterownik GPU oraz parametry CPU, RAM i GPU. Porównywać tę samą funkcjonalność na identycznych modelach i danych wejściowych, weryfikowanych sumami SHA-256.
  2. Osobno przetestować pusty interfejs, interfejs z załadowanym modelem i identyczne zadanie AI. Za koniec startu przyjąć moment, w którym interfejs jest gotowy do przyjęcia polecenia; gotowość modelu mierzyć oddzielnie.
  3. Wykonać po 10 prób zimnego i ciepłego startu. Opisać sposób resetowania środowiska i pamięci podręcznej; nie łączyć obu serii. Zapisać wszystkie próby, medianę i rozrzut – również nieudane przebiegi.
  4. Mierzyć pamięć całego drzewa procesów oraz szczytowe zużycie podczas zadania. Podać narzędzie, jego wersję i definicję metryki pamięci, unikając podwójnego liczenia pamięci współdzielonej. VRAM raportować osobno. Rozmiar instalatora nie obejmuje automatycznie modeli ani zależności pobieranych później.
  5. Udostępnić skrypt, komendy, pliki CSV i logi wraz z konfiguracją. Dopiero wtedy formułować wnioski – ograniczone do przebadanego sprzętu i scenariusza.

5. Nasze produkty po migracji

Nasz katalog działa dziś na Tauri 2: Video2X Ultimate Manager i AI File Sorter przeszły już z Electrona na Tauri. Wyjątkiem jest VideoSorterLocal – obecna wersja korzysta z PySide6, a jego migracja na Tauri 2 jest w toku. Opisany wyżej protokół pozostaje jednak aktualny: sama zmiana frameworka nie jest jeszcze dowodem na mniejsze zużycie pamięci czy szybszy start – to trzeba zmierzyć.

Źródła techniczne

Dokumentacja wyjaśnia architekturę i ograniczenia; nie potwierdza wyników wydajnościowych naszych programów.