Categories
科技報導

[多图]Windows、WSL 與 Linux 的性能對比



Phoronix 網站發布了關於 Windows、WSL 和 Linux 的性能基準測試結果。測試的內容包括網絡性能、I/O 性能、編程語言運行性能和圖形處理性能等。所有操作系統和 WSL 實例均在其現成的配置中進行了測試,所有這些基準測試都是使用 Phoronix Test Suite 進行的。

測試的系統版本為:

  • Ubuntu 18.04.3 LTS

  • Ubuntu 19.10

  • Windows 10 18362

  • Windows 10 18362 WSL

  • Windows 10 19008 WSL

  • Windows 10 19008 WSL2

  • Windows 10 19008

所有的 Windows/Linux WSL 性能基準測試均基於以下硬件環境:

  • MSI X299 SLI PLUS 主板

  • Intel Core i9 7960X CPU

  • 16GB 內存

  • 256GB Intel NVMe SSD

  • 技嘉 Radeon RX 550 顯卡

[多图]Windows、WSL 與 Linux 的性能對比 1

[多图]Windows、WSL 與 Linux 的性能對比 2

[多图]Windows、WSL 與 Linux 的性能對比 3

下面看看測試結果:

[多图]Windows、WSL 與 Linux 的性能對比 4

[多图]Windows、WSL 與 Linux 的性能對比 5

[多图]Windows、WSL 與 Linux 的性能對比 6

WSL 過去存在瓶頸的地方是 I/O 性能,通過觀察測試數據我們能看到,到了 WSL2,它在 I/O 性能上要優於 WSL,這或許要歸功於 WSL2 的 Hyper-V VM。不過對於某些 SQLite 測試,WSL2 的表現並不算太好。

有意思的是,WSL1/WSL2 的性能表現在某些SQLite 測試中甚至超過Windows 本身(有可能是由於SQLite 上游的fsync 行為在不同平台中表現不一樣,也可能是因為某些fsync 操作未在WSL 下進行同樣的處理)。

[多图]Windows、WSL 與 Linux 的性能對比 7

雖然 WSL2 提供了比 WSL 更好的 I/O 性能,但仍有改進的空間。

[多图]Windows、WSL 與 Linux 的性能對比 8

[多图]Windows、WSL 與 Linux 的性能對比 9

[多图]Windows、WSL 與 Linux 的性能對比 10

[多图]Windows、WSL 與 Linux 的性能對比 11

通過微軟自帶的 Ethr 基準測試進行評估,在網絡性能方面,與 Ubuntu 相比,WSL 甚至 Windows 10 本身仍具有相當大的優勢。

[多图]Windows、WSL 與 Linux 的性能對比 12

[多图]Windows、WSL 與 Linux 的性能對比 13

在完全由 CPU 決定的工作負載中,WSL/WSL2 的性能表現良好,和裸機 Linux 不相上下。

[多图]Windows、WSL 與 Linux 的性能對比 14

[多图]Windows、WSL 與 Linux 的性能對比 15

[多图]Windows、WSL 與 Linux 的性能對比 16

上圖的性能測試結果顯示,除了在測試 HTTP 時,WSL 下的 Golang 性能基本比 Windows 更好。

[多图]Windows、WSL 與 Linux 的性能對比 17

[多图]Windows、WSL 與 Linux 的性能對比 18

[多图]Windows、WSL 與 Linux 的性能對比 19

[多图]Windows、WSL 與 Linux 的性能對比 20

[多图]Windows、WSL 與 Linux 的性能對比 21

[多图]Windows、WSL 與 Linux 的性能對比 22

上面的數據顯示,在使用相同 OpenJDK 版本的條件下,Windows 10 19008 似乎也比 Windows 10 18362 提供了更好的 Java 性能。而對於 WSL,結果好壞參半。

[多图]Windows、WSL 與 Linux 的性能對比 23

