Phoronix網站發布了關于Windows、WSL和Linux的性能基準測試結果。測試的內容包括網絡性能、I/O性能、編程語言運行性能和圖形處理性能等。
測試的系統版本為:
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顯卡
所有操作系統和WSL實例均在其現成的配置中進行了測試,所有這些基準測試都是使用Phoronix Test Suite進行的。
下面看看測試結果:
WSL過去存在瓶頸的地方是I/O性能,通過觀察測試數據我們能看到,到了WSL2,它在I/O性能上要優于WSL,這或許要歸功于WSL2的Hyper-V VM。不過對于某些SQLite測試,WSL2的表現并不算太好。
有意思的是,WSL1/WSL2的性能表現在某些SQLite測試中甚至超過Windows本身(有可能是由于SQLite上游的fsync行為在不同平臺中表現不一樣,也可能是因為某些fsync操作未在WSL下進行同樣的處理)。
雖然WSL2提供了比WSL更好的I/O性能,但仍有改進的空間。
通過微軟自帶的Ethr基準測試進行評估,在網絡性能方面,與Ubuntu相比,WSL甚至Windows 10本身仍具有相當大的優勢。
在完全由CPU決定的工作負載中,WSL/WSL2的性能表現良好,和裸機Linux不相上下。
上圖的性能測試結果顯示,除了在測試HTTP時,WSL下的Golang性能基本比Windows更好。
上面的數據顯示,在使用相同OpenJDK版本的條件下,Windows 10 19008似乎也比Windows 10 18362提供了更好的Java性能。而對于WSL,結果好壞參半。
上面的數據是使用英特爾OSpray渲染器進行測試的結果,可以看到WSL1比WSL2快。
這里使用英特爾Embree測試的數據也很有趣,可以看到,在使用官方Windows二進制文件的情況下,Windows 10 19008的性能要比18362的更好,WSL1的性能也比WSL2好,不過它們都要比Ubuntu遜色一籌。
這里使用了英特爾SVT視頻編碼器進行測試,可以看到,屬于Windows 10 Insider預覽版的Windows 10 19008表現不錯,和Ubuntu、WSL/WSL2不相上下。
從這個測試可以看到,Windows 10 Build 19008的性能有了較大的改進,而WSL的性能則沒有太大的變化。
與Windows相比,LuxCoreRender在WSL/WSL2中的性能更好。WSL的性能也比Ubuntu稍好。
Himeno屬于比較重量級的工作負載,可以看到,在這個測試下,裸機Ubuntu的性能仍然是最好的。
與較早的18362版本相比,Windows 10 19008顯示出了另一項重大改進——解壓文件的性能。
這里測試的是代碼編譯性能,由于I/O存在瓶頸,在WSL上進行代碼編譯仍然很慢,而WSL2由于采用了傳統的VM類型方法,因此它的速度有了一定的提升。
從上圖可以看出,在WSL中構建LLVM比在Windows中構建LLVM要快。
上面這些結果顯示了不同的測試條件下各自的表現,這里不再贅述了,各位可根據自己的需要進行查看。
使用Blender進行測試時,WSL/WSL2可與Linux的性能相媲美,而Windows 10 18362的表現則稍有落后。
盡管執行了各種各樣的測試,但是如果對在七個不同操作系統上成功運行的所有測試取幾何平均值,可以得出這樣的結論:
Windows 10 Build 19008的總體性能要比Build 18362版本好,而WSL的性能并沒有太大變化
WSL2比WSL的性能確實稍好一些,這是因為在I/O或網絡活動繁重的工作負載的情況下前者性能要好得多
在這種特殊的Core i9 7960X場景下,運行Ubuntu Linux的速度總體上比最快的Windows配置快27%
有興趣的朋友可查看這份更詳細的OpenBenchmarking.org結果文件,以深入研究這些Windows / WSL / Linux基準測試內容。