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

Firma Microsoft przygotowuje wydanie aktualizacji systemu Windows z maja 2020 r. (20H1). Ta aktualizacja będzie zawierać kilka ciekawych ulepszeń interfejsu użytkownika, ale dla programistów i innych osób w nowej wersji systemu Windows ważniejsze jest to, że WSL 2 (Podsystem Windows dla systemu Linux). To istotna informacja dla tych, którzy chcieli przejść na system operacyjny Windows, ale nie odważyli się.

Dave Rupert zainstalował WSL 2 na swoim 13-calowym laptopie Surface i pierwsze rezultaty
Mile zaskoczeni:

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 można uzyskać 13-krotny wzrost wydajności za darmo. Poczułem dreszcze i uroniłem męską łzę, kiedy po raz pierwszy zobaczyłem te wyniki. Dlaczego? Cóż, głównie opłakiwałem stracony czas, który zgromadziłem przez 5 lat pracy z pierwszą wersją WSL.

I to nie są tylko liczby. W WSL 2, instalacja npm, budowanie, pakowanie, przeglądanie plików, przeładowywanie gorących modułów, uruchamianie serwerów - prawie wszystko, czego używam na co dzień jako programista WWW, stało się znacznie szybsze. Czuję się, jakbym znów korzystał z Maca (a może lepiej, skoro Apple w ciągu ostatnich kilku lat radykalnie ograniczał swoje procesory na rzecz lepszej żywotności baterii).

Skąd taka zwinność?

Jak osiągnęli 13-krotny wzrost produktywności? Wcześniej, gdy myślałem o przejściu na Maca, również odrzucałem pewne opcje, choć wyłącznie na poziomie założeń. Faktem jest, że zapis na dysk i wywołania systemowe Linuksa były dość drogie (pod względem czasu) ze względu na architekturę pierwszej wersji WSL. A teraz zgadnij, na czym w dużej mierze opiera się współczesne tworzenie stron internetowych? Tak. Kiedy za każdym razem, gdy zapisujesz plik, składasz w całość zbiór zależności i fragmentów kodu, w rzeczywistości dokonujesz wielu zapisów na dysku i wywołań systemowych na dziesiątkach tysięcy plików.

Gdy nauczysz się tego na własnej skórze, trudno o tym zapomnieć. Zaczynasz stopniowo popadać w depresję, gdy wyobrażasz sobie, jak powoli i smutno to wszystko działa. I zdajesz sobie sprawę, że Twój świat nie będzie już taki sam, a narzędzie, które Ci się podobało, nie wydaje się już przydatne ani skuteczne.

Na szczęście zespół WSL zaryzykował i całkowicie przepisał podsystem. W wersji WSL 2 problemy te zostały rozwiązane: programiści wbudowali własną maszynę wirtualną z systemem Linux w systemie Windows i delegowali operacje na plikach na dysk sieciowy VHD (Virtual Hardware Disk). Kompromis polega na tym, że przy pierwszym uruchomieniu trzeba poświęcić czas na uruchomienie maszyny wirtualnej. Czas ten mierzony jest w milisekundach i dla mnie osobiście jest ledwo zauważalny. Ja na przykład czekam z przyjemnością, bo wiem, po co to wszystko.

Gdzie będą teraz znajdować się pliki?

Aby w pełni wykorzystać możliwości WSL 2, będziesz chciał przenieść pliki projektu z /mnt/c/Users/<nazwa użytkownika>/ do nowego katalogu domowego ~/Linux na nowym dysku VHD. Możesz zobaczyć zawartość tego dysku online, przechodząc do \\wsl$\<nazwa dystrybucji>\<nazwa użytkownika>\home lub wpisując polecenie explorer.exe z powłoki Bash.

To jest prawdziwy system plików Linuksa, który działa i zachowuje się tak, jak można się spodziewać. Stworzyłem folder ~/projekty, w którym znajdują się wszystkie moje repozytoria projektów, a następnie otwieram projekty w Visual Studio Code za pomocą polecenia code.

A co z kodem VS?

Instalacja WSLekspansja dla zdalnego programowania na VS Code (VS Code Remote - WSL) to ostatni etap zapewniający deweloperowi komfortową pracę. Rozszerzenie umożliwia VS Code wykonywanie wszystkich operacji (polecenia git, konsole, instalowanie rozszerzeń itp.) poprzez bezpośrednią interakcję z maszyną wirtualną z systemem Linux. Dzięki temu cały proces jest bardzo autonomiczny.

Na początku byłem trochę zdenerwowany koniecznością zainstalowania tego rozszerzenia, ponieważ musiałem ponownie zainstalować to, co wcześniej zainstalowałem i skonfigurowałem. Ale teraz to doceniam, bo istnieje specjalna warstwa wizualizacji, która pokazuje, w jakim środowisku pracuję i gdzie znajdują się moje pliki. Dzięki temu proces tworzenia stron internetowych w systemie Windows stał się bardziej przejrzysty i znacznie ułatwiono korzystanie z interfejsu kontroli wersji w VS Code.

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

Nie mogę powstrzymać się od ekscytacji na myśl o kolejnej wersji aktualizacji systemu Windows z maja 2020 r. i zoptymalizowanym podsystemie Linux, który po prostu lata po moim potężnym komputerze do gier. Mogą być jeszcze jakieś inne problemy, o których jeszcze nie wiem, ale później Insider Preview Doszedłem do wniosku, że zespół WSL rozwiązał większość problemów.

Poza tym nie zapominaj o tym Terminal Windows też dobrze! To było tak, jakby usłyszeli moje skargi na brak zakładek, ustawienia JSON i potrzebę „czucia się cool” w Windowsie. Nadal brzmi to dziwnie, ale Windows Terminal jest prawdopodobnie najlepszym terminalem dla systemu Windows.

Pracując przez 5 lat nad Windowsem, przeszedłem wiele: niemożność zainstalowania Railsów, zmaganie się ze sztucznymi powłokami Cygwina. Siedziałem w pierwszym rzędzie na tej samej konferencji Build 2016, kiedy Microsoft ogłosił pierwszą wersję WSL. A potem zacząłem mieć nadzieję, że tworzenie stron internetowych w systemie Windows w końcu osiągnie nowy poziom. Bez wątpienia WSL 2 to największy postęp, jaki widziałem od tego czasu i wygląda na to, że jesteśmy u progu nowej ery.

O prawach reklamy

Jeśli praca tego wymaga Serwery Windows, to zdecydowanie do nas — automatyczna instalacja systemu Windows Server 2012, 2016 lub 2019 na planach z 2 GB RAM lub więcej, licencja jest już wliczona w cenę. Całkowity od 21 rubli dziennie! Mamy też wieczne serwery 😉

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

Źródło: www.habr.com

Dodaj komentarz