科技媒體 Phoronix 對 Windows 10 May 2020 中 WSL 和 WSL 2 的性能進行了測試,參與測試的發行版為 Ubuntu 20.04 on WSL/WSL2 ,以及 Ubuntu 20.04 LTS,均被安裝在除 Windows 之外的電腦裸機中。
本次測試使用的電腦硬件設備是 Intel Core i9 10900K (Comet Lake) CPU,搭配 2 x 8GB DDR4-3200 的內存、三星 970 EVO 250GB NVMe SSD 硬盤、技嘉 Z490 AORUS MASTER 和 Radeon RX 5700 XT 顯卡。具體的測試環境如下:
通過 Phoronix 測試套件,共進行了幾十項不同的基準測試。測試結果如下:
從上圖的測試結果可以看到,在進行繁重的 CPU 工作負載時,如機器學習 LC0 國際象棋基準測試和 NAMD 測試等,WSL2 綜合表現是最好的。在 NAMD 測試中,WSL 與 WSL2 的性能一樣,比 Ubuntu 還稍快一些。在 LC0 測試中,WSL2 性能更快。尤其是 LC0 測試中使用 Eigen 后端的場景,WSL2 的性能甚至略微領先于 Ubuntu 本身——可能是由于 Windows 提供了更好的電源管理行為或類似行為。
上圖是測試一些 Java 工作負載的結果,這里明顯看出了 WSL2 的性能比 WSL 更好。測試使用的是 OpenJDK,性能最好的是裸機版本的 Ubuntu 20.04。
在使用部分應用程序進行測試時,罕見地看到 WSL 的性能比 WSL2 更好。不過從這項測試的總體結果來看,WSL/WSL2 的性能也非常接近裸機版本 Ubuntu 20.04 的性能,三者相差無幾。
上面這幾項測試也看不出三者之間的性能差距,因為整體來看都非常不錯。但如果細看的話,裸機版本的 Ubuntu 20.04 還是略占上風。
這里的測試結果顯示,使用另外一些程序測試時,WSL2 的性能確實略微超過了 Ubuntu 20.04 本身。
上圖的測試結果反映了在 I/O 操作方面的性能。這正是 WSL 的短板,其性能較差的地方剛好包括 I/O 操作,剛問世時這個缺點曾被不少用戶詬病。到了 WSL2,它采用了更類似于虛擬機的方式,使得 I/O 吞吐量大大提升。WSL2 的代碼編譯性能甚至與 Ubuntu 20.04 相差無幾。
對于可能因為某種原因而不得不使用 Windows 10 的用戶來說,WSL2 總體上至少在每個工作負載中都表現得 "足夠好”。即使是在各種內核 micro-benchmarks 測試中,WSL2 也基本上與 Ubuntu 20.04 及其 Linux 5.4 內核持平。
上圖反映的是 socket activity 和上下文切換方面的性能,WSL2 由于架構的改變,其性能比 WSL 和 Ubuntu 20.04 都好很多。
上圖反映了在大多數純 CPU bound 的工作負載場景中,比如渲染器,在 WSL/WSL2 上都表現得十分出色。
Facebook 的 RocksDB 數據庫在 WSL2 和 Ubuntu 20.04 LTS 之間的性能表現相似,而在 WSL 中,糟糕的 I/O 性能導致了糟糕的結果。
即使是在 WSL2 中使用 Git,也比 WSL 有了巨大的速度提升。
本次測試總共包含 69 項測試。Ubuntu 20.04 LTS 贏得了 60% 的測試,這就意味著出現了一個有趣的結果,40% 的測試中 WSL/WSL2 比 Ubuntu 20.04 LTS 本身更快,盡管通常是以微弱的優勢勝出。
當將三者的 69 項基準測試結果的幾何平均值進行比較時,WSL2 比 WSL 的性能高出大約 21%,而 Ubuntu 20.04 的速度僅快 8%。WSL2 由于解決了 WSL 的主要瓶頸,擁有了更快的 I/O。更值得關注的是,WSL2 的性能已非常接近 Ubuntu 本身的性能。通過 OpenBenchmarking.org 查看全部 69 項基準測試。