-
WSL2 vs WSL3 Benchmarks: Performance, Memory, and Syscall Scaling
With the release of the WSL 3.x stack, Microsoft bumped the default virtualization runtime and advanced the shipped guest kernel from the 6.6 LTS branch up to 6.18.
WSL upgrades often claim generalized performance gains, but marketing bullet points rarely translate directly to developer workloads. To see what actually changed under the hood, I ran side-by-side benchmark suites comparing WSL 2.6.3.0 (Linux kernel
6.6.87.2) against WSL 3.0.2.0 (Linux kernel6.18.40.1). -
The Security Tax in WSL3: Benchmarking Kernel Mitigations Against WSL 2.x
In our earlier look at The Security Tax in WSL 2, we showed how kernel-level mitigations for CPU speculative execution vulnerabilities (Spectre, Meltdown, Retbleed) imposed a steep penalty on developer tasks. On a real-world Go backend compilation workload, turning off mitigations slashed kernel system time by 45.7% and delivered a 31.7% drop in wall-clock compile time.
With the rollout of WSL v3.0.2 (running Linux kernel
6.18.40.1-microsoft-standard-WSL2), how does the security tax hold up today? Does modern hypervisor paravirtualization eliminate the overhead, or are developers still paying an invisible performance toll on syscall-heavy workloads? -
Taming GCE Memory Tax: Disabling OS Login and OS Config on Small Instances
Google Compute Engine’s
e2-microinstances are a staple of the GCP Free Tier, offering 2 vCPUs and roughly 1 GB of RAM (969 MiB usable). They are ideal for lightweight bastions, cron runners, and small test beds. However, if you run memory-sensitive workloads—such as Go builds, package extractions, or continuous process forks—you may have experienced intermittent, baffling SSH connection timeouts and unresponsive terminals.The root cause is rarely your application alone. By default, GCE provisions a suite of Google guest daemons that consume a disproportionate share of resident memory on small VMs, creating an environment primed for SSH exhaustion.
-
The "Security Tax": Reclaiming 30% Performance in WSL 2
For engineers running lean environments on WSL 2, every megabyte of RAM and every CPU cycle counts. Many developers are unaware of the significant “performance tax” imposed by kernel-level mitigations for vulnerabilities like Spectre and Meltdown.
In a recent set of benchmarks on a Go-based backend project, disabling these mitigations resulted in a 31.7% reduction in wall-clock compilation time. Here is how you can audit your system and decide if the trade-off is right for your workflow.
-
Getting to Yes -- As Quickly as Possible
There was a great discussion a year ago about how fast gnu’s version of “yes” is. If you’re unfamiliar,
yesoutputsyindefinitely.yes |head -5 y y y y yThe key takeaway was that
writeis expensive and writing page-aligned buffers is much faster. The is true across languages, so let’s see how to do it properly in go.If you’re shocked or impressed by the results, let’s see you do it in your language – post your results in the comments.