Canonical optymalizuje snapy: będą się uruchamiać nawet 6-krotnie szybciej

Maciej Olanicki , 02.04.2019 r.

Linus Torvalds jest zdania, że w kwestii jednolitego sposobu na dystrybucję oprogramowania spoza repozytoriów największe nadzieje robi flatpack, jednak dla Canonicala ważniejszy jest oczywiście autorski format snap. Korporacji Marka Shuttlewortha w ostatnim czasie udało się znacznie przyśpieszyć działanie swoich paczek – okazało się, że przez całe miesiące problem stanowiły… czcionki.

Z początku recepcja paczek snap jako proponowanego przez Canonicala ujednoliconego sposobu na dystrybucję linuksowego oprogramowania była sceptyczna. Były zresztą ku temu solidne podstawy – krytyka dotyczyła przede wszystkim ogromnych rozmiarów samych paczek oraz zależności. Pobranie dowolnego programu wiązało się automatycznie z pobranie dziesiątek megabajtów innych pakietów, gdyż snapy w zasadzie w ogóle nie wykorzystywały bibliotek, które już się znajdowały na komputerze. Narzekano także na zużycia RAM-u przez kontenery.

snapy-2

W ostatnim czasie Canonical ogłosił dostępność nowej wersji snapd (2.36.2). Największą różnicą w stosunku do poprzednich wersji jest ogromne przyśpieszenie startu oprogramowania dystrybuowanego jako snap. Według zapewnień Canonicala mowa o nawet sześciokrotnej redukcji czasu potrzebnego na uruchomienie programów posiadających graficzny interfejs użytkownika. Jak udało się tego dokonać? Okazało się, że problematyczna znów była nieumiejętność korzystania przez snapy z lokalnych bibliotek.

Zobacz też: Linus Torvalds o porażce Linuksa na pulpitach: „zmartwieniem jest fragmentacja”

Podczas uruchamiania oprogramowanie posiadające interfejs graficzny musi zorientować się, jakimi czcionkami dysponuje system operacyjny. W przypadku np. paczek DEB czy RPM odbywać się to może za pośrednictwem biblioteki fontconfig. Ta zaś wykorzystuje pamięć podręczną czcionek, czyli fc-fache. Jeśli z jakichś powodów informacje o czcionkach nie są dostępne w ich pamięci podręcznej, konieczne jest ich czasochłonne wygenerowanie. To właśnie ten proces wydłużał start snapów.

snapy

Ale to już należy do przeszłości. Odtąd każda paczka będzie mogła korzystać z wszytych w snapd fc-cache-v6 i fc-cache-v7, czyli skanerów lokalizacji, w których zazwyczaj znajdują się czcionki. W ten sposób wyeliminowana zostanie konieczność generowania – aplikacje dystrybuowane jako snapy uzyskają dostęp do informacji o czcionkach już w momencie instalacji. Rezultaty robią wrażenie – na maszynach z Xeonami czas potrzebny do uruchomiania programu skrócił się sześciokrotnie.

Zobacz też: Ubuntu 19.04 – dostępna wersja beta. Niestety, wciąż bez GSConnect

A jak nowości wpłyną na komputery, które znajdują się na naszych biurkach? Na pececie z procesorem Intel i3 i zainstalowaną Fedorą 29 czas potrzebny na start snapa zredukowano o połowę, na Kubuntu 18.10 mowa już o trzykrotnym przyśpieszeniu. Na pracach Canonicala skorzystają wszystkie dystrybucję wykorzystujące snapy, niemniej wyniki pomiędzy nimi mogą się znacznie różnić. Wygląda na to, że producent Ubuntu nie ma zamiaru poddawać się w doskonaleniu swojego oczka w głowie.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT: