Does Enabling WSL2 Affect Performance of Windows 10 Applications

Introduction

The "Windows Subsystem for Linux", WSL, is one of the most interesting projects that Microsoft has ever implemented (in my opinion). Version 2 of WSL (WSL2) is even using a Linux kernel put together by Microsoft. You could probably call this "Microsoft Linux" without too much stretch of the imagination. This kernel replaces the kernel used in the Linux distributions that are installed into WSL2.

WSL2 offers improved performance over version 1 by providing more direct access to the host hardware drivers. Network and storage system performance in particular is greatly improved. Recent "Insider Dev Channel" builds of Win10 even allows access to the Windows NVIDIA display driver for GPU computing applications for WSL2 Linux applications! The performance improvements with WSL2 are largely because this version is running as a privileged virtual machine on to of MS Hyper-V. This means that at least low level support for the Hyper-V virtualization layer needs to be enabled to use it. In particular, the Windows feature "VirtualMachinePlatform" must be enabled for WSL2.

So what? Why would enabling "VirtualMachinePlatform" for WSL2 support be a concern?

Here's why;

When you enable "VirtualMachinePlatform" you have to reboot… After the reboot your Windows system is now a privileged virtual machine, VM-0, running on top of Hyper-V. Hyper-V is a "type 1" hypervisor. That means it is running as a virtualization layer directly on the bare-metal hardware. (like VMware ESXi for example) Your "host" Windows OS is running in a special Virtual Machine on top of that. This "could" potentially have negative effects on application performance on the host.

Note: "VirtualMachinePlatform" is not "full" Hyper-V. To completely enable Hyper-V, so that you could create and manage VM's, you also need to enable the feature called, …you guessed it, "Hyper-V".

This leads to the question…

Does enabling WSL2 have a negative impact on Windows 10 applications caused by the need to enable “VirtualMachinePlatform”?

essentially NO, but read on to see what we actually looked at with our tests.

I have been using a WSL2 a lot when I am working on a Windows 10 system. I find it makes development work MUCH more pleasant. I connect to it from the new Windows Terminal application and from VScode using an extension specifically for that purpose. … I like it!

I don't notice any negative effects on "native" application performance. However, I was curious to see if "not noticing any effect" would hold up to actually application benchmark testing.

My "Puget Systems Labs" colleague William George graciously agreed to run our Windows test/benchmark suite on a Windows 10 system with and without WSL2 enabled and active.

Test platform

Test Platform
CPU AMD Ryzen 9 3900X
CPU Cooler Noctua NH-U12S
Motherboard Gigabyte X570 AORUS ULTRA
RAM 4x DDR4-2933 16GB (64GB total)
Video Card NVIDIA GeForce RTX 2080 Ti 11GB
Hard Drive Samsung 960 Pro 1TB
Software Windows 10 Pro 64-bit (1909 & 2004)

Results

The following table lists "summary results" for the various benchmarks that were run. (There were 367 individual benchmark "Result Types" in the original spreadsheet!) There were 2 test runs, both without WSL2 and VirtualMachinePlatform enabled (and active). The finial performance evaluation is the percent difference of the "with" and "without" result averages.

Note: The testing runs do not "use" WSL2. It's just that WSL2 and VirtualMachinePlatform is enabled for comparison.

