Rust Cranelift JIT demo: source-to-result benchmark against LLVM and Cranelift AOT, with raw measurements
Run ordinary Rust through a JIT
A small demo of rustc's experimental Cranelift JIT mode, plus the benchmark behind the graphic. It runs a normal .rs file: rustc parses and checks it, then Cranelift generates native machine code in memory and executes it. No standalone executable is emitted in JIT mode.
This reproduction targets Apple Silicon macOS. It was measured on an Apple M5 Max. The benchmark uses macOS library paths and system tools; it is not a cross-platform harness.
Try it
Install Git, Rust via rustup, and the Xcode command-line tools. Node.js is needed only for the benchmark. Download or clone all files in this gist into one directory, then run these commands from that directory:
git clone https://github.com/rust-lang/rustc_codegen_cranelift.git backend git -C backend checkout 2bc05d45078dbee6495c008cbd5d1dc24edff53f (cd backend && ./y.sh build --sysroot clif) sh run.sh
The pinned backend repository selects nightly-2026-08-24 and the required rustup components through its rust-toolchain.toml. The build also creates a matching Cranelift standard library.
The command inside run.sh is:
./backend/dist/rustc-clif \ --edition 2024 \ -Cllvm-args=jit-mode \ -Cprefer-dynamic \ -Copt-level=1 \ demo.rs
It prints a JIT notice, followed by:
fib(25) = 75025
rustc-clif is a wrapper selecting Cranelift as rustc's code-generation backend. -Cllvm-args=jit-mode switches this backend into JIT mode despite the flag's LLVM name. -Cprefer-dynamic selects shared libraries so the JIT can use the precompiled standard library. Normal type and borrow checking still happen. This does not start from cached bytecode or a persistent VM.
Reproduce the comparison
node bench.mjs --report # display the original recorded measurements node bench.mjs # run fresh trials; replaces benchmark.json
Original 30-run medians, warm cache, opt-level=1:
| Mode | Compile + link | Source to result | Repeated prebuilt launch + execution |
|---|---|---|---|
| LLVM AOT | 78.4 ms | 104.1 ms | 3.1 ms |
| Cranelift AOT | 72.8 ms | 105.8 ms | 3.3 ms |
| Cranelift JIT | Included in total | 33.5 ms | No executable emitted |
JIT had 3.11x lower source-to-result latency than LLVM AOT and 3.16x lower than Cranelift AOT on this tiny program. These are not runtime throughput speedups. Already-built binaries launch and execute faster.
A later full run of the packaged harness measured 157.8 ms for LLVM AOT, 151.0 ms for Cranelift AOT, and 56.8 ms for JIT: 2.78x and 2.66x ratios. Those raw results are in benchmark-validation.json. Timings and ratios vary between runs; the graphic records the original batch, not a universal speedup.
The controlled comparison uses the same Rust frontend, source, edition, opt-level, panic=abort, and Cranelift-built shared standard library for all three cases, including LLVM. LLVM AOT here therefore is not a completely default rustc installation. Cranelift and LLVM also perform different optimizations at the same opt-level.
For an additional ordinary LLVM reference, stock in the JSON uses the bundled LLVM standard library and default static linkage. Its original median was 117.2 ms from source to result, measured in a separate 30-trial batch. This additional reference is not used for the graphic's ratios.
The benchmark:
- Starts a fresh compiler process for each sample, with no incremental cache.
- Excludes the one-time compiler, backend, and standard-library builds for all modes.
- Uses three warmups per mode, then 30 trials in balanced permutations of the three primary modes. The stock LLVM batch is separate.
- Measures wall time around direct child processes, excluding shell and rustup-wrapper overhead. AOT total includes compile/link plus first launch and execution of the freshly built binary. JIT includes the Rust frontend, code generation, and in-process execution.
- Measures repeated prebuilt launches separately, using unchanged binaries, three warmups, and 30 alternating trials per backend. These are substantially faster than first launches after compilation on this Mac.
- Requires exit code 0, exactly the expected stdout, and empty stderr on every measured process. It preserves every timing sample plus quartiles and metadata.
Individual phase medians need not add to the median total. This small program has substantial fixed compilation/link/launch overhead; the result should not be generalized to larger crates, Cargo builds, incremental edits, or application throughput. The JIT is experimental, and dependencies complicate its use.
benchmark.json contains the original raw measurements. Only local directory prefixes were replaced with placeholders before publication. The published harness changes the backend location to ./backend/dist, prints the detected machine name, and rejects platforms outside the tested Apple Silicon macOS setup. The timed operations and workload are unchanged.
Upstream: rustc_codegen_cranelift and JIT usage at the pinned commit.
| import { spawnSync } from 'node:child_process'; | |
| import { readFileSync, writeFileSync, mkdirSync, rmSync } from 'node:fs'; | |
| import { createHash } from 'node:crypto'; | |
| import { fileURLToPath } from 'node:url'; | |
| const cwd = fileURLToPath(new URL('.', import.meta.url)); | |
| const resultsFile = new URL('benchmark.json', import.meta.url); | |
| function report(data) { | |
| const ms = n => `${n.toFixed(1)} ms`; | |
| const s = data.summary; | |
| return [ | |
| 'fib(25) = 75025 / all outputs verified', | |
| '', | |
| 'SOURCE -> RESULT (compile + execute)', | |
| `LLVM AOT ${ms(s.llvm.total.median).padStart(9)}`, | |
| `Cranelift AOT ${ms(s.clif.total.median).padStart(9)}`, | |
| `Cranelift JIT ${ms(s.jit.total.median).padStart(9)}`, | |
| '', | |
| `JIT: ${(s.llvm.total.median / s.jit.total.median).toFixed(2)}x faster than LLVM AOT`, | |
| ` ${(s.clif.total.median / s.jit.total.median).toFixed(2)}x faster than Cranelift AOT`, | |
| '', | |
| 'PREBUILT BINARY (launch + execute)', | |
| `LLVM AOT ${ms(data.prebuiltSummary.llvm.median).padStart(9)}`, | |
| `Cranelift AOT ${ms(data.prebuiltSummary.clif.median).padStart(9)}`, | |
| '', | |
| 'JIT timing includes parsing + checking + codegen.', | |
| `30-run medians / warm cache / ${data.machine} / opt=1`, | |
| 'Same rustc + std. This tiny demo only.', | |
| ].join('\n'); | |
| } | |
| if (process.argv.includes('--report')) { | |
| console.log(report(JSON.parse(readFileSync(resultsFile, 'utf8')))); | |
| process.exit(0); | |
| } | |
| if (process.platform !== 'darwin' || process.arch !== 'arm64') { | |
| throw new Error('This benchmark harness targets Apple Silicon macOS. See README for scope.'); | |
| } | |
| const rustc = spawnSync('rustup', ['which', '--toolchain', 'nightly-2026-08-24', 'rustc'], { encoding: 'utf8' }); | |
| if (rustc.status !== 0) throw new Error(rustc.stderr); | |
| const compiler = rustc.stdout.trim(); | |
| const sysroot = fileURLToPath(new URL('./backend/dist', import.meta.url)); | |
| const backend = `${sysroot}/lib/librustc_codegen_cranelift.dylib`; | |
| const env = { ...process.env, DYLD_LIBRARY_PATH: `${sysroot}/lib/rustlib/aarch64-apple-darwin/lib` }; | |
| const common = ['--edition=2024', '-Copt-level=1', '-Cpanic=abort', '-Cprefer-dynamic', '--sysroot', sysroot, 'demo.rs']; | |
| const commands = { | |
| llvm: [...common, '-o', 'bench-bin/llvm'], | |
| clif: [...common, `-Zcodegen-backend=${backend}`, '-o', 'bench-bin/clif'], | |
| jit: [...common, `-Zcodegen-backend=${backend}`, '-Cllvm-args=jit-mode'], | |
| stock: ['--edition=2024', '-Copt-level=1', '-Cpanic=abort', 'demo.rs', '-o', 'bench-bin/stock'], | |
| }; | |
| const expected = 'fib(25) = 75025\n'; | |
| const banner = 'Rustc codegen cranelift will JIT run the executable, because -Cllvm-args=mode=jit was passed\n'; | |
| function invoke(command, args, stdout) { | |
| const start = process.hrtime.bigint(); | |
| const r = spawnSync(command, args, { cwd, env, encoding: 'utf8', timeout: 30000 }); | |
| const elapsed = Number(process.hrtime.bigint() - start) / 1e6; | |
| if (r.error || r.status !== 0 || r.stdout !== stdout || r.stderr !== '') { | |
| throw new Error(`Unexpected result: ${JSON.stringify({ command, args, ...r })}`); | |
| } | |
| return elapsed; | |
| } | |
| function trial(kind) { | |
| rmSync(new URL(`bench-bin/${kind}`, import.meta.url), { force: true }); | |
| const build = invoke(compiler, commands[kind], kind === 'jit' ? banner + expected : ''); | |
| if (kind === 'jit') return { total: build }; | |
| const run = invoke(`${cwd}bench-bin/${kind}`, [], expected); | |
| return { build, run, total: build + run }; | |
| } | |
| function stats(values) { | |
| const sorted = [...values].sort((a, b) => a - b); | |
| const quantile = p => { const i = (sorted.length - 1) * p, lo = Math.floor(i); return sorted[lo] + (sorted[Math.ceil(i)] - sorted[lo]) * (i - lo); }; | |
| return { median: quantile(.5), p25: quantile(.25), p75: quantile(.75), min: sorted[0], max: sorted.at(-1) }; | |
| } | |
| mkdirSync(new URL('bench-bin/', import.meta.url), { recursive: true }); | |
| const metadata = { | |
| hypothesis: 'Cranelift JIT reduces source-to-result latency versus LLVM AOT and Cranelift AOT on demo.rs by avoiding external object linking and executable launch. Prebuilt launch is measured separately.', | |
| recordedAt: new Date().toISOString(), | |
| rustc: spawnSync(compiler, ['-Vv'], { encoding: 'utf8' }).stdout, | |
| machine: spawnSync('sysctl', ['-n', 'machdep.cpu.brand_string'], { encoding: 'utf8' }).stdout.trim(), | |
| os: spawnSync('sw_vers', [], { encoding: 'utf8' }).stdout, | |
| backendCommit: spawnSync('git', ['-C', `${sysroot}/..`, 'rev-parse', 'HEAD'], { encoding: 'utf8' }).stdout.trim(), | |
| source: readFileSync(new URL('demo.rs', import.meta.url), 'utf8'), | |
| sourceSha256: createHash('sha256').update(readFileSync(new URL('demo.rs', import.meta.url))).digest('hex'), | |
| compiler, commands, dynamicLibraryPath: env.DYLD_LIBRARY_PATH, | |
| methodology: 'Direct child process wall time, no shell or rustup wrapper in timed region. No incremental cache. Output removed before each compile. Precompiled common Cranelift std and dynamic linking for the controlled comparison. 3 warmups each; 30 trials per mode in balanced permutations. AOT total = compilation/link + fresh process launch/execution. JIT total = fresh rustc frontend + codegen + in-process execution. All outputs and statuses checked. Stock LLVM control uses its bundled std and default static linkage. Prebuilt binary results use the final unchanged artifacts, 3 warmups then 30 alternating trials, separate from first launches after compilation. No cold cache or runtime throughput claims.', | |
| }; | |
| writeFileSync(new URL('benchmark-plan.json', import.meta.url), JSON.stringify(metadata, null, 2)); | |
| console.log('Benchmarking demo.rs / 30 trials per mode'); | |
| const warmups = []; | |
| for (let i = 0; i < 3; i++) for (const kind of ['llvm', 'clif', 'jit', 'stock']) warmups.push({ kind, ...trial(kind) }); | |
| const orders = [['llvm','clif','jit'], ['clif','jit','llvm'], ['jit','llvm','clif'], ['jit','clif','llvm'], ['llvm','jit','clif'], ['clif','llvm','jit']]; | |
| const samples = []; | |
| for (let round = 0; round < 30; round++) { | |
| for (const kind of orders[round % orders.length]) samples.push({ round, kind, ...trial(kind) }); | |
| } | |
| // Additional ordinary LLVM setup, recorded separately rather than mixed into the controlled comparison. | |
| for (let round = 0; round < 30; round++) samples.push({ round, kind: 'stock', ...trial('stock') }); | |
| const summary = {}; | |
| for (const kind of ['llvm', 'clif', 'jit', 'stock']) { | |
| const group = samples.filter(s => s.kind === kind); | |
| summary[kind] = Object.fromEntries((kind === 'jit' ? ['total'] : ['build','run','total']).map(key => [key, stats(group.map(s => s[key]))])); | |
| } | |
| const prebuiltSamples = []; | |
| for (let round = 0; round < 33; round++) { | |
| for (const kind of (round % 2 ? ['clif', 'llvm'] : ['llvm', 'clif'])) { | |
| const run = invoke(cwd + 'bench-bin/' + kind, [], expected); | |
| if (round >= 3) prebuiltSamples.push({ round: round - 3, kind, run }); | |
| } | |
| } | |
| const prebuiltSummary = Object.fromEntries(['llvm','clif'].map(kind => [kind, stats(prebuiltSamples.filter(s => s.kind === kind).map(s => s.run))])); | |
| const data = { ...metadata, warmups, samples, summary, prebuiltSamples, prebuiltSummary }; | |
| writeFileSync(resultsFile, JSON.stringify(data, null, 2)); | |
| writeFileSync(new URL('benchmark-report.txt', import.meta.url), report(data) + '\n'); | |
| console.log(report(data)); |
| { | |
| "hypothesis": "Cranelift JIT reduces source-to-result latency versus LLVM AOT and Cranelift AOT on demo.rs by avoiding external object linking and executable launch. Prebuilt launch is measured separately.", | |
| "recordedAt": "2026-09-05T00:09:31.613Z", | |
| "rustc": "rustc 1.100.0-nightly (fb6531d55 2026-08-23)\nbinary: rustc\ncommit-hash: fb6531d550e0075b9eb9a51464f404805eec87d9\ncommit-date: 2026-08-23\nhost: aarch64-apple-darwin\nrelease: 1.100.0-nightly\nLLVM version: 23.1.0\n", | |
| "machine": "Apple M5 Max", | |
| "os": "ProductName:\t\tmacOS\nProductVersion:\t\t27.0\nBuildVersion:\t\t26A5425a\n", | |
| "backendCommit": "2bc05d45078dbee6495c008cbd5d1dc24edff53f", | |
| "source": "fn fib(n: u32) -> u64 {\n match n {\n 0 | 1 => n as u64,\n _ => fib(n - 1) + fib(n - 2),\n }\n}\n\nfn main() {\n println!(\"fib(25) = {}\", fib(25));\n}\n", | |
| "sourceSha256": "3087ee8a02547c94a10584c72dceb99605ce5f31ca4fd78aeffd9bfba095bed9", | |
| "compiler": "/bin/rustc", | |
| "commands": { | |
| "llvm": [ | |
| "--edition=2024", | |
| "-Copt-level=1", | |
| "-Cpanic=abort", | |
| "-Cprefer-dynamic", | |
| "--sysroot", | |
| "/dist", | |
| "demo.rs", | |
| "-o", | |
| "bench-bin/llvm" | |
| ], | |
| "clif": [ | |
| "--edition=2024", | |
| "-Copt-level=1", | |
| "-Cpanic=abort", | |
| "-Cprefer-dynamic", | |
| "--sysroot", | |
| "/dist", | |
| "demo.rs", | |
| "-Zcodegen-backend=/dist/lib/librustc_codegen_cranelift.dylib", | |
| "-o", | |
| "bench-bin/clif" | |
| ], | |
| "jit": [ | |
| "--edition=2024", | |
| "-Copt-level=1", | |
| "-Cpanic=abort", | |
| "-Cprefer-dynamic", | |
| "--sysroot", | |
| "/dist", | |
| "demo.rs", | |
| "-Zcodegen-backend=/dist/lib/librustc_codegen_cranelift.dylib", | |
| "-Cllvm-args=jit-mode" | |
| ], | |
| "stock": [ | |
| "--edition=2024", | |
| "-Copt-level=1", | |
| "-Cpanic=abort", | |
| "demo.rs", | |
| "-o", | |
| "bench-bin/stock" | |
| ] | |
| }, | |
| "dynamicLibraryPath": "/dist/lib/rustlib/aarch64-apple-darwin/lib", | |
| "methodology": "Direct child process wall time, no shell or rustup wrapper in timed region. No incremental cache. Output removed before each compile. Precompiled common Cranelift std and dynamic linking for the controlled comparison. 3 warmups each; 30 trials per mode in balanced permutations. AOT total = compilation/link + fresh process launch/execution. JIT total = fresh rustc frontend + codegen + in-process execution. All outputs and statuses checked. Stock LLVM control uses its bundled std and default static linkage. Prebuilt binary results use the final unchanged artifacts, 3 warmups then 30 alternating trials, separate from first launches after compilation. No cold cache or runtime throughput claims.", | |
| "warmups": [ | |
| { | |
| "kind": "llvm", | |
| "build": 175.357209, | |
| "run": 106.969541, | |
| "total": 282.32675 | |
| }, | |
| { | |
| "kind": "clif", | |
| "build": 113.55725, | |
| "run": 161.218, | |
| "total": 274.77524999999997 | |
| }, | |
| { | |
| "kind": "jit", | |
| "total": 51.923417 | |
| }, | |
| { | |
| "kind": "stock", | |
| "build": 187.325917, | |
| "run": 108.554833, | |
| "total": 295.88075000000003 | |
| }, | |
| { | |
| "kind": "llvm", | |
| "build": 130.516375, | |
| "run": 29.523375, | |
| "total": 160.03975000000003 | |
| }, | |
| { | |
| "kind": "clif", | |
| "build": 117.167, | |
| "run": 33.633584, | |
| "total": 150.80058400000001 | |
| }, | |
| { | |
| "kind": "jit", | |
| "total": 52.008333 | |
| }, | |
| { | |
| "kind": "stock", | |
| "build": 123.896625, | |
| "run": 32.124, | |
| "total": 156.020625 | |
| }, | |
| { | |
| "kind": "llvm", | |
| "build": 119.814959, | |
| "run": 24.985833, | |
| "total": 144.800792 | |
| }, | |
| { | |
| "kind": "clif", | |
| "build": 112.683417, | |
| "run": 25.826375, | |
| "total": 138.509792 | |
| }, | |
| { | |
| "kind": "jit", | |
| "total": 58.861916 | |
| }, | |
| { | |
| "kind": "stock", | |
| "build": 139.317292, | |
| "run": 25.128, | |
| "total": 164.445292 | |
| } | |
| ], | |
| "samples": [ | |
| { | |
| "round": 0, | |
| "kind": "llvm", | |
| "build": 152.956042, | |
| "run": 26.769125, | |
| "total": 179.725167 | |
| }, | |
| { | |
| "round": 0, | |
| "kind": "clif", | |
| "build": 129.212833, | |
| "run": 20.471791, | |
| "total": 149.68462399999999 | |
| }, | |
| { | |
| "round": 0, | |
| "kind": "jit", | |
| "total": 50.783833 | |
| }, | |
| { | |
| "round": 1, | |
| "kind": "clif", | |
| "build": 118.291875, | |
| "run": 22.890208, | |
| "total": 141.182083 | |
| }, | |
| { | |
| "round": 1, | |
| "kind": "jit", | |
| "total": 57.723125 | |
| }, | |
| { | |
| "round": 1, | |
| "kind": "llvm", | |
| "build": 124.953584, | |
| "run": 21.275458, | |
| "total": 146.229042 | |
| }, | |
| { | |
| "round": 2, | |
| "kind": "jit", | |
| "total": 61.127208 | |
| }, | |
| { | |
| "round": 2, | |
| "kind": "llvm", | |
| "build": 136.671625, | |
| "run": 21.177833, | |
| "total": 157.849458 | |
| }, | |
| { | |
| "round": 2, | |
| "kind": "clif", | |
| "build": 127.624791, | |
| "run": 68.005458, | |
| "total": 195.630249 | |
| }, | |
| { | |
| "round": 3, | |
| "kind": "jit", | |
| "total": 58.490708 | |
| }, | |
| { | |
| "round": 3, | |
| "kind": "clif", | |
| "build": 132.445584, | |
| "run": 24.576167, | |
| "total": 157.021751 | |
| }, | |
| { | |
| "round": 3, | |
| "kind": "llvm", | |
| "build": 132.860459, | |
| "run": 21.964708, | |
| "total": 154.825167 | |
| }, | |
| { | |
| "round": 4, | |
| "kind": "llvm", | |
| "build": 126.671708, | |
| "run": 26.851209, | |
| "total": 153.522917 | |
| }, | |
| { | |
| "round": 4, | |
| "kind": "jit", | |
| "total": 58.006833 | |
| }, | |
| { | |
| "round": 4, | |
| "kind": "clif", | |
| "build": 120.099792, | |
| "run": 22.383625, | |
| "total": 142.483417 | |
| }, | |
| { | |
| "round": 5, | |
| "kind": "clif", | |
| "build": 120.606667, | |
| "run": 23.511375, | |
| "total": 144.118042 | |
| }, | |
| { | |
| "round": 5, | |
| "kind": "llvm", | |
| "build": 125.523709, | |
| "run": 55.503541, | |
| "total": 181.02724999999998 | |
| }, | |
| { | |
| "round": 5, | |
| "kind": "jit", | |
| "total": 54.101791 | |
| }, | |
| { | |
| "round": 6, | |
| "kind": "llvm", | |
| "build": 124.64575, | |
| "run": 25.930417, | |
| "total": 150.576167 | |
| }, | |
| { | |
| "round": 6, | |
| "kind": "clif", | |
| "build": 125.818375, | |
| "run": 20.69075, | |
| "total": 146.509125 | |
| }, | |
| { | |
| "round": 6, | |
| "kind": "jit", | |
| "total": 55.228833 | |
| }, | |
| { | |
| "round": 7, | |
| "kind": "clif", | |
| "build": 116.216791, | |
| "run": 22.5125, | |
| "total": 138.729291 | |
| }, | |
| { | |
| "round": 7, | |
| "kind": "jit", | |
| "total": 58.085209 | |
| }, | |
| { | |
| "round": 7, | |
| "kind": "llvm", | |
| "build": 122.823, | |
| "run": 24.714666, | |
| "total": 147.537666 | |
| }, | |
| { | |
| "round": 8, | |
| "kind": "jit", | |
| "total": 53.689084 | |
| }, | |
| { | |
| "round": 8, | |
| "kind": "llvm", | |
| "build": 125.501667, | |
| "run": 23.722959, | |
| "total": 149.224626 | |
| }, | |
| { | |
| "round": 8, | |
| "kind": "clif", | |
| "build": 119.871458, | |
| "run": 22.025583, | |
| "total": 141.897041 | |
| }, | |
| { | |
| "round": 9, | |
| "kind": "jit", | |
| "total": 55.678667 | |
| }, | |
| { | |
| "round": 9, | |
| "kind": "clif", | |
| "build": 132.440209, | |
| "run": 22.518083, | |
| "total": 154.958292 | |
| }, | |
| { | |
| "round": 9, | |
| "kind": "llvm", | |
| "build": 128.741583, | |
| "run": 20.255125, | |
| "total": 148.99670799999998 | |
| }, | |
| { | |
| "round": 10, | |
| "kind": "llvm", | |
| "build": 129.878584, | |
| "run": 24.710959, | |
| "total": 154.589543 | |
| }, | |
| { | |
| "round": 10, | |
| "kind": "jit", | |
| "total": 57.576666 | |
| }, | |
| { | |
| "round": 10, | |
| "kind": "clif", | |
| "build": 121.965333, | |
| "run": 21.849375, | |
| "total": 143.814708 | |
| }, | |
| { | |
| "round": 11, | |
| "kind": "clif", | |
| "build": 117.878625, | |
| "run": 21.294167, | |
| "total": 139.17279200000002 | |
| }, | |
| { | |
| "round": 11, | |
| "kind": "llvm", | |
| "build": 121.419458, | |
| "run": 23.747667, | |
| "total": 145.167125 | |
| }, | |
| { | |
| "round": 11, | |
| "kind": "jit", | |
| "total": 55.801833 | |
| }, | |
| { | |
| "round": 12, | |
| "kind": "llvm", | |
| "build": 137.117334, | |
| "run": 317.499667, | |
| "total": 454.61700099999996 | |
| }, | |
| { | |
| "round": 12, | |
| "kind": "clif", | |
| "build": 119.81075, | |
| "run": 21.655083, | |
| "total": 141.465833 | |
| }, | |
| { | |
| "round": 12, | |
| "kind": "jit", | |
| "total": 56.1145 | |
| }, | |
| { | |
| "round": 13, | |
| "kind": "clif", | |
| "build": 126.272917, | |
| "run": 24.273542, | |
| "total": 150.546459 | |
| }, | |
| { | |
| "round": 13, | |
| "kind": "jit", | |
| "total": 56.458458 | |
| }, | |
| { | |
| "round": 13, | |
| "kind": "llvm", | |
| "build": 143.702792, | |
| "run": 24.644916, | |
| "total": 168.34770799999998 | |
| }, | |
| { | |
| "round": 14, | |
| "kind": "jit", | |
| "total": 55.526208 | |
| }, | |
| { | |
| "round": 14, | |
| "kind": "llvm", | |
| "build": 148.834042, | |
| "run": 29.455166, | |
| "total": 178.289208 | |
| }, | |
| { | |
| "round": 14, | |
| "kind": "clif", | |
| "build": 139.877291, | |
| "run": 29.823083, | |
| "total": 169.700374 | |
| }, | |
| { | |
| "round": 15, | |
| "kind": "jit", | |
| "total": 63.113041 | |
| }, | |
| { | |
| "round": 15, | |
| "kind": "clif", | |
| "build": 133.696958, | |
| "run": 25.930167, | |
| "total": 159.627125 | |
| }, | |
| { | |
| "round": 15, | |
| "kind": "llvm", | |
| "build": 140.635834, | |
| "run": 26.832167, | |
| "total": 167.468001 | |
| }, | |
| { | |
| "round": 16, | |
| "kind": "llvm", | |
| "build": 133.966458, | |
| "run": 78.081167, | |
| "total": 212.04762499999998 | |
| }, | |
| { | |
| "round": 16, | |
| "kind": "jit", | |
| "total": 56.568333 | |
| }, | |
| { | |
| "round": 16, | |
| "kind": "clif", | |
| "build": 130.873959, | |
| "run": 24.140083, | |
| "total": 155.01404200000002 | |
| }, | |
| { | |
| "round": 17, | |
| "kind": "clif", | |
| "build": 135.445542, | |
| "run": 20.574084, | |
| "total": 156.019626 | |
| }, | |
| { | |
| "round": 17, | |
| "kind": "llvm", | |
| "build": 137.158166, | |
| "run": 26.309417, | |
| "total": 163.467583 | |
| }, | |
| { | |
| "round": 17, | |
| "kind": "jit", | |
| "total": 56.963791 | |
| }, | |
| { | |
| "round": 18, | |
| "kind": "llvm", | |
| "build": 133.340541, | |
| "run": 21.463084, | |
| "total": 154.803625 | |
| }, | |
| { | |
| "round": 18, | |
| "kind": "clif", | |
| "build": 135.503584, | |
| "run": 26.279917, | |
| "total": 161.783501 | |
| }, | |
| { | |
| "round": 18, | |
| "kind": "jit", | |
| "total": 56.03275 | |
| }, | |
| { | |
| "round": 19, | |
| "kind": "clif", | |
| "build": 125.677792, | |
| "run": 21.6615, | |
| "total": 147.339292 | |
| }, | |
| { | |
| "round": 19, | |
| "kind": "jit", | |
| "total": 57.12725 | |
| }, | |
| { | |
| "round": 19, | |
| "kind": "llvm", | |
| "build": 139.875625, | |
| "run": 22.445416, | |
| "total": 162.321041 | |
| }, | |
| { | |
| "round": 20, | |
| "kind": "jit", | |
| "total": 56.61575 | |
| }, | |
| { | |
| "round": 20, | |
| "kind": "llvm", | |
| "build": 137.044542, | |
| "run": 50.317583, | |
| "total": 187.362125 | |
| }, | |
| { | |
| "round": 20, | |
| "kind": "clif", | |
| "build": 128.493834, | |
| "run": 20.950209, | |
| "total": 149.444043 | |
| }, | |
| { | |
| "round": 21, | |
| "kind": "jit", | |
| "total": 56.79275 | |
| }, | |
| { | |
| "round": 21, | |
| "kind": "clif", | |
| "build": 134.906292, | |
| "run": 29.29675, | |
| "total": 164.203042 | |
| }, | |
| { | |
| "round": 21, | |
| "kind": "llvm", | |
| "build": 131.255459, | |
| "run": 26.455083, | |
| "total": 157.710542 | |
| }, | |
| { | |
| "round": 22, | |
| "kind": "llvm", | |
| "build": 136.821791, | |
| "run": 22.649333, | |
| "total": 159.47112399999997 | |
| }, | |
| { | |
| "round": 22, | |
| "kind": "jit", | |
| "total": 59.443709 | |
| }, | |
| { | |
| "round": 22, | |
| "kind": "clif", | |
| "build": 138.691916, | |
| "run": 22.401416, | |
| "total": 161.093332 | |
| }, | |
| { | |
| "round": 23, | |
| "kind": "clif", | |
| "build": 126.52675, | |
| "run": 30.787625, | |
| "total": 157.314375 | |
| }, | |
| { | |
| "round": 23, | |
| "kind": "llvm", | |
| "build": 144.613375, | |
| "run": 24.743041, | |
| "total": 169.356416 | |
| }, | |
| { | |
| "round": 23, | |
| "kind": "jit", | |
| "total": 57.227292 | |
| }, | |
| { | |
| "round": 24, | |
| "kind": "llvm", | |
| "build": 127.925, | |
| "run": 23.60125, | |
| "total": 151.52625 | |
| }, | |
| { | |
| "round": 24, | |
| "kind": "clif", | |
| "build": 120.259, | |
| "run": 21.84075, | |
| "total": 142.09975 | |
| }, | |
| { | |
| "round": 24, | |
| "kind": "jit", | |
| "total": 56.852416 | |
| }, | |
| { | |
| "round": 25, | |
| "kind": "clif", | |
| "build": 123.284125, | |
| "run": 24.7605, | |
| "total": 148.044625 | |
| }, | |
| { | |
| "round": 25, | |
| "kind": "jit", | |
| "total": 56.831333 | |
| }, | |
| { | |
| "round": 25, | |
| "kind": "llvm", | |
| "build": 131.976417, | |
| "run": 36.309917, | |
| "total": 168.286334 | |
| }, | |
| { | |
| "round": 26, | |
| "kind": "jit", | |
| "total": 62.311375 | |
| }, | |
| { | |
| "round": 26, | |
| "kind": "llvm", | |
| "build": 147.434542, | |
| "run": 24.788458, | |
| "total": 172.22299999999998 | |
| }, | |
| { | |
| "round": 26, | |
| "kind": "clif", | |
| "build": 135.454833, | |
| "run": 22.740583, | |
| "total": 158.19541600000002 | |
| }, | |
| { | |
| "round": 27, | |
| "kind": "jit", | |
| "total": 60.014042 | |
| }, | |
| { | |
| "round": 27, | |
| "kind": "clif", | |
| "build": 137.59725, | |
| "run": 25.078667, | |
| "total": 162.675917 | |
| }, | |
| { | |
| "round": 27, | |
| "kind": "llvm", | |
| "build": 131.783417, | |
| "run": 22.20275, | |
| "total": 153.986167 | |
| }, | |
| { | |
| "round": 28, | |
| "kind": "llvm", | |
| "build": 128.350333, | |
| "run": 23.744708, | |
| "total": 152.095041 | |
| }, | |
| { | |
| "round": 28, | |
| "kind": "jit", | |
| "total": 56.35425 | |
| }, | |
| { | |
| "round": 28, | |
| "kind": "clif", | |
| "build": 127.791125, | |
| "run": 24.455, | |
| "total": 152.246125 | |
| }, | |
| { | |
| "round": 29, | |
| "kind": "clif", | |
| "build": 125.908791, | |
| "run": 25.590166, | |
| "total": 151.498957 | |
| }, | |
| { | |
| "round": 29, | |
| "kind": "llvm", | |
| "build": 129.392625, | |
| "run": 25.868625, | |
| "total": 155.26125000000002 | |
| }, | |
| { | |
| "round": 29, | |
| "kind": "jit", | |
| "total": 55.64675 | |
| }, | |
| { | |
| "round": 0, | |
| "kind": "stock", | |
| "build": 152.61575, | |
| "run": 24.788625, | |
| "total": 177.404375 | |
| }, | |
| { | |
| "round": 1, | |
| "kind": "stock", | |
| "build": 131.614916, | |
| "run": 24.237875, | |
| "total": 155.852791 | |
| }, | |
| { | |
| "round": 2, | |
| "kind": "stock", | |
| "build": 133.162083, | |
| "run": 25.160209, | |
| "total": 158.322292 | |
| }, | |
| { | |
| "round": 3, | |
| "kind": "stock", | |
| "build": 125.454167, | |
| "run": 65.862125, | |
| "total": 191.316292 | |
| }, | |
| { | |
| "round": 4, | |
| "kind": "stock", | |
| "build": 130.795833, | |
| "run": 27.804958, | |
| "total": 158.600791 | |
| }, | |
| { | |
| "round": 5, | |
| "kind": "stock", | |
| "build": 125.476542, | |
| "run": 24.199917, | |
| "total": 149.676459 | |
| }, | |
| { | |
| "round": 6, | |
| "kind": "stock", | |
| "build": 132.909125, | |
| "run": 81.146166, | |
| "total": 214.05529099999998 | |
| }, | |
| { | |
| "round": 7, | |
| "kind": "stock", | |
| "build": 142.469625, | |
| "run": 25.348917, | |
| "total": 167.818542 | |
| }, | |
| { | |
| "round": 8, | |
| "kind": "stock", | |
| "build": 136.456042, | |
| "run": 27.712833, | |
| "total": 164.16887499999999 | |
| }, | |
| { | |
| "round": 9, | |
| "kind": "stock", | |
| "build": 135.18825, | |
| "run": 67.430375, | |
| "total": 202.618625 | |
| }, | |
| { | |
| "round": 10, | |
| "kind": "stock", | |
| "build": 151.216916, | |
| "run": 27.669125, | |
| "total": 178.886041 | |
| }, | |
| { | |
| "round": 11, | |
| "kind": "stock", | |
| "build": 168.135334, | |
| "run": 24.207958, | |
| "total": 192.343292 | |
| }, | |
| { | |
| "round": 12, | |
| "kind": "stock", | |
| "build": 136.636584, | |
| "run": 25.331958, | |
| "total": 161.968542 | |
| }, | |
| { | |
| "round": 13, | |
| "kind": "stock", | |
| "build": 134.433667, | |
| "run": 25.391875, | |
| "total": 159.825542 | |
| }, | |
| { | |
| "round": 14, | |
| "kind": "stock", | |
| "build": 132.069417, | |
| "run": 22.780834, | |
| "total": 154.850251 | |
| }, | |
| { | |
| "round": 15, | |
| "kind": "stock", | |
| "build": 237.267667, | |
| "run": 26.792083, | |
| "total": 264.05975 | |
| }, | |
| { | |
| "round": 16, | |
| "kind": "stock", | |
| "build": 172.362625, | |
| "run": 24.124459, | |
| "total": 196.487084 | |
| }, | |
| { | |
| "round": 17, | |
| "kind": "stock", | |
| "build": 186.469083, | |
| "run": 66.402125, | |
| "total": 252.87120800000002 | |
| }, | |
| { | |
| "round": 18, | |
| "kind": "stock", | |
| "build": 186.993875, | |
| "run": 26.466625, | |
| "total": 213.4605 | |
| }, | |
| { | |
| "round": 19, | |
| "kind": "stock", | |
| "build": 135.777042, | |
| "run": 29.99025, | |
| "total": 165.767292 | |
| }, | |
| { | |
| "round": 20, | |
| "kind": "stock", | |
| "build": 149.304125, | |
| "run": 23.18575, | |
| "total": 172.48987499999998 | |
| }, | |
| { | |
| "round": 21, | |
| "kind": "stock", | |
| "build": 134.038958, | |
| "run": 23.016417, | |
| "total": 157.055375 | |
| }, | |
| { | |
| "round": 22, | |
| "kind": "stock", | |
| "build": 134.146208, | |
| "run": 21.560833, | |
| "total": 155.707041 | |
| }, | |
| { | |
| "round": 23, | |
| "kind": "stock", | |
| "build": 135.377, | |
| "run": 47.491542, | |
| "total": 182.86854200000002 | |
| }, | |
| { | |
| "round": 24, | |
| "kind": "stock", | |
| "build": 144.029667, | |
| "run": 23.887417, | |
| "total": 167.917084 | |
| }, | |
| { | |
| "round": 25, | |
| "kind": "stock", | |
| "build": 150.68175, | |
| "run": 23.825375, | |
| "total": 174.507125 | |
| }, | |
| { | |
| "round": 26, | |
| "kind": "stock", | |
| "build": 140.57625, | |
| "run": 37.592084, | |
| "total": 178.168334 | |
| }, | |
| { | |
| "round": 27, | |
| "kind": "stock", | |
| "build": 131.141584, | |
| "run": 25.209166, | |
| "total": 156.35075 | |
| }, | |
| { | |
| "round": 28, | |
| "kind": "stock", | |
| "build": 138.153167, | |
| "run": 24.83, | |
| "total": 162.98316699999998 | |
| }, | |
| { | |
| "round": 29, | |
| "kind": "stock", | |
| "build": 145.882875, | |
| "run": 150.1025, | |
| "total": 295.985375 | |
| } | |
| ], | |
| "summary": { | |
| "llvm": { | |
| "build": { | |
| "median": 132.41843799999998, | |
| "p25": 128.03133325, | |
| "p75": 137.147958, | |
| "min": 121.419458, | |
| "max": 152.956042 | |
| }, | |
| "run": { | |
| "median": 24.7288535, | |
| "p25": 22.88731225, | |
| "p75": 26.8164065, | |
| "min": 20.255125, | |
| "max": 317.499667 | |
| }, | |
| "total": { | |
| "median": 157.78, | |
| "p25": 152.45201, | |
| "p75": 169.104239, | |
| "min": 145.167125, | |
| "max": 454.61700099999996 | |
| } | |
| }, | |
| "clif": { | |
| "build": { | |
| "median": 127.0757705, | |
| "p25": 120.94633350000001, | |
| "p75": 133.3841145, | |
| "min": 116.216791, | |
| "max": 139.877291 | |
| }, | |
| "run": { | |
| "median": 22.8153955, | |
| "p25": 21.84290625, | |
| "p75": 24.99912525, | |
| "min": 20.471791, | |
| "max": 68.005458 | |
| }, | |
| "total": { | |
| "median": 151.022708, | |
| "p25": 143.89054149999998, | |
| "p75": 157.97515575000003, | |
| "min": 138.729291, | |
| "max": 195.630249 | |
| } | |
| }, | |
| "jit": { | |
| "total": { | |
| "median": 56.8120415, | |
| "p25": 55.85956225, | |
| "p75": 57.935906, | |
| "min": 50.783833, | |
| "max": 63.113041 | |
| } | |
| }, | |
| "stock": { | |
| "build": { | |
| "median": 136.546313, | |
| "p25": 133.38130175, | |
| "p75": 150.33734375, | |
| "min": 125.454167, | |
| "max": 237.267667 | |
| }, | |
| "run": { | |
| "median": 25.3404375, | |
| "p25": 24.20192725, | |
| "p75": 29.443927, | |
| "min": 21.560833, | |
| "max": 150.1025 | |
| }, | |
| "total": { | |
| "median": 170.2034795, | |
| "p25": 158.90697875, | |
| "p75": 192.086542, | |
| "min": 149.676459, | |
| "max": 295.985375 | |
| } | |
| } | |
| }, | |
| "prebuiltSamples": [ | |
| { | |
| "round": 0, | |
| "kind": "clif", | |
| "run": 6.63375 | |
| }, | |
| { | |
| "round": 0, | |
| "kind": "llvm", | |
| "run": 5.785375 | |
| }, | |
| { | |
| "round": 1, | |
| "kind": "llvm", | |
| "run": 5.751334 | |
| }, | |
| { | |
| "round": 1, | |
| "kind": "clif", | |
| "run": 5.8205 | |
| }, | |
| { | |
| "round": 2, | |
| "kind": "clif", | |
| "run": 5.757 | |
| }, | |
| { | |
| "round": 2, | |
| "kind": "llvm", | |
| "run": 6.301042 | |
| }, | |
| { | |
| "round": 3, | |
| "kind": "llvm", | |
| "run": 6.382417 | |
| }, | |
| { | |
| "round": 3, | |
| "kind": "clif", | |
| "run": 6.969584 | |
| }, | |
| { | |
| "round": 4, | |
| "kind": "clif", | |
| "run": 5.391333 | |
| }, | |
| { | |
| "round": 4, | |
| "kind": "llvm", | |
| "run": 5.891708 | |
| }, | |
| { | |
| "round": 5, | |
| "kind": "llvm", | |
| "run": 5.868167 | |
| }, | |
| { | |
| "round": 5, | |
| "kind": "clif", | |
| "run": 5.663292 | |
| }, | |
| { | |
| "round": 6, | |
| "kind": "clif", | |
| "run": 5.947833 | |
| }, | |
| { | |
| "round": 6, | |
| "kind": "llvm", | |
| "run": 6.164792 | |
| }, | |
| { | |
| "round": 7, | |
| "kind": "llvm", | |
| "run": 5.398792 | |
| }, | |
| { | |
| "round": 7, | |
| "kind": "clif", | |
| "run": 6.337667 | |
| }, | |
| { | |
| "round": 8, | |
| "kind": "clif", | |
| "run": 6.934542 | |
| }, | |
| { | |
| "round": 8, | |
| "kind": "llvm", | |
| "run": 6.099583 | |
| }, | |
| { | |
| "round": 9, | |
| "kind": "llvm", | |
| "run": 5.003875 | |
| }, | |
| { | |
| "round": 9, | |
| "kind": "clif", | |
| "run": 5.649167 | |
| }, | |
| { | |
| "round": 10, | |
| "kind": "clif", | |
| "run": 5.998167 | |
| }, | |
| { | |
| "round": 10, | |
| "kind": "llvm", | |
| "run": 5.771084 | |
| }, | |
| { | |
| "round": 11, | |
| "kind": "llvm", | |
| "run": 5.454417 | |
| }, | |
| { | |
| "round": 11, | |
| "kind": "clif", | |
| "run": 6.100125 | |
| }, | |
| { | |
| "round": 12, | |
| "kind": "clif", | |
| "run": 5.584875 | |
| }, | |
| { | |
| "round": 12, | |
| "kind": "llvm", | |
| "run": 5.681958 | |
| }, | |
| { | |
| "round": 13, | |
| "kind": "llvm", | |
| "run": 5.945458 | |
| }, | |
| { | |
| "round": 13, | |
| "kind": "clif", | |
| "run": 5.369166 | |
| }, | |
| { | |
| "round": 14, | |
| "kind": "clif", | |
| "run": 5.696417 | |
| }, | |
| { | |
| "round": 14, | |
| "kind": "llvm", | |
| "run": 5.777792 | |
| }, | |
| { | |
| "round": 15, | |
| "kind": "llvm", | |
| "run": 5.593292 | |
| }, | |
| { | |
| "round": 15, | |
| "kind": "clif", | |
| "run": 5.929291 | |
| }, | |
| { | |
| "round": 16, | |
| "kind": "clif", | |
| "run": 7.679959 | |
| }, | |
| { | |
| "round": 16, | |
| "kind": "llvm", | |
| "run": 7.25625 | |
| }, | |
| { | |
| "round": 17, | |
| "kind": "llvm", | |
| "run": 6.922167 | |
| }, | |
| { | |
| "round": 17, | |
| "kind": "clif", | |
| "run": 6.382375 | |
| }, | |
| { | |
| "round": 18, | |
| "kind": "clif", | |
| "run": 5.729375 | |
| }, | |
| { | |
| "round": 18, | |
| "kind": "llvm", | |
| "run": 5.917833 | |
| }, | |
| { | |
| "round": 19, | |
| "kind": "llvm", | |
| "run": 5.436458 | |
| }, | |
| { | |
| "round": 19, | |
| "kind": "clif", | |
| "run": 6.804625 | |
| }, | |
| { | |
| "round": 20, | |
| "kind": "clif", | |
| "run": 6.83975 | |
| }, | |
| { | |
| "round": 20, | |
| "kind": "llvm", | |
| "run": 6.088 | |
| }, | |
| { | |
| "round": 21, | |
| "kind": "llvm", | |
| "run": 5.94875 | |
| }, | |
| { | |
| "round": 21, | |
| "kind": "clif", | |
| "run": 6.062417 | |
| }, | |
| { | |
| "round": 22, | |
| "kind": "clif", | |
| "run": 6.40725 | |
| }, | |
| { | |
| "round": 22, | |
| "kind": "llvm", | |
| "run": 5.827083 | |
| }, | |
| { | |
| "round": 23, | |
| "kind": "llvm", | |
| "run": 5.385083 | |
| }, | |
| { | |
| "round": 23, | |
| "kind": "clif", | |
| "run": 5.42675 | |
| }, | |
| { | |
| "round": 24, | |
| "kind": "clif", | |
| "run": 6.181916 | |
| }, | |
| { | |
| "round": 24, | |
| "kind": "llvm", | |
| "run": 5.778625 | |
| }, | |
| { | |
| "round": 25, | |
| "kind": "llvm", | |
| "run": 5.996958 | |
| }, | |
| { | |
| "round": 25, | |
| "kind": "clif", | |
| "run": 7.08625 | |
| }, | |
| { | |
| "round": 26, | |
| "kind": "clif", | |
| "run": 5.420333 | |
| }, | |
| { | |
| "round": 26, | |
| "kind": "llvm", | |
| "run": 5.311333 | |
| }, | |
| { | |
| "round": 27, | |
| "kind": "llvm", | |
| "run": 5.4155 | |
| }, | |
| { | |
| "round": 27, | |
| "kind": "clif", | |
| "run": 5.805875 | |
| }, | |
| { | |
| "round": 28, | |
| "kind": "clif", | |
| "run": 6.459333 | |
| }, | |
| { | |
| "round": 28, | |
| "kind": "llvm", | |
| "run": 6.659958 | |
| }, | |
| { | |
| "round": 29, | |
| "kind": "llvm", | |
| "run": 7.195375 | |
| }, | |
| { | |
| "round": 29, | |
| "kind": "clif", | |
| "run": 6.045917 | |