Microsoft 的 WSL 3.x 版本更新了默认虚拟化运行时,并将来宾 Linux 内核从 6.6 LTS 系列提升到版本 6.18。为隔离影响,Tony Metzidis 在 HP ProDesk 400 G4 桌面迷你机(Intel Core i5‑8500T,6C/6T @ 2.10 GHz 基频,16 GB DDR4)上,使用 Alpine Linux 3.23.0 根文件系统作为来宾操作系统(已安装 Go 1.27.1),在启用了 Virtualization‑Based Security 的 Windows 11 Pro 环境下,通过 .wslconfig 将 WSL 限制为两个固定 vCPU 和 4 GB 内存,进行了并排基准测试。
微基准测量显示,WSL3 使顺序内存带宽提升最高达 61.35%,从 WSL2 的 7.84 GB/s 提升到 WSL3 的 12.64 GB/s,作者将此归因于 page_reporting.page_reporting_order=5 设置,该设置在动态内存回收期间降低了 hypervisor trap 频率。上下文切换延迟从 20.64 µs 下降到 18.32 µs(‑11.25%),调度器管道 ping‑pong 吞吐量从 48,445 提升到 54,589 ops/s(+12.68%),Hackbench 消息测试(20 组,800 任务)的完成时间从 14.51 s 缩短至 13.05 s(‑10.06%)。基本 getppid() 系统调用吞吐量提升约 4%。
在实际工作负载中,对 GoReleaser 代码库进行编译(编译器缓存为空,模块缓存已预热),墙钟时间从 191.27 s 降至 183.80 s(‑3.91%),用户 CPU 时间从 298.99 s 降至 289.38 s(‑3.21%),内核时间从 57.39 s 降至 48.22 s(‑15.98%)。由于编译主要受用户空间的词法分析、AST 构建、类型检查和 SSA 优化支配——这些占总循环的超过 80%——整体速度受两核 CPU 频率的限制,因此计算密集型任务主要表现为内核开销的降低,而内存密集型或 IPC 密集型工作负载则最受益于带宽和延迟的提升。
