Performance

March 13, 2026 ยท View on GitHub

We benchmarked vmnet-helper with 3 VMs types (vfkit, krunkit, qemu) in all operation modes supported by the vmnet framework (shared, bridged, host), in 3 directions (host to vm, vm to host, vm to vm), on 2 machines (iMac M3, MacBook Pro M2 Max).

See the performance directory for full test results and the development guide for running your own benchmarks.

Comparing to socket_vmnet

Comparing to socket_vmnet with lima using VZ and qemu vm types, vmnet-helper with vfkit is up to 10 times faster, and vmnet-helper with qemu is up to 3 times faster. See similar tools for a detailed comparison.

vmnet-helper vs socket_vmnet - shared network vmnet-helper vs socket_vmnet - bridged network

Tested on iMac M3 and macOS 15.6.1.

Comparing different VMs

Performance depends on VM type and transfer direction. vfkit performs better in all tests. qemu is up to 5 times slower than vfkit.

vmnet-helper drivers - shared network vmnet-helper drivers - bridged network

Tested on iMac M3 and macOS 26.3.0.

Offloading

On macOS 26.2 and later, krunkit provides close to native performance when using offloading. On earlier macOS versions we see dramatically reduced performance in host-to-vm use case.

Tested on iMac M3.

macOS 26.3

vmnet-helper offloading - shared network vmnet-helper offloading - bridged network

macOS 15.6

vmnet-helper offloading - shared network vmnet-helper offloading - bridged network

Native vmnet via vmnet-broker

On macOS 26 and later, VMs using the Virtualization framework can use vmnet natively via vmnet-broker, without vmnet-helper in the data path. Native vmnet is up to 2 times faster compared to krunkit with offloading, and up to 9 times faster compared to krunkit without offloading. Only shared network is supported in native vmnet mode.

vmnet-helper vs vmnet-broker - shared network

Tested on iMac M3 and macOS 26.3.0.