Kiri Benchmarks

Numbers, with their labels on.

The container lifecycle is measured on all three engines, on one machine, with the fairness notes beside it. Kiri's other container operations are still targets: design budgets we hold ourselves to, not results. Every figure says which it is.

Kiri, measured Kiri, target (not yet measured) Docker Desktop, measured OrbStack, measured
Loading bench/results.json…

Container lifecycle, three engines

alpine → true → exit → removed. p50 of 30 runs, p99 alongside. Milliseconds on a linear scale, so bar length is the time; lower is better.

    Other container operations

    OrbStack measured against Kiri targets. Milliseconds, lower is better, one linear scale. Docker Desktop has not been measured for these yet.

    Engine memory

    Megabytes resident, lower is better. Docker Desktop has not been measured for these yet.

    Where container-start time goes

    The kernel work underneath a container start, measured inside a Linux 7.2 VM.

    Kernel primitive timings in milliseconds
    OperationTimeRelative time

    Method and machine

    Machine
    Apple Silicon Mac
    OrbStack
    OrbStack with the Docker CLI
    Last updated
    2026
    Status key
    measured = measured on this machine; target = design budget

    Both runtimes are timed on the same machine. Kiri's lifecycle and memory targets will be replaced with measurements, on that machine, once the daemon runs containers end to end. Until then the chart draws them hatched and labels them "target".

    This page renders straight from bench/results.json. Change the file and the page changes with it.

    All figures as a table

    Every benchmark figure
    RuntimeMetricValueStatus

    Want the short version? The race and the headline numbers are on the home page.

    Download Kiri 0.1.0