[多图]Windows、WSL 與 Linux 的性能對比 24

[多图]Windows、WSL 與 Linux 的性能對比 25

上面的數據是使用英特爾 OSpray 渲染器進行測試的結果,可以看到 WSL1 比 WSL2 快。

[多图]Windows、WSL 與 Linux 的性能對比 26

[多图]Windows、WSL 與 Linux 的性能對比 27

[多图]Windows、WSL 與 Linux 的性能對比 28

這裡使用英特爾Embree 測試的數據也很有趣,可以看到,在使用官方Windows 二進製文件的情況下,Windows 10 19008 的性能要比18362 的更好,WSL1 的性能也比WSL2 好,不過它們都要比Ubuntu 遜色一籌。

[多图]Windows、WSL 與 Linux 的性能對比 29

[多图]Windows、WSL 與 Linux 的性能對比 30

[多图]Windows、WSL 與 Linux 的性能對比 31

這裡使用了英特爾 SVT 視頻編碼器進行測試,可以看到,屬於 Windows 10 Insider 預覽版的 Windows 10 19008 表現不錯,和 Ubuntu、WSL/WSL2 不相上下。

[多图]Windows、WSL 與 Linux 的性能對比 32

從這個測試可以看到,Windows 10 Build 19008 的性能有了較大的改進,而 WSL 的性能則沒有太大的變化。

[多图]Windows、WSL 與 Linux 的性能對比 33

[多图]Windows、WSL 與 Linux 的性能對比 34

與 Windows 相比,LuxCoreRender在 WSL/WSL2 中的性能更好。 WSL 的性能也比 Ubuntu 稍好。

[多图]Windows、WSL 與 Linux 的性能對比 35

Himeno 屬於比較重量級的工作負載,可以看到,在這個測試下,裸機 Ubuntu 的性能仍然是最好的。

[多图]Windows、WSL 與 Linux 的性能對比 36

與較早的 18362 版本相比,Windows 10 19008 顯示出了另一項重大改進 —— 解壓文件的性能。

[多图]Windows、WSL 與 Linux 的性能對比 37

這裡測試的是代碼編譯性能,由於 I/O 存在瓶頸,在 WSL 上進行代碼編譯仍然很慢,而 WSL2 由於採用了傳統的 VM 類型方法,因此它的速度有了一定的提升。

[多图]Windows、WSL 與 Linux 的性能對比 38

從上圖可以看出,在 WSL 中構建 LLVM 比在 Windows 中構建 LLVM 要快。

[多图]Windows、WSL 與 Linux 的性能對比 39

[多图]Windows、WSL 與 Linux 的性能對比 40

[多图]Windows、WSL 與 Linux 的性能對比 41

[多图]Windows、WSL 與 Linux 的性能對比 42

上面這些結果顯示了不同的測試條件下各自的表現,這裡不再贅述了,各位可根據自己的需要進行查看。

[多图]Windows、WSL 與 Linux 的性能對比 43

使用 Blender 進行測試時,WSL/WSL2 可與 Linux 的性能相媲美,而 Windows 10 18362 的表現則稍有落後。

[多图]Windows、WSL 與 Linux 的性能對比 44

儘管執行了各種各樣的測試,但是如果對在七個不同操作系統上成功運行的所有測試取幾何平均值,可以得出這樣的結論:

  • Windows 10 Build 19008 的總體性能要比 Build 18362 版本好,而 WSL 的性能並沒有太大變化

  • WSL2 比 WSL 的性能確實稍好一些,這是因為在  I/O 或網絡活動繁重的工作負載的情況下前者性能要好得多

  • 在這種特殊的 Core i9 7960X 場景下,運行 Ubuntu Linux 的速度總體上比最快的 Windows 配置快 27%

有興趣的朋友可查看這份更詳細的 OpenBenchmarking.org 結果文件,以深入研究這些 Windows / WSL / Linux 基準測試內容。