Windows、WSL与Linux的性能对比

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 进行的。

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

下面看看测试结果:

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

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

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

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比

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

Windows、WSL与Linux的性能对比