Virtualization bakeoff · measured 2026-07-25

Apple’s new Container machine is fast to start. Native macOS is still far faster to render.

On an M2 Max, Apple’s WWDC26 Container machine was the quickest of three Linux virtualization paths. Its median HeavyMotion render took 95.018 seconds—3.09× the native macOS time of 30.753 seconds.

36 measured renders3 trials per cell4-way concurrencyOne M2 Max host
Abstract comparison of one direct native rendering lane with three longer virtualized lanes

The decision in one paragraph

Use Container machine for persistent Linux development environments and compatibility work. For RenderMac’s Remotion and FFmpeg services, keep the fixed execution path native on macOS: it retains Apple’s media stack and avoided a roughly threefold render-time penalty in this test.

3.09×Container-machine HeavyMotion time vs native

Median render time

Lower is better. Each number is the median of three measured renders after one uncounted warm-up. All outputs were nonempty MP4 files.

Median wall-clock seconds
RuntimeExecution modelLight
150 frames
Medium
300 frames
Heavy
450 frames
Heavy vs native
Native macOSDirect host process3.4807.07230.7531.00×
Colima Docker / VZContainer in persistent VZ VM11.15222.30397.6683.18×
Apple container runOne lightweight VM per container10.86422.41098.1683.19×
Apple Container machinePersistent lightweight VM10.09421.88295.0183.09×
Linux-only reading: Container machine’s HeavyMotion median was 2.7% faster than Colima VZ and 3.2% faster than Apple’s per-container VM. That is a real but modest difference beside the native-versus-Linux gap.

Every measured trial

These are the individual wall-clock readings behind the medians. Times are seconds; σ is sample standard deviation.

All 36 measured render times
RuntimeCompositionRun 1Run 2Run 3MedianMeanσ
Native macOS
NativeLightMotion3.3973.5183.4803.4803.4650.062
NativeMediumMotion7.0727.0668.1627.0727.4330.631
NativeHeavyMotion30.75331.75830.74330.75331.0840.583
Colima Docker / Virtualization.framework
Colima VZLightMotion11.13411.15211.20811.15211.1640.039
Colima VZMediumMotion22.47022.30322.27722.30322.3500.105
Colima VZHeavyMotion97.66896.89199.31697.66897.9581.239
Apple container run
Apple containerLightMotion10.71111.04710.86410.86410.8740.168
Apple containerMediumMotion22.30123.06522.41022.41022.5920.413
Apple containerHeavyMotion99.05598.16898.12498.16898.4490.525
Apple WWDC26 Container machine
Container machineLightMotion11.52710.0949.82510.09410.4820.915
Container machineMediumMotion22.78121.83321.88221.88222.1660.534
Container machineHeavyMotion97.64494.57595.01895.01895.7461.659

Startup and suite overhead

The new persistent machine starts quickly. For these 30–100 second render jobs, the render path still dominated end-to-end time.

Seconds, measured once per suite
RuntimeBundleWarm-upMeasured suiteOuter wallLaunch overheadCold restart
Native macOS0.5653.473131.368131.6030.235
Colima VZ2.65511.189409.316409.6870.371
Apple container2.09710.638409.544410.8391.295
Container machine2.20711.003399.407399.7620.3550.728

Container machine’s first local image create-and-boot took 1.179 seconds. “Launch overhead” is outer process wall-clock minus the suite’s own timer; the Colima and Container-machine VM were already running for that measurement.

Test design and controls

Host

Apple M2 Max, 96 GB RAM, 12 logical host CPUs, macOS 26.5.1.

Linux allocation

4 vCPUs, 8 GB RAM. Colima used VZ and VirtioFS. Apple container was 1.1.0.

Render workload

Remotion 4.0.381, 1920×1080, 30 fps; Light 150, Medium 300, Heavy 450 frames.

Run policy

Concurrency fixed at 4. One uncounted LightMotion warm-up, then three iterations per composition.

Linux image

One shared ARM64 Debian/Chromium OCI image across all three virtualized paths.

Validation

Each command had to complete and produce a nonempty MP4. Bundle output was reused within each runtime.

What is—and is not—held constant?

All runtimes used the same Remotion project, composition settings, explicit concurrency, trial count, and logical Linux resource allocation. Native macOS necessarily used Remotion’s macOS browser build, while Linux used Debian Chromium. Native-versus-Linux therefore measures the combined OS, browser, and VM execution path. The three Linux rows are the cleaner runtime-to-runtime comparison.

What did Apple announce?

Apple introduced Container machine at WWDC26 as a persistent Linux environment based on an OCI image and a lightweight VM. It is distinct from container run, where each Linux application container gets its own lightweight VM. Apple publishes the Container machine documentation in the open-source container project.

Media acceleration probe

The guest did not expose the Mac’s media encoders

Host FFmpeg advertised h264_videotoolbox, hevc_videotoolbox, and prores_videotoolbox. The identical Linux image under all three virtualized paths advertised no VideoToolbox encoders and had no /dev/dri device.

0VideoToolbox encoders visible in the tested Linux guests

This is a measured capability result for this configuration, not a claim about every future Containerization or Virtualization.framework API.

Limits and interpretation

Claim boundary: this result supports “native macOS was roughly three times faster than these three four-vCPU Linux paths for this Remotion suite.” It does not support “native beats every VM, container, cloud size, or distributed render system.”

Raw data and reproduction

The summary contains host metadata, every measurement, output byte counts, derived medians, means, ranges, standard deviations, and native slowdown ratios. The per-runtime files are smaller downloads of the original emitted results.

Complete summary JSONAll runtimes + derived statistics Native macOS JSONWarm-up + 9 measured renders Colima VZ JSONDocker in persistent VZ VM Apple container JSONPer-container lightweight VM Container machine JSONPersistent lightweight VM
Reproduction commands
./research/apple-silicon-idle-render-network/benchmarks/prepare_virtualization_benchmark_image.sh

python3 research/apple-silicon-idle-render-network/benchmarks/run_virtualization_render_benchmark.py \
  --iterations 3 \
  --compositions LightMotion,MediumMotion,HeavyMotion

The repository also retains the raw logs and human-readable report under research/apple-silicon-idle-render-network/benchmarks/results/virtualization-full-2026-07-25/.

Browse every benchmarkRead the methodologyRemotion on RenderMac