⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 oschina.net/news/112125/ 「局长」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

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 基准测试内容。

文章目录