Benchmark Application Result Type Win10 #1 Win10 #2 Win10 w/
WSL2 #1
Win10 w/
WSL2 #2
Average Difference
WSL2 enabled
PugetBench for Photoshop 0.9 (Photoshop 21.1.3) Overall Score 995 993 999 999 +0.50%
PugetBench for Lightroom Classic 0.91 (LR Classic 9.2) Overall Score 1122 1118 1116.5 1121.5 -0.09%
PugetBench for Premiere Pro 0.9 (Premiere Pro 14.2.0) Standard Overall Score 862 874 861 859 -0.93%
PugetBench for Premiere Pro 0.9 (Premiere Pro 14.2.0) Standard Export Score 96.1 98 95 95.2 -2.03%
PugetBench for Premiere Pro 0.9 (Premiere Pro 14.2.0) Standard Live Playback Score 76.3 76.8 77.1 76.6 +0.39%
PugetBench for After Effects 0.9 (After Effects 17.1×72) Overall Score 1056 1064 985 1082 -2.53%
PugetBench for AERender 0.9 (After Effects 17.1×72) Overall Score 1024 1007 999 985 -2.34%
PugetBench for DaVinci Resolve V0.8 BETA (DR 16.0.0.60) 4K Overall Score 1118 1118 1111 1120 -0.22%
GeekBench3 GeekBench Score Overall Multi Core 55310 55377 55487 55480 +0.25%
NeatBench (Neat Image 8.5.0 – Neat Video 5.1.0) Max CPU and GPU Result 39.9 39.4 39.8 39.3 -0.25%
NeatBench (Neat Image 8.5.0 – Neat Video 5.1.0) Max Peak CPU Only Result 25.6 25.5 25.6 25.6 +0.20%
CineBench R15.038 CPU Render Multi Core 3118.4 3118.2 3122.3 3132.3 +0.29%
Cinebench R20.060 CPU Render CB Score 7058.77 7060.13 7074.5 7072.27 +0.20%
OctaneBench 4.02.1 Total score 311.9 310.6 311.2 310.2 -0.18%
OctaneBench 2019 Total Score RTX On 1020 1020.8 1016.5 1017 -0.36%
OctaneBench 2019 Total Score RTX Off 309.1 309 309.2 309.4 +0.08%
V-Ray Benchmark 1.0.8 CPU 47 47 47 47 +0.00%
V-Ray Benchmark 1.0.8 GPU 49 49 48 48 -2.06%
V-Ray Next Benchmark 4.10.06 CPU Mode All CPUs 19744 19379 19627 19553 +0.15%
Pix4D 4.5.6 Rock Model Total 264 265 265 263 -0.19%
Pix4D 4.5.6 School Map Total 736 737 732 730 -0.75%
Redshift 2.6.41 Render Time Age of Vultures Scene 489 497 489 491 -0.61%
RealityCapture 1.0.3.10403 Rock Model Total 179.5 179.7 180 181 +0.50%
RealityCapture 1.0.3.10403 School Map Total 416.7 417.4 421.7 415.9 +0.42%

Notes:

  • The results with (+) are where the test with WSL2 enabled was faster and (-) where the test was slower.
  • You can see from the testing that there was negligible impact on performance.
  • There are a few places where there was a performance drop around 2%. That could be a "real" performance drop or just normal variation. However, all of the results greater than 2% were negative.

Conclusion

Again, I'd like to thank William George for running the test suite!

The testing results should ease worries about native application performance degradation caused by enabling WSL2. Even if there is a small drop in performance for some applications it is worth the trade-off in my opinion. However, we did not do any direct gaming performance testing! It is not because we are not gamers, most of us are, including myself, we just don't do that kind of testing at Puget Systems. If any objective gaming testing conducted in a similar way to what we did in this post then put a link in the comments.

Happy computing! –dbk @dbkinghorn — Best wishes and stay safe!


CTA Image
Looking for a GPU Accelerated Workstation?

Puget Systems offers a range of powerful and reliable systems that are tailor-made for your unique workflow.

Configure a System!
CTA Image
Labs Consultation Service

Our Labs team is available to provide in-depth hardware recommendations based on your workflow.

Find Out More!

Why Choose Puget Systems?

gears icon

Built Specifically for You

Rather than getting a generic workstation, our systems are designed around your unique workflow and are optimized for the work you do every day.

people icon

We’re Here, Give Us a Call!

We make sure our representatives are as accessible as possible, by phone and email. At Puget Systems, you can actually talk to a real person!

delivery icon

Fast Build Times

By keeping inventory of our most popular parts, and maintaining a short supply line to parts we need, we are able to offer an industry-leading ship time.

repair icon

Lifetime Labor & Tech Support

Even when your parts warranty expires, we continue to answer your questions and even fix your computer with no labor costs.
Click here for even more reasons!