微软Win10May2020中WSL与WSL2的性能比较

  外媒Phoronix对Windows10May2020中WSL和WSL2的性能进行了测试,参与测试的发行版为Ubuntu20.04onWSL/WSL2,以及Ubuntu20.04LTS,均被安装在除Windows之外的电脑裸机中。

  本次测试使用的电脑硬件设备是IntelCorei910900K(CometLake)CPU,搭配2x8GBDDR4-3200的内存、三星970EVO250GBNVMeSSD硬盘、技嘉Z490AORUSMASTER和RadeonRX5700XT显卡。具体的测试环境如下:

  通过Phoronix测试套件,共进行了几十项不同的基准测试。测试结果如下:

  从上图的测试结果可以看到,在进行繁重的CPU工作负载时,如机器学习LC0国际象棋基准测试和NAMD测试等,WSL2综合表现是最好的。在LC0测试中,WSL2性能更快。尤其是LC0测试中使用Eigen后端的场景,WSL2的性能甚至略微领先于Ubuntu本身——可能是由于Windows提供了更好的电源管理行为或类似行为。

  上图是测试一些Java工作负载的结果,这里明显看出了WSL2的性能比WSL更好。测试使用的是OpenJDK,性能最好的是裸机版本的Ubuntu20.04。

  在使用部分应用程序进行测试时,罕见地看到WSL的性能比WSL2更好。不过从这项测试的总体结果来看,WSL/WSL2的性能也非常接近裸机版本Ubuntu20.04的性能,三者相差无几。

  上面这几项测试也看不出三者之间的性能差距,因为整体来看都非常不错。但如果细看的话,裸机版本的Ubuntu20.04还是略占上风。

  这里的测试结果显示,使用另外一些程序测试时,WSL2的性能确实略微超过了Ubuntu20.04本身。

  上图的测试结果反映了在I/O操作方面的性能。这正是WSL的短板,其性能较差的地方刚好包括I/O操作,刚问世时这个缺点曾被不少用户诟病。到了WSL2,它采用了更类似于虚拟机的方式,使得I/O吞吐量大大提升。WSL2的代码编译性能甚至与Ubuntu20.04相差无几。

  对于可能因为某种原因而不得不使用Windows10的用户来说,WSL2总体上至少在每个工作负载中都表现得"足够好”。即使是在各种内核micro-benchmarks测试中,WSL2也基本上与Ubuntu20.04及其Linux5.4内核持平。

  上图反映的是socketactivity和上下文切换方面的性能,WSL2由于架构的改变,其性能比WSL和Ubuntu20.04都好很多。

  上图反映了在大多数纯CPUbound的工作负载场景中,比如渲染器,在WSL/WSL2上都表现得十分出色。

  Facebook的RocksDB数据库在WSL2和Ubuntu20.04LTS之间的性能表现相似,而在WSL中,糟糕的I/O性能导致了糟糕的结果。

  即使是在WSL2中使用Git,也比WSL有了巨大的速度提升。

  本次测试总共包含69项测试。Ubuntu20.04LTS赢得了60%的测试,这就意味着出现了一个有趣的结果,40%的测试中WSL/WSL2比Ubuntu20.04LTS本身更快,尽管通常是以微弱的优势胜出。

  当将三者的69项基准测试结果的几何平均值进行比较时,WSL2比WSL的性能高出大约21%,而Ubuntu20.04的速度仅快8%。WSL2由于解决了WSL的主要瓶颈,拥有了更快的I/O。更值得关注的是,WSL2的性能已非常接近Ubuntu本身的性能。通过yuhou.cn查看全部69项基准测试。

  详情查看https://www.yuhou.cn/