Dlaczego WSL 2 jest 13 razy szybszy niż WSL: wrażenia z Insider Preview

Microsoft przygotowuje wydanie Windows May 2020 Update (20H1). To aktualizacja wprowadzi kilka przyjemnych ulepszeń interfejsu użytkownika, ale dla programistów i innych zainteresowanych ważniejsze jest to, że w nowej wersji Windows pojawi się WSL 2 (Windows Subsystem for Linux). To aktualne informacje dla tych, którzy chcieli przejść na system Windows, ale nie mogli się zdecydować.

Dave Rupert zainstalował WSL 2 na swoim 13-calowym laptopie Surface i pierwsze wyniki
mile zaskoczyły:

Dlaczego WSL 2 jest 13 razy szybszy niż WSL: wrażenia z Insider Preview

Druga wersja WSL jest 13 razy szybsza od pierwszej! Nie codziennie dostajesz 13-krotne zwiększenie wydajności za darmo. Poczuję dreszcze i uronię łzę, gdy po raz pierwszy zobaczyłem te wyniki. Dlaczego? Cóż, głównie opłakiwałem stracony czas, który narastał przez 5 lat pracy z pierwszą wersją WSL.

I to nie są tylko liczby. W WSL 2 instalacja npm, kompilacja, pakowanie, przeglądanie plików, restart gorących modułów, uruchamianie serwerów — prawie wszystko, czego codziennie używam jako web developer, działa teraz znacznie szybciej. To przypomina mi to, jakbym znowu usiadł za Macem (może nawet lepiej, ponieważ Apple w ciągu ostatnich kilku lat radykalnie ogranicza możliwości swoich procesorów na rzecz wydłużenia czasu pracy na baterii).

Skąd ta prędkość?

Jak osiągnęli 13-krotne zwiększenie wydajności? Kiedy wcześniej rozważałem przejście na Maca, też miałem pewne pomysły, aczkolwiek czysto na poziomie przypuszczeń. Chodzi o to, że zapisy na dysk i wywołania systemowe w Linuxie były dość kosztowne (jeśli chodzi o czas) ze względu na architekturę pierwszej wersji WSL. A teraz zgadnijcie, na czym w dużym stopniu opiera się nowoczesne tworzenie stron internetowych? Tak. Kiedy zbierasz w całość masę zależności i fragmentów kodu przy każdym zapisaniu pliku, wykonujesz w rzeczywistości wiele operacji zapisu na dysk i wywołań systemowych dla dziesiątek tysięcy plików.

Gdy raz uświadomisz sobie to na swoim gorzkim doświadczeniu, ciężko jest to wszystko zapomnieć. Zaczynasz stopniowo popadać w depresję, gdy wyobrażasz sobie, jak wolno i smutno to wszystko działa. I rozumiesz, że twój świat nie będzie już taki sam, a narzędzie, które lubiłeś, nie wydaje się już użyteczne i efektywne.

Na szczęście zespół WSL podjął ryzyko i całkowicie przebudował podsystem. W WSL 2 te problemy zostały rozwiązane: programiści zintegrowali z systemem Windows własną maszynę wirtualną Linux i powierzyli operacje plikowe zdalnemu dyskowi VHD (Virtual Hardware Disk). Kompromis polega na tym, że przy pierwszym uruchomieniu musisz poświęcić trochę czasu na uruchomienie maszyny wirtualnej. Czas ten liczy się w milisekundach i osobiście dla mnie jest ledwie dostrzegalny. Na przykład czekam z przyjemnością, bo wiem, dla czego to wszystko.

Gdzie teraz będą przechowywane pliki?

Aby w pełni wykorzystać możliwości WSL 2, będziesz chciał przenieść pliki projektu z /mnt/c/Users/<имя пользователя>/ do nowego katalogu domowego ~\/Linux na nowym VHD. Możesz zobaczyć zawartość tego dysku w sieci, przechodząc do \\ wsl $ \\ \\ \\ home lub wpisując polecenie explorer.exe z twojej powłoki Bash.

To prawdziwy system plików Linux, który działa i zachowuje się tak, jak się spodziewasz. Stworzyłem folder ~\/projects, w którym mieszkają wszystkie moje repozytoria projektów, a następnie otwieram projekty w Visual Studio Code, używając polecenia code.

A co z VS Code?

Instalacja WSL-dla JavaScript, takie jak typy BigInt i BigFloat, a także do zdalnego rozwoju w VS Code (VS Code Remote — WSL) jest ostatnim krokiem, który zapewnia komfortową pracę dewelopera. Rozszerzenie pozwala VS Code na wykonywanie wszystkich swoich operacji (polecenia git, konsolę, instalację rozszerzeń itd.), interagując bezpośrednio z maszyną wirtualną Linux. To sprawia, że cały proces jest bardzo autonomiczny.

Na początku byłem nieco rozczarowany koniecznością instalacji tego rozszerzenia, ponieważ musiałem ponownie zainstalować to, co wcześniej zainstalowałem i skonfigurowałem. Ale teraz doceniam to, ponieważ pojawiła się specjalna warstwa wizualizacji, która pokazuje, w jakim środowisku pracuję i gdzie przechowywane są moje pliki. To uczyniło proces web developmentu na Windows bardziej przejrzystym i znacznie uprościło korzystanie z interfejsu użytkownika do zarządzania wersjami w VS Code.

Łzy szczęścia i nadzieja na lepszą przyszłość

Nie opuszcza mnie uczucie radości na myśl o nadchodzącej wersji Windows May 2020 Update i zoptymalizowanym podsystemie Linux, który działa znakomicie na moim potężnym komputerze do gier. Może są jeszcze jakieś problemy, o których na razie nie wiem, ale po Insider Preview Doszedłem do wniosku, że zespół WSL rozwiązał większość problemów.

Ponadto, nie można zapominać, że Windows Terminal jest naprawdę dobry! Jakby wysłuchali moich skarg na brak zakładek, JSON Settings i potrzeby "czuć się fajnie" w systemie Windows. Wciąż brzmi to dziwnie, ale Windows Terminal to chyba najlepszy terminal dla Windows.

Pracując w Windows przez 5 lat, wiele przeżyłem: niemożność zainstalowania Rails, zmagania z sztucznymi powłokami Cygwin. Siedziałem w pierwszym rzędzie na wspomnianej konferencji Build 2016, kiedy Microsoft ogłosił pierwszą wersję WSL. I wtedy pojawiła się moja nadzieja, że rozwój webowy na Windows w końcu wejdzie na nowy poziom. Bez wątpienia, WSL 2 to największa poprawa, jaką widziałem od tego czasu, a wydaje się, że stoimy u progu nowej ery.

Reklama

Jeśli potrzebne są serwery Windows, to zdecydowanie do nas — automatyczna instalacja Windows Server 2012, 2016 lub 2019 w planach z 2 GB RAM lub więcej, licencja już w cenie. W sumie od 21 zł dziennie! A mamy też wieczne serwery 😉

Dlaczego WSL 2 jest 13 razy szybszy niż WSL: wrażenia z Insider Preview

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster