為什麼WSL2效能會比WSL1強?

時間 2021-05-05 21:09:53

1樓:

微軟Docs自己給的原理實現圖中,WSL1的Lxss.sys充滿了輕量級虛擬機器的味道。

在IO的時候進行system call的時候需要通過翻譯(沒有硬體加速)-> 變成NT Kernel的 System call->執行。沒有足夠公開資訊只能靠猜,按照結構看更像是乙個type 2 VM。更糟糕的是別的VM有各種優化、各種硬體加速,WSL1按照實際使用情況下至少肯定是沒有硬體加速。

因此可以把它近似成乙個優化全關的虛擬機器。

基於type 1 Hyper-v的WSL 2:

IO隨便怎麼都會更好一點,畢竟最壞也是乙個type 1的虛擬機器。

到這裡你差不多能用type 2 vs type 1虛擬機器的差異去理解WSL1 vs WSL2的差異。

因為訪問按照虛擬機器network檔案共享走,額外增加overhead。這個設計是我覺得WSL2最奇怪也最糟糕的設計。

你問我好不好,我肯定說好,因為沒有人比M$更懂Linux。如果你用VScode+ZSH+Windows Terminal,WSL2是真的香。

為什麼不用Hyper-v/VMware?整合度不在乙個梯度上,4k屏/多塊屏+Hyper-v/VMware問題真不少,多出來的UI又沒辦法用GPU,走虛擬機器方案不如直接原生Linux+虛擬win,至少皮衣黃教主開恩,虛擬的win近期還有機會用上vGPU打點遊戲。

為什麼不WSL1?除非是WSL2限制無法實現的情況(如複雜的網路結構需求)、非要強行讀寫NTFS大量檔案,多數情況下WSL2只會做的更好。

2樓:劉俊是

個人測試純計算程式 wsl1的cpu效能強於wsl2 wsl2有10%左右損失 wsl1接近原生

帶io的 wsl2比wsl1強很多

3樓:

---2021-03-11 更新---

補充兩個使用體驗注意項:

由於WSL2基於Hyper-V技術,因此你的電腦上如果安裝了老版本的VMware Workstation等虛擬化產品會無法使用,有衝突

另外,WSL2是真的虛擬化,因此網路訪問與使用會和WSL1不一樣,完全是虛擬化的方式。

--- 原回答---

別的先不說,光說微軟那麼多工程師開發那麼久,將WSL1公升級到WSL2,肯定會想辦法做些提公升吧。如果WSL2效能下降那還真有問題。

個人不理解為何虛擬機會比翻譯快

不是虛擬機器比翻譯快,而是以前虛擬機器全靠翻譯,靠翻譯機制才實現虛擬機器。後來推出的CPU、作業系統均支援虛擬化技術,導致虛擬機器vCPU效能大幅提公升。所以問題變成,硬體虛擬化為何大幅提公升效能,可以理解為原先通過軟體轉換的指令,現在通過硬體能直接執行,效能自然提高很多。

磁碟IO效能大幅提公升的原因。另外,文章中提到磁碟IO效能的大幅提公升,但是沒有說原因。WSL1涉及大量檔案類操作時的磁碟效能非常差,我推測是由於微軟推出WSL1時來不及對NTFS檔案系統進行優化,而WSL2進行優化後表現好很多。

我們在原生機器上訪問磁碟檔案,首先要訪問NTFS的MFT,可以理解為檔案分配表,即索引一樣的東西。該區域處於固定位置,而且方便進行系統快取,所以訪問大量檔案效能不錯。如果未對VHD中類似區域和內容的訪問進行優化,效能肯定不行。

WSL2效能損耗僅有2%, 典型的標題黨風格。高票回答中已經做了說明。

雖然WSL2有了大幅提公升,個人還是喜歡直接用VMware的虛擬機器,哈哈更直接更原始,支援的作業系統更廣。用好轉殖與快照功能,少了很多折騰。

當然筆記本記憶體必須大,沒有16G起步,你會非常痛苦。

說不定未來WSL3的出現能讓我改變使用習慣。

4樓:

虛擬機器比翻譯快是很好理解的。第一,虛擬機器利用了硬體進行加速,非特權指令除了記憶體訪問以外應該幾乎沒有損失。而翻譯是軟體實現,軟體翻譯損失了實打實的cycle。

第二,hyper V是微軟很成熟的虛擬化平台,本身也優化得比較好。畢竟面向了生產環境。

wsl2能否固定ip位址

戰士 暫時微軟都沒有支援,現有的方法是寫乙個啟動指令碼,去手動進行設定。wsl github上的問題單 已知的一種解決辦法 WSL2固定ip位址 manbu cy的部落格 CSDN部落格問題單裡也有很多其他的解決辦法可以參考一下 68號島的珂學家 我用了很久,每次都是連上wsl檢視ip,再修改xse...

蘋果手機為什麼效能會比同期的安卓旗艦手機高那麼多?

Tech 看了這麼多回答,都沒說到點上。唉,臣是老實人 蘋果A系列的效能可謂是拳打高通,手撕麒麟,腳踢MTK。神一般的存在,然而事實真的這樣嗎?首先,A處理器一直有個小弟,M系列協處理器,他倆的分工可清楚了,A處理器只封裝效能模組 CPU,GPU,APU,NPU等 M協處理器用於封裝功能模組 基帶,...

為什麼有些孩子會比較害羞,有些孩子會比較開放是什麼導致了這些差異?

燕掌門AngelWu 我認為有以下原因 1 乙個孩子顯得膽怯害羞,有可能是新環境沒有安全感,也可能是由於生命早期的家庭氛圍和撫養模式。乙個出生在開朗健談的家庭的孩子,也往往很開放,反之亦然。根據鮑爾比 依戀 中觀點,乙個個體在生命的早期如何被其他家庭成員對待和撫養,也將深刻決定著ta與別人的相處模式...