测试的系统版本为: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 显卡

309ae80b7fc288050b9396d557fc9a11.png

65630565bcd209de22429aa145c33833.png

621b5688454277b30e86fbf0fe3cff2c.png

下面看看测试结果:

9b7671811cbe0a2f91238c01f4116109.png

873d78ddf2f47a1c9071afac1af7409f.png

4256bf3233e8ca5381bd95e05751aed9.png

WSL 过去存在瓶颈的地方是 I/O 性能,通过观察测试数据我们能看到,到了 WSL2,它在 I/O 性能上要优于 WSL,这或许要归功于 WSL2 的 Hyper-V VM。不过对于某些 SQLite 测试,WSL2 的表现并不算太好。

有意思的是,WSL1/WSL2 的性能表现在某些 SQLite 测试中甚至超过 Windows 本身(有可能是由于 SQLite 上游的 fsync 行为在不同平台中表现不一样,也可能是因为某些 fsync 操作未在 WSL 下进行同样的处理)。

c1b2577e2621d2ef381efcbb0d649878.png

虽然 WSL2 提供了比 WSL 更好的 I/O 性能,但仍有改进的空间。

15d55e1f204dfaebe7e7def051aa3851.png

14896c9be15a1958fb38a755417a9e7e.png

38e39c5d81148dc2bdae04165cfcad77.png

c647e9cf512979830077be7dde111d2d.png

通过微软自带的 Ethr 基准测试进行评估,在网络性能方面,与 Ubuntu 相比,WSL 甚至 Windows 10 本身仍具有相当大的优势。

894cc468289805e60f5c57ee206354c3.png

a1bc92559f37e2b1a1292e4ea4d74bed.png

在完全由 CPU 决定的工作负载中,WSL/WSL2 的性能表现良好,和裸机 Linux 不相上下。

41fb9c2ccb13207021e7a724b0c638d4.png

8e29ed8e5621f7041b882f23fdfb7113.png

c6cad592aac17ce2802e12ce994e7ab9.png

上图的性能测试结果显示,除了在测试 HTTP 时,WSL 下的 Golang 性能基本比 Windows 更好。

9c1ca47d004f2b07f98db66f8b679bff.png

d9c1155a52ca7695612af72cce436de3.png

19a528d2b1d43639fc83573c02fb8b4f.png

3eae1eb79c99b8e9ec2ef1f08ac62c2b.png

7e641e13f4f15d0723babb4e3c5e17a5.png

7ac3dc2d6c4efda54a2c6177bc308e6a.png

上面的数据显示,在使用相同 OpenJDK 版本的条件下,Windows 10 19008 似乎也比 Windows 10 18362 提供了更好的 Java 性能。而对于 WSL,结果好坏参半。

457292e2e62ee9cee5baf533a3122754.png

aa85f4edfce00528b211ae7ca9da1727.png

0f64bae611b6f9a9ce94e55abb825db6.png

上面的数据是使用英特尔 OSpray 渲染器进行测试的结果,可以看到 WSL1 比 WSL2 快。

30db417a9e7bba2f34d356faadeb2765.png

7e4b1722ec1bbb64c89cae2e5a855b44.png

d424fa6ddd16ca6dbc48be0cdaa46048.png

这里使用英特尔 Embree 测试的数据也很有趣,可以看到,在使用官方 Windows 二进制文件的情况下,Windows 10 19008 的性能要比 18362 的更好,WSL1 的性能也比 WSL2 好,不过它们都要比 Ubuntu 逊色一筹。

872628a8cab6cc9c431e172519980b08.png

7ffdcfacebb3d3e6f95cc23aa62b4845.png

e4c800311b5e453e46064c567016301e.png

这里使用了英特尔 SVT 视频编码器进行测试,可以看到,属于 Windows 10 Insider 预览版的 Windows 10 19008 表现不错,和 Ubuntu、WSL/WSL2 不相上下。

a60e5f9c29902e5c01c2862cdf0a1249.png

从这个测试可以看到,Windows 10 Build 19008 的性能有了较大的改进,而 WSL 的性能则没有太大的变化。

20dcf4ccf0d850b14a07559625125eb2.png

0bf9c92b56921661001e4f13c7a5867b.png

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

57f2b91300ec3fe7a641e0273eea8981.png

Himeno 属于比较重量级的工作负载,可以看到,在这个测试下,裸机 Ubuntu 的性能仍然是最好的。

5017fff673c853cc9d319883e05e5e4a.png

与较早的 18362 版本相比,Windows 10 19008 显示出了另一项重大改进 —— 解压文件的性能。

759a7a01ea62d26881851cb0662d3ed4.png

这里测试的是代码编译性能,由于 I/O 存在瓶颈,在 WSL 上进行代码编译仍然很慢,而 WSL2 由于采用了传统的 VM 类型方法,因此它的速度有了一定的提升。

823e2669153c6203dd450e9a0995da6b.png

从上图可以看出,在 WSL 中构建 LLVM 比在 Windows 中构建 LLVM 要快。

3c38caf78bf67e249ea3f80ef5401b98.png

81a3f5c5628268bb97c41d9f8f074d76.png

357e852297533f0cb4d43d2cddac649f.png

261e7f4846c765926517cbd8acf82850.png

上面这些结果显示了不同的测试条件下各自的表现,这里不再赘述了,各位可根据自己的需要进行查看。

1c403cedfc021b1b236591cce453a179.png

使用 Blender 进行测试时,WSL/WSL2 可与 Linux 的性能相媲美,而 Windows 10 18362 的表现则稍有落后。

2d82f7b65c0ad4e131d810648dadf965.png

尽管执行了各种各样的测试,但是如果对在七个不同操作系统上成功运行的所有测试取几何平均值,可以得出这样的结论:Windows 10 Build 19008 的总体性能要比 Build 18362 版本好,而 WSL 的性能并没有太大变化

WSL2 比 WSL 的性能确实稍好一些,这是因为在  I/O 或网络活动繁重的工作负载的情况下前者性能要好得多

在这种特殊的 Core i9 7960X 场景下,运行 Ubuntu Linux 的速度总体上比最快的 Windows 配置快 27%

有兴趣的朋友可查看这份更详细的 OpenBenchmarking.org 结果文件,以深入研究这些 Windows / WSL / Linux 基准测试内容。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