Ocena wpływu optymalizacji w GNOME 46 na wydajność emulacji terminala

Opublikowano wyniki analizy efektywności optimizacji wprowadzonych do biblioteki VTE (Virtual Terminal library), które znalazły się w wydaniu GNOME 46. Podczas testów mierzono responsywność interfejsu w emulatorach terminala Alacritty, Console (GTK 4), GNOME Terminal (GTK 3 i 4) oraz VTE Test App (przykład z repozytorium VTE), uruchamianych w Fedora 39 z GNOME 45 oraz w Fedora 40(beta) z GNOME 46. Aplikacja Alacritty nie korzysta z biblioteki VTE i została wybrana jako wzorzec, ponieważ według wcześniejszych testów jest jednym z najszybszych emulatorów terminala. Do pomiaru używano czujnika sprzętowego opartego na płytce Teensy, który mierzył czas między naciśnięciem przycisku a pojawieniem się informacji na ekranie.

Biblioteka VTE zapewnia gotowy widżet GTK, który jest używany w różnych emulatorach terminala dla GNOME, w tym GNOME Terminal, Console, Black Box, Tilix, Terminator i Ptyxis. W wersji GNOME 46 w VTE znacząco przeredagowano struktury wewnętrzne, co, według oceny deweloperów, doprowadziło do przyspieszenia operacji, których wzrost wydajności w testach osiągnął 40%. Z praktycznego punktu widzenia, optymalizacje prowadziły do zmniejszenia opóźnień przy rysowaniu w konfiguracjach z GTK 4. Wcześniej opóźnienia przy wpisywaniu w Console i GNOME Terminal były odczuwalne, co zniechęcało wielu użytkowników do korzystania ze standardowych emulatorów terminala dla GNOME. Przy użyciu wersji VTE 0.76 problem ten został rozwiązany.

Przeprowadzone niezależne testowanie potwierdziło wyraźne zmniejszenie opóźnień wprowadzania danych w aplikacjach opartych na VTE, co obserwowane jest nie tylko w prostych, ale i w skomplikowanych scenariuszach użycia terminali. Na przykład, przy użyciu neovim, opóźnienia wprowadzania w emulatorach terminala opartych na VTE zmniejszyły się do poziomu najszybszego terminala Alacritty. O szczególnie w teście związanym z użyciem narzędzia „cat”, reakcja na naciśnięcia klawiszy w Console i GNOME Terminal zmniejszyła się z 40 do 12 ms, a w teście przewijania w neovim – z 45 do 23 ms.

Ocena wpływu optymalizacji w GNOME 46 na wydajność emulacji terminala
Ocena wpływu optymalizacji w GNOME 46 na wydajność emulacji terminala
Ocena wpływu optymalizacji w GNOME 46 na wydajność emulacji terminala

Przyspieszenie działania dzięki nowej wersji biblioteki VTE zostało również odnotowane w zestawie testów vtebench, który mierzy nie opóźnienia wprowadzenia, ale czas odczytu z urządzenia PTY oraz wydajność analizy (testy prędkości przewijania i poruszania kursorem). W większości testów vtebench terminal Alacritty wyprzedza Console i GNOME Terminal, ale różnice w wydajności ostatnich nie są już tak wyraźne jak wcześniej. Częściowo opóźnienie GNOME Terminal jest wyjaśnione kosztami wsparcia dla osób z ograniczeniami (dostępność).

Ocena wpływu optymalizacji w GNOME 46 na wydajność emulacji terminala


Źródło: opennet.ru
Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster