Чаму WSL 2 у 13 разоў хутчэй, чым WSL: уражанні ад Insider Preview

Microsoft рыхтуе рэліз Windows May 2020 Update (20H1). Гэта абнаўленне будзе ўтрымоўваць некалькі прыемных паляпшэнняў карыстацкага інтэрфейсу, але для распрацоўнікаў і іншых прысвечаных важней тое, што ў новай версіі Windows з'явіцца WSL 2 (Windows Subsystem for Linux). Гэта актуальная інфармацыя для тых, хто жадаў перайсці на АС Windows, але ніяк не вырашалася.

Dave Rupert усталяваў WSL 2 на свой 13-цалевы наўтбук Surface і першыя вынікі
прыемна здзівілі:

Чаму WSL 2 у 13 разоў хутчэй, чым WSL: уражанні ад Insider Preview

Другая версія WSL у 13 разоў хутчэй першай! Не кожны дзень вы бясплатна атрымліваеце 13-разовае павышэнне прадукцыйнасці. Я адчуў дрыжыкі і прапусціў скупую мужчынскую слязу, калі ўпершыню ўбачыў гэтыя вынікі. Чаму? Ну, у асноўным я аплакваў той страчаны час, які назапасіўся за 5 гадоў працы з першай версіяй WSL.

І гэта не проста лічбы. У WSL 2 усталёўка npm, зборка, пакаванне, прагляд файлаў, перазагрузка гарачых модуляў, запуск сервераў — амаль усё, што я штодня выкарыстоўваю як вэб-распрацоўнік, стала працаваць значна хутчэй. Па адчуваннях гэта падобна на тое, як калі б я зноў сеў за Mac (ці, магчыма, лепш, бо Apple у апошнія некалькі гадоў радыкальна абмяжоўвае свае працэсары ў карысць павелічэння часу аўтаномнай працы).

Адкуль такі спрыт?

Як яны дабіліся 13-кратнага росту прадукцыйнасці? Раней, калі я задумаўся аб пераходзе на Mac, я таксама накідваў нейкія варыянты, праўда, асабліва на ўзроўні дапушчэнняў. Справа ў тым, што запіс на дыск і сістэмныя выклікі Linux абыходзіліся дастаткова дорага (з пункту гледжання часавых выдаткаў) з-за архітэктуры першай версіі WSL. І зараз адгадайце, на што ў значнай ступені абапіраецца сучасная вэб-распрацоўка? Так. Калі вы збіраеце разам кучу залежнасцяў і фрагментаў кода пры кожным захаванні файла, вы сапраўды выконваеце шмат аперацый запісу на дыск і сістэмных выклікаў для дзясяткаў тысяч файлаў.

Як толькі вы даведаецеся пра гэта на сваім горкім досведзе, пасля гэтага цяжка ўсё забыцца. Вы пачынаеце паступова ўпадаць у дэпрэсію, калі ўяўляеце, наколькі павольна і маркотна ўсё гэта працуе. І вы разумееце, што ваш свет больш не будзе ранейшым і інструмент, які вам падабаўся, больш не здаецца карысным і эфектыўным.

На шчасце, каманда WSL пайшла на рызыку і поўнасцю перапісала падсістэму. У WSL 2 гэтыя праблемы былі вырашаныя: распрацоўнікі ўбудавалі ў Windows уласную віртуальную машыну Linux і даручылі файлавыя аперацыі сеткаваму дыску VHD (Virtual Hardware Disk). Кампраміс заключаецца ў тым, што пры першым запуску вы павінны патраціць час, каб раскруціць віртуальную машыну. Гэты час вылічаецца мілісекундамі і асабіста для мяне ледзь прыкметна. Я, напрыклад, чакаю з задавальненнем, бо ведаю, дзеля чаго ўсё гэта.

Дзе зараз будуць жыць файлы?

Каб у поўнай меры скарыстацца перавагамі WSL 2, вы захочаце перамясціць файлы праекту з /mnt/c/Users/<імя карыстальніка>/ у новы хатні каталог ~/Linux на новым VHD. Вы можаце ўбачыць змесціва гэтага дыска ў сетцы, перайшоўшы ў \\ wsl $ \ <імя дыстрыбутыва> \ <імя карыстальніка> \ home або увёўшы каманду explorer.exe з вашай абалонкі Bash.

Гэта сапраўдная файлавая сістэма Linux, і яна дзейнічае і паводзіць сябе так, як вы чакаеце. Я стварыў тэчку ~/projects, у якой жывуць усе мае рэпазітары праектаў і затым я адкрываю праекты ў Visual Studio Code, выкарыстоўваючы каманду code.

А што з VS Code?

Ўстаноўка WSL-пашырэння для выдаленай распрацоўкі на VS Code (VS Code Remote - WSL) з'яўляецца апошнім этапам, якія забяспечваюць камфортную працу распрацоўніка. Пашырэнне дазваляе VS Code выконваць усе свае аперацыі (каманды git, кансолі, усталёўку пашырэнняў і гэтак далей), узаемадзейнічаючы з віртуальнай машынай Linux напроста. Гэта робіць увесь працэс вельмі аўтаномным.

Спачатку я быў крыху засмучаны з-за неабходнасці ўстаноўкі гэтага пашырэння, таму што мне трэба было пераўсталяваць тое, што я ўсталяваў і наладзіў да гэтага. Але зараз я ацаніў гэта па заслугах, таму што з'явіўся спецыяльны пласт візуалізацыі які паказвае, у якім асяроддзі я працую і дзе жывуць мае файлы. Гэта зрабіла працэс вэб-распрацоўкі на Windows больш празрыстым і нашмат спрасціла выкарыстанне карыстацкага інтэрфейсу для кіравання версіямі ў VS Code.

Слёзы шчасця і надзея на светлую будучыню

Мяне не пакідае адчуванне радасці пры думцы аб наступным рэлізе Windows May 2020 Update і аптымізаванай падсістэмы Linux, якая проста лётае на маім магутным гульнявым кампутары. Магчыма, ёсць яшчэ некаторыя праблемы, пра якія я пакуль не ведаю, але пасля Insider Прагляд я зрабіў выснову, што каманда WSL вырашыла большасць праблем.

Акрамя таго, не варта забываць, што Windows Terminal таксама добры! Яны як быццам пачулі мае скаргі на адсутнасць укладак, JSON Settings і запатрабаванне "адчуваць сябе стромкім" у Windows. Гэта па-ранейшаму дзіўна гучыць, але Windows Terminal – мабыць, лепшы тэрмінал для Windows.

Прапрацаваўшы ў Windows 5 гадоў, я шматлікае перажыў: няздольнасць усталяваць Rails, дужанне з штучнымі абалонкамі Cygwin. Я сядзеў у першым шэрагу на той самай канферэнцыі Build 2016, калі кампанія Microsoft анансавала першую версію WSL. І тады ў мяне з'явілася надзея, што вэб-распрацоўка на Windows нарэшце выйдзе на новы ўзровень. Без сумневу, WSL 2 – самае вялікае паляпшэнне, якое я бачыў з тых часоў, і, падобна, мы на парозе новай эры.

На правах рэкламы

Калі для працы неабходны Windows-серверы, то вам адназначна да нас - аўтаматычная ўстаноўка Windows Server 2012, 2016 ці 2019 на тарыфах з 2 ГБ RAM або вышэй, ліцэнзія ўжо ўваходзіць у кошт. Усяго ад 21 руб у суткі! А яшчэ ў нас ёсць вечныя серверы 😉

Чаму WSL 2 у 13 разоў хутчэй, чым WSL: уражанні ад Insider Preview

Крыніца: habr.com

Дадаць каментар