From d39a8270ef46f24dd60b504f115ae0d0f7f31158 Mon Sep 17 00:00:00 2001 From: Dmitry Prudnikov Date: Sun, 5 Apr 2026 12:58:13 +0300 Subject: [PATCH 1/7] perf(bench): add rust/ffi delta benchmark artifacts --- .github/scripts/run-benchmarks.sh | 316 +++ BENCHMARKS.md | 12 + benchmark-delta.json | 4034 +++++++++++++++++++++++++++++ benchmark-delta.md | 379 +++ 4 files changed, 4741 insertions(+) create mode 100644 benchmark-delta.json create mode 100644 benchmark-delta.md diff --git a/.github/scripts/run-benchmarks.sh b/.github/scripts/run-benchmarks.sh index 0d235420..4d6cd4dd 100755 --- a/.github/scripts/run-benchmarks.sh +++ b/.github/scripts/run-benchmarks.sh @@ -26,6 +26,7 @@ import json import os import re import sys +from collections import defaultdict BENCH_RE = re.compile(r"test (\S+)\s+\.\.\. bench:\s+([\d,]+) ns/iter") REPORT_RE = re.compile( @@ -70,8 +71,84 @@ timings = [] ratios = [] memory_rows = [] dictionary_rows = [] +timing_rows = [] +scenario_input_bytes = {} raw_path = os.environ["BENCH_RAW_FILE"] +REF_LOW = 0.99 +REF_HIGH = 1.05 + +def parse_benchmark_name(name): + parts = name.split("/") + if len(parts) == 5 and parts[0] == "compress" and parts[3] == "matrix": + return { + "stage": "compress", + "level": parts[1], + "scenario": parts[2], + "source": None, + "implementation": parts[4], + } + if len(parts) == 6 and parts[0] == "decompress" and parts[4] == "matrix": + return { + "stage": "decompress", + "level": parts[1], + "scenario": parts[2], + "source": parts[3], + "implementation": parts[5], + } + if len(parts) == 5 and parts[0] == "compress-dict" and parts[3] == "matrix": + return { + "stage": "compress-dict", + "level": parts[1], + "scenario": parts[2], + "source": None, + "implementation": parts[4], + } + # Fallback for future benchmark name variants. + stage = parts[0] if len(parts) > 0 else "unknown" + level = parts[1] if len(parts) > 1 else "unknown" + scenario = parts[2] if len(parts) > 2 else name + source = None + implementation = parts[-1] + return { + "stage": stage, + "level": level, + "scenario": scenario, + "source": source, + "implementation": implementation, + } + +def canonical_key(stage, scenario, level, source): + params = [f"stage={stage}", f"level={level}"] + if source: + params.append(f"source={source}") + return f"{scenario} + {', '.join(params)}" + +def normalize_impl(impl): + if impl == "pure_rust": + return "rust" + if impl == "c_ffi": + return "ffi" + return impl + +def classify_ratio_delta(delta): + if delta is None: + return "insufficient-data" + if delta < REF_LOW: + return "rust_better_smaller" + if delta <= REF_HIGH: + return "near_parity" + return "rust_worse_larger" + +def classify_speed_delta(delta): + if delta is None: + return "insufficient-data" + if delta < REF_LOW: + return "rust_slower" + if delta <= REF_HIGH: + return "near_parity" + return "rust_faster" + with open(raw_path) as f: for raw_line in f: line = raw_line.strip() @@ -87,6 +164,16 @@ with open(raw_path) as f: "value": round(ms, 3), }) timings.append((name, ms)) + parsed = parse_benchmark_name(name) + timing_rows.append({ + "name": name, + "stage": parsed["stage"], + "level": parsed["level"], + "scenario": parsed["scenario"], + "source": parsed["source"], + "implementation": normalize_impl(parsed["implementation"]), + "ms_per_iter": ms, + }) continue report_match = REPORT_RE.match(line) @@ -103,6 +190,7 @@ with open(raw_path) as f: "rust_ratio": float(rust_ratio), "ffi_ratio": float(ffi_ratio), }) + scenario_input_bytes[scenario] = int(input_bytes) continue mem_match = MEM_RE.match(line) @@ -173,6 +261,112 @@ if not dictionary_rows: with open("benchmark-results.json", "w") as f: json.dump(benchmark_results, f, indent=2) +ratio_index = {} +for row in ratios: + key = canonical_key("compress", row["scenario"], row["level"], None) + ratio_delta = None + if row["ffi_ratio"] > 0.0: + ratio_delta = row["rust_ratio"] / row["ffi_ratio"] + ratio_index[key] = { + "rust_ratio": row["rust_ratio"], + "ffi_ratio": row["ffi_ratio"], + "delta": ratio_delta, + "status": classify_ratio_delta(ratio_delta), + } + +speed_index = defaultdict(dict) +key_meta = {} +for row in timing_rows: + key = canonical_key(row["stage"], row["scenario"], row["level"], row["source"]) + key_meta[key] = { + "stage": row["stage"], + "scenario": row["scenario"], + "level": row["level"], + "source": row["source"], + } + impl = row["implementation"] + speed_index[key][impl] = { + "name": row["name"], + "ms_per_iter": row["ms_per_iter"], + } + +delta_rows = [] +all_keys = sorted(set(key_meta.keys()) | set(ratio_index.keys())) +for key in all_keys: + meta = key_meta.get(key) + stage = meta["stage"] if meta else "compress" + scenario = meta["scenario"] if meta else key.split(" + ")[0] + level = meta["level"] if meta else "unknown" + source = meta["source"] if meta else None + input_bytes = scenario_input_bytes.get(scenario) + + speed_series = {} + for impl_name, impl_row in speed_index.get(key, {}).items(): + ms_value = impl_row["ms_per_iter"] + bps_value = None + if input_bytes and ms_value and ms_value > 0.0: + bps_value = input_bytes / (ms_value / 1000.0) + speed_series[impl_name] = { + "benchmark_name": impl_row["name"], + "ms_per_iter": ms_value, + "bytes_per_sec": bps_value, + } + + rust_timing = speed_series.get("rust") + ffi_timing = speed_series.get("ffi") + rust_ms = rust_timing["ms_per_iter"] if rust_timing else None + ffi_ms = ffi_timing["ms_per_iter"] if ffi_timing else None + rust_bps = rust_timing["bytes_per_sec"] if rust_timing else None + ffi_bps = ffi_timing["bytes_per_sec"] if ffi_timing else None + speed_delta = (rust_bps / ffi_bps) if (rust_bps and ffi_bps and ffi_bps > 0.0) else None + + ratio_pack = ratio_index.get( + key, + { + "rust_ratio": None, + "ffi_ratio": None, + "delta": None, + "status": "insufficient-data", + }, + ) + + delta_rows.append( + { + "key": key, + "scenario": scenario, + "params": { + "stage": stage, + "level": level, + "source": source, + }, + "input_bytes": input_bytes, + "ratio": { + "rust": ratio_pack["rust_ratio"], + "ffi": ratio_pack["ffi_ratio"], + "delta_rust_over_ffi": ratio_pack["delta"], + "status": ratio_pack["status"], + "reference_low": REF_LOW, + "reference_high": REF_HIGH, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger", + }, + "speed": { + "series": speed_series, + "rust_ms_per_iter": rust_ms, + "ffi_ms_per_iter": ffi_ms, + "rust_bytes_per_sec": rust_bps, + "ffi_bytes_per_sec": ffi_bps, + "delta_rust_over_ffi": speed_delta, + "status": classify_speed_delta(speed_delta), + "reference_low": REF_LOW, + "reference_high": REF_HIGH, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower", + }, + } + ) + +with open("benchmark-delta.json", "w") as f: + json.dump(delta_rows, f, indent=2) + lines = [ "# Benchmark Report", "", @@ -232,8 +426,130 @@ for name, ms in sorted(timings): with open("benchmark-report.md", "w") as f: f.write("\n".join(lines) + "\n") +delta_lines = [ + "# Benchmark Delta Report", + "", + "Generated by `.github/scripts/run-benchmarks.sh` from `cargo bench --bench compare_ffi`.", + "", + "Reference bands for deltas: `0.99` and `1.05`.", + "", + "## Ratio pack", + "", + "Interpretation: lower ratio is better (smaller compressed output).", + "", + "### Rust compression ratio", + "", + "| Key | Rust ratio |", + "| --- | ---: |", +] + +for row in delta_rows: + key = markdown_table_escape(row["key"]) + rust_ratio = row["ratio"]["rust"] + if rust_ratio is None: + continue + delta_lines.append(f"| {key} | {rust_ratio:.4f} |") + +delta_lines.extend( + [ + "", + "### FFI compression ratio", + "", + "| Key | FFI ratio |", + "| --- | ---: |", + ] +) + +for row in delta_rows: + key = markdown_table_escape(row["key"]) + ffi_ratio = row["ratio"]["ffi"] + if ffi_ratio is None: + continue + delta_lines.append(f"| {key} | {ffi_ratio:.4f} |") + +delta_lines.extend( + [ + "", + "### Rust/FFI ratio delta", + "", + "| Key | Delta | Status | Ref low | Ref high |", + "| --- | ---: | --- | ---: | ---: |", + ] +) + +for row in delta_rows: + key = markdown_table_escape(row["key"]) + delta = row["ratio"]["delta_rust_over_ffi"] + if delta is None: + continue + status = row["ratio"]["status"] + delta_lines.append(f"| {key} | {delta:.4f} | {status} | {REF_LOW:.2f} | {REF_HIGH:.2f} |") + +delta_lines.extend( + [ + "", + "## Speed pack", + "", + "Interpretation: higher speed is better (`rust_bytes_per_sec / ffi_bytes_per_sec`).", + "", + "### Rust speed", + "", + "| Key | Rust bytes/sec | Rust ms/iter |", + "| --- | ---: | ---: |", + ] +) + +for row in delta_rows: + key = markdown_table_escape(row["key"]) + bps = row["speed"]["rust_bytes_per_sec"] + ms = row["speed"]["rust_ms_per_iter"] + if bps is None or ms is None: + continue + delta_lines.append(f"| {key} | {bps:.2f} | {ms:.3f} |") + +delta_lines.extend( + [ + "", + "### FFI speed", + "", + "| Key | FFI bytes/sec | FFI ms/iter |", + "| --- | ---: | ---: |", + ] +) + +for row in delta_rows: + key = markdown_table_escape(row["key"]) + bps = row["speed"]["ffi_bytes_per_sec"] + ms = row["speed"]["ffi_ms_per_iter"] + if bps is None or ms is None: + continue + delta_lines.append(f"| {key} | {bps:.2f} | {ms:.3f} |") + +delta_lines.extend( + [ + "", + "### Rust/FFI speed delta", + "", + "| Key | Delta | Status | Ref low | Ref high |", + "| --- | ---: | --- | ---: | ---: |", + ] +) + +for row in delta_rows: + key = markdown_table_escape(row["key"]) + delta = row["speed"]["delta_rust_over_ffi"] + if delta is None: + continue + status = row["speed"]["status"] + delta_lines.append(f"| {key} | {delta:.4f} | {status} | {REF_LOW:.2f} | {REF_HIGH:.2f} |") + +with open("benchmark-delta.md", "w") as f: + f.write("\n".join(delta_lines) + "\n") + print(f"Wrote {len(benchmark_results)} timing results to benchmark-results.json", file=sys.stderr) print(f"Wrote {len(ratios)} ratio rows to benchmark-report.md", file=sys.stderr) print(f"Wrote {len(memory_rows)} memory rows to benchmark-report.md", file=sys.stderr) print(f"Wrote {len(dictionary_rows)} dictionary rows to benchmark-report.md", file=sys.stderr) +print(f"Wrote {len(delta_rows)} canonical rows to benchmark-delta.json", file=sys.stderr) +print(f"Wrote {len(delta_rows)} canonical rows to benchmark-delta.md", file=sys.stderr) PYEOF diff --git a/BENCHMARKS.md b/BENCHMARKS.md index 1d732c3e..a7c5ad5f 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -86,5 +86,17 @@ bash scripts/bench-flamegraph.sh decompress/default/decodecorpus-z000033/rust_st - input+output buffer size estimate tables (`REPORT_MEM`) - dictionary compression tables (`REPORT_DICT`) - timing rows for all benchmark functions +- `benchmark-delta.json` with canonical `(scenario + params)` rows including: + - raw Rust/FFI ratio values and `rust/ffi` ratio delta + - raw Rust/FFI speed values (`bytes/sec`) and `rust/ffi` speed delta + - reference thresholds `0.99` and `1.05` plus per-row status labels +- `benchmark-delta.md` with two packs: + - Ratio pack: Rust ratio, FFI ratio, Rust/FFI ratio delta + - Speed pack: Rust speed, FFI speed, Rust/FFI speed delta + +Delta interpretation: + +- **Ratio delta** (`rust_ratio / ffi_ratio`): lower is better for Rust (`< 0.99` better, `0.99..1.05` parity, `> 1.05` worse) +- **Speed delta** (`rust_bytes_per_sec / ffi_bytes_per_sec`): higher is better for Rust (`> 1.05` faster, `0.99..1.05` parity, `< 0.99` slower) Criterion also writes its usual detailed estimates under `target/criterion/`. diff --git a/benchmark-delta.json b/benchmark-delta.json new file mode 100644 index 00000000..aff0597d --- /dev/null +++ b/benchmark-delta.json @@ -0,0 +1,4034 @@ +[ + { + "key": "decodecorpus-z000033 + stage=compress, level=best", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "compress", + "level": "best", + "source": null + }, + "input_bytes": 1022035, + "ratio": { + "rust": 0.528511, + "ffi": 0.498336, + "delta_rust_over_ffi": 1.0605515154433955, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/best/decodecorpus-z000033/matrix/pure_rust", + "ms_per_iter": 57.523015, + "bytes_per_sec": 17767410.140097838 + }, + "ffi": { + "benchmark_name": "compress/best/decodecorpus-z000033/matrix/c_ffi", + "ms_per_iter": 13.85081, + "bytes_per_sec": 73788825.34667648 + } + }, + "rust_ms_per_iter": 57.523015, + "ffi_ms_per_iter": 13.85081, + "rust_bytes_per_sec": 17767410.140097838, + "ffi_bytes_per_sec": 73788825.34667648, + "delta_rust_over_ffi": 0.2407872744500614, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=compress, level=better", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "compress", + "level": "better", + "source": null + }, + "input_bytes": 1022035, + "ratio": { + "rust": 0.529919, + "ffi": 0.499034, + "delta_rust_over_ffi": 1.061889570650497, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/better/decodecorpus-z000033/matrix/pure_rust", + "ms_per_iter": 42.523324, + "bytes_per_sec": 24034692.113909062 + }, + "ffi": { + "benchmark_name": "compress/better/decodecorpus-z000033/matrix/c_ffi", + "ms_per_iter": 8.409187, + "bytes_per_sec": 121537908.4803323 + } + }, + "rust_ms_per_iter": 42.523324, + "ffi_ms_per_iter": 8.409187, + "rust_bytes_per_sec": 24034692.113909062, + "ffi_bytes_per_sec": 121537908.4803323, + "delta_rust_over_ffi": 0.19775469575238283, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=compress, level=default", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "compress", + "level": "default", + "source": null + }, + "input_bytes": 1022035, + "ratio": { + "rust": 0.565681, + "ffi": 0.515776, + "delta_rust_over_ffi": 1.0967571193696488, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/default/decodecorpus-z000033/matrix/pure_rust", + "ms_per_iter": 62.558083, + "bytes_per_sec": 16337377.21790484 + }, + "ffi": { + "benchmark_name": "compress/default/decodecorpus-z000033/matrix/c_ffi", + "ms_per_iter": 2.808885, + "bytes_per_sec": 363857900.91085964 + } + }, + "rust_ms_per_iter": 62.558083, + "ffi_ms_per_iter": 2.808885, + "rust_bytes_per_sec": 16337377.21790484, + "ffi_bytes_per_sec": 363857900.91085964, + "delta_rust_over_ffi": 0.04490043277061415, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=compress, level=fastest", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "compress", + "level": "fastest", + "source": null + }, + "input_bytes": 1022035, + "ratio": { + "rust": 0.595247, + "ffi": 0.558199, + "delta_rust_over_ffi": 1.0663705954328115, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/fastest/decodecorpus-z000033/matrix/pure_rust", + "ms_per_iter": 12.453617, + "bytes_per_sec": 82067322.28877763 + }, + "ffi": { + "benchmark_name": "compress/fastest/decodecorpus-z000033/matrix/c_ffi", + "ms_per_iter": 1.84233, + "bytes_per_sec": 554751320.3389186 + } + }, + "rust_ms_per_iter": 12.453617, + "ffi_ms_per_iter": 1.84233, + "rust_bytes_per_sec": 82067322.28877763, + "ffi_bytes_per_sec": 554751320.3389186, + "delta_rust_over_ffi": 0.14793533477061327, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=compress-dict, level=best", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "compress-dict", + "level": "best", + "source": null + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/best/decodecorpus-z000033/matrix/c_ffi_without_dict", + "ms_per_iter": 15.940534, + "bytes_per_sec": 64115480.698450886 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/best/decodecorpus-z000033/matrix/c_ffi_with_dict", + "ms_per_iter": 30.809072, + "bytes_per_sec": 33173183.5350315 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=compress-dict, level=better", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "compress-dict", + "level": "better", + "source": null + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/better/decodecorpus-z000033/matrix/c_ffi_without_dict", + "ms_per_iter": 9.518165, + "bytes_per_sec": 107377314.85007876 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/better/decodecorpus-z000033/matrix/c_ffi_with_dict", + "ms_per_iter": 12.22232, + "bytes_per_sec": 83620376.49153352 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=compress-dict, level=default", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "compress-dict", + "level": "default", + "source": null + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/default/decodecorpus-z000033/matrix/c_ffi_without_dict", + "ms_per_iter": 3.40312, + "bytes_per_sec": 300322938.9501399 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/default/decodecorpus-z000033/matrix/c_ffi_with_dict", + "ms_per_iter": 4.456289, + "bytes_per_sec": 229346660.41632402 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=compress-dict, level=fastest", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "compress-dict", + "level": "fastest", + "source": null + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/fastest/decodecorpus-z000033/matrix/c_ffi_without_dict", + "ms_per_iter": 1.670326, + "bytes_per_sec": 611877561.6256946 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/fastest/decodecorpus-z000033/matrix/c_ffi_with_dict", + "ms_per_iter": 1.845367, + "bytes_per_sec": 553838342.1834248 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=decompress, level=best, source=c_stream", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "decompress", + "level": "best", + "source": "c_stream" + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/decodecorpus-z000033/c_stream/matrix/pure_rust", + "ms_per_iter": 3.416545, + "bytes_per_sec": 299142847.5257899 + }, + "ffi": { + "benchmark_name": "decompress/best/decodecorpus-z000033/c_stream/matrix/c_ffi", + "ms_per_iter": 0.760633, + "bytes_per_sec": 1343663764.2595048 + } + }, + "rust_ms_per_iter": 3.416545, + "ffi_ms_per_iter": 0.760633, + "rust_bytes_per_sec": 299142847.5257899, + "ffi_bytes_per_sec": 1343663764.2595048, + "delta_rust_over_ffi": 0.2226322205620005, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=decompress, level=best, source=rust_stream", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "decompress", + "level": "best", + "source": "rust_stream" + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/decodecorpus-z000033/rust_stream/matrix/pure_rust", + "ms_per_iter": 1.808897, + "bytes_per_sec": 565004530.385091 + }, + "ffi": { + "benchmark_name": "decompress/best/decodecorpus-z000033/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.469689, + "bytes_per_sec": 2175982405.378878 + } + }, + "rust_ms_per_iter": 1.808897, + "ffi_ms_per_iter": 0.469689, + "rust_bytes_per_sec": 565004530.385091, + "ffi_bytes_per_sec": 2175982405.378878, + "delta_rust_over_ffi": 0.25965491678077857, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=decompress, level=better, source=c_stream", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "decompress", + "level": "better", + "source": "c_stream" + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/decodecorpus-z000033/c_stream/matrix/pure_rust", + "ms_per_iter": 3.432231, + "bytes_per_sec": 297775703.3253298 + }, + "ffi": { + "benchmark_name": "decompress/better/decodecorpus-z000033/c_stream/matrix/c_ffi", + "ms_per_iter": 0.784199, + "bytes_per_sec": 1303285263.051853 + } + }, + "rust_ms_per_iter": 3.432231, + "ffi_ms_per_iter": 0.784199, + "rust_bytes_per_sec": 297775703.3253298, + "ffi_bytes_per_sec": 1303285263.051853, + "delta_rust_over_ffi": 0.22848083360356572, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=decompress, level=better, source=rust_stream", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "decompress", + "level": "better", + "source": "rust_stream" + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/decodecorpus-z000033/rust_stream/matrix/pure_rust", + "ms_per_iter": 1.837385, + "bytes_per_sec": 556244336.380236 + }, + "ffi": { + "benchmark_name": "decompress/better/decodecorpus-z000033/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.475596, + "bytes_per_sec": 2148956256.9912276 + } + }, + "rust_ms_per_iter": 1.837385, + "ffi_ms_per_iter": 0.475596, + "rust_bytes_per_sec": 556244336.380236, + "ffi_bytes_per_sec": 2148956256.9912276, + "delta_rust_over_ffi": 0.25884395485976, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=decompress, level=default, source=c_stream", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "decompress", + "level": "default", + "source": "c_stream" + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/decodecorpus-z000033/c_stream/matrix/pure_rust", + "ms_per_iter": 3.526671, + "bytes_per_sec": 289801628.7881688 + }, + "ffi": { + "benchmark_name": "decompress/default/decodecorpus-z000033/c_stream/matrix/c_ffi", + "ms_per_iter": 0.816802, + "bytes_per_sec": 1251264076.2387946 + } + }, + "rust_ms_per_iter": 3.526671, + "ffi_ms_per_iter": 0.816802, + "rust_bytes_per_sec": 289801628.7881688, + "ffi_bytes_per_sec": 1251264076.2387946, + "delta_rust_over_ffi": 0.23160708781737796, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=decompress, level=default, source=rust_stream", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "decompress", + "level": "default", + "source": "rust_stream" + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/decodecorpus-z000033/rust_stream/matrix/pure_rust", + "ms_per_iter": 1.399967, + "bytes_per_sec": 730042208.1377633 + }, + "ffi": { + "benchmark_name": "decompress/default/decodecorpus-z000033/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.378759, + "bytes_per_sec": 2698378124.3482003 + } + }, + "rust_ms_per_iter": 1.399967, + "ffi_ms_per_iter": 0.378759, + "rust_bytes_per_sec": 730042208.1377633, + "ffi_bytes_per_sec": 2698378124.3482003, + "delta_rust_over_ffi": 0.2705485200722588, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=decompress, level=fastest, source=c_stream", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "c_stream" + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/decodecorpus-z000033/c_stream/matrix/pure_rust", + "ms_per_iter": 4.466219, + "bytes_per_sec": 228836740.87634307 + }, + "ffi": { + "benchmark_name": "decompress/fastest/decodecorpus-z000033/c_stream/matrix/c_ffi", + "ms_per_iter": 0.771064, + "bytes_per_sec": 1325486600.3340838 + } + }, + "rust_ms_per_iter": 4.466219, + "ffi_ms_per_iter": 0.771064, + "rust_bytes_per_sec": 228836740.87634307, + "ffi_bytes_per_sec": 1325486600.3340838, + "delta_rust_over_ffi": 0.17264357166542887, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "decodecorpus-z000033 + stage=decompress, level=fastest, source=rust_stream", + "scenario": "decodecorpus-z000033", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "rust_stream" + }, + "input_bytes": 1022035, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/decodecorpus-z000033/rust_stream/matrix/pure_rust", + "ms_per_iter": 1.768432, + "bytes_per_sec": 577932880.653596 + }, + "ffi": { + "benchmark_name": "decompress/fastest/decodecorpus-z000033/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.483002, + "bytes_per_sec": 2116005730.8251312 + } + }, + "rust_ms_per_iter": 1.768432, + "ffi_ms_per_iter": 0.483002, + "rust_bytes_per_sec": 577932880.653596, + "ffi_bytes_per_sec": 2116005730.8251312, + "delta_rust_over_ffi": 0.273124440182037, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=compress, level=best", + "scenario": "high-entropy-1m", + "params": { + "stage": "compress", + "level": "best", + "source": null + }, + "input_bytes": 1048576, + "ratio": { + "rust": 1.000039, + "ffi": 1.000031, + "delta_rust_over_ffi": 1.0000079997520077, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/best/high-entropy-1m/matrix/pure_rust", + "ms_per_iter": 39.959886, + "bytes_per_sec": 26240715.50154072 + }, + "ffi": { + "benchmark_name": "compress/best/high-entropy-1m/matrix/c_ffi", + "ms_per_iter": 0.509961, + "bytes_per_sec": 2056188610.5015876 + } + }, + "rust_ms_per_iter": 39.959886, + "ffi_ms_per_iter": 0.509961, + "rust_bytes_per_sec": 26240715.50154072, + "ffi_bytes_per_sec": 2056188610.5015876, + "delta_rust_over_ffi": 0.012761823194390494, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=compress, level=better", + "scenario": "high-entropy-1m", + "params": { + "stage": "compress", + "level": "better", + "source": null + }, + "input_bytes": 1048576, + "ratio": { + "rust": 1.000039, + "ffi": 1.000031, + "delta_rust_over_ffi": 1.0000079997520077, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/better/high-entropy-1m/matrix/pure_rust", + "ms_per_iter": 85.397973, + "bytes_per_sec": 12278698.933521526 + }, + "ffi": { + "benchmark_name": "compress/better/high-entropy-1m/matrix/c_ffi", + "ms_per_iter": 0.365147, + "bytes_per_sec": 2871654429.5858927 + } + }, + "rust_ms_per_iter": 85.397973, + "ffi_ms_per_iter": 0.365147, + "rust_bytes_per_sec": 12278698.933521526, + "ffi_bytes_per_sec": 2871654429.5858927, + "delta_rust_over_ffi": 0.004275827483633599, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=compress, level=default", + "scenario": "high-entropy-1m", + "params": { + "stage": "compress", + "level": "default", + "source": null + }, + "input_bytes": 1048576, + "ratio": { + "rust": 1.000039, + "ffi": 1.000031, + "delta_rust_over_ffi": 1.0000079997520077, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/default/high-entropy-1m/matrix/pure_rust", + "ms_per_iter": 149.778119, + "bytes_per_sec": 7000862.388984868 + }, + "ffi": { + "benchmark_name": "compress/default/high-entropy-1m/matrix/c_ffi", + "ms_per_iter": 0.244661, + "bytes_per_sec": 4285832233.1716137 + } + }, + "rust_ms_per_iter": 149.778119, + "ffi_ms_per_iter": 0.244661, + "rust_bytes_per_sec": 7000862.388984868, + "ffi_bytes_per_sec": 4285832233.1716137, + "delta_rust_over_ffi": 0.001633489602042605, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=compress, level=fastest", + "scenario": "high-entropy-1m", + "params": { + "stage": "compress", + "level": "fastest", + "source": null + }, + "input_bytes": 1048576, + "ratio": { + "rust": 1.000039, + "ffi": 1.000031, + "delta_rust_over_ffi": 1.0000079997520077, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/fastest/high-entropy-1m/matrix/pure_rust", + "ms_per_iter": 17.656612, + "bytes_per_sec": 59387157.62684257 + }, + "ffi": { + "benchmark_name": "compress/fastest/high-entropy-1m/matrix/c_ffi", + "ms_per_iter": 0.220533, + "bytes_per_sec": 4754735119.007133 + } + }, + "rust_ms_per_iter": 17.656612, + "ffi_ms_per_iter": 0.220533, + "rust_bytes_per_sec": 59387157.62684257, + "ffi_bytes_per_sec": 4754735119.007133, + "delta_rust_over_ffi": 0.012490108521385644, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=decompress, level=best, source=c_stream", + "scenario": "high-entropy-1m", + "params": { + "stage": "decompress", + "level": "best", + "source": "c_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/high-entropy-1m/c_stream/matrix/pure_rust", + "ms_per_iter": 0.148608, + "bytes_per_sec": 7055986218.7769165 + }, + "ffi": { + "benchmark_name": "decompress/best/high-entropy-1m/c_stream/matrix/c_ffi", + "ms_per_iter": 0.020114, + "bytes_per_sec": 52131649597.29541 + } + }, + "rust_ms_per_iter": 0.148608, + "ffi_ms_per_iter": 0.020114, + "rust_bytes_per_sec": 7055986218.7769165, + "ffi_bytes_per_sec": 52131649597.29541, + "delta_rust_over_ffi": 0.13534937553832904, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=decompress, level=best, source=rust_stream", + "scenario": "high-entropy-1m", + "params": { + "stage": "decompress", + "level": "best", + "source": "rust_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/high-entropy-1m/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.150406, + "bytes_per_sec": 6971636769.809714 + }, + "ffi": { + "benchmark_name": "decompress/best/high-entropy-1m/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.096822, + "bytes_per_sec": 10829935345.272768 + } + }, + "rust_ms_per_iter": 0.150406, + "ffi_ms_per_iter": 0.096822, + "rust_bytes_per_sec": 6971636769.809714, + "ffi_bytes_per_sec": 10829935345.272768, + "delta_rust_over_ffi": 0.6437376168503915, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=decompress, level=better, source=c_stream", + "scenario": "high-entropy-1m", + "params": { + "stage": "decompress", + "level": "better", + "source": "c_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/high-entropy-1m/c_stream/matrix/pure_rust", + "ms_per_iter": 0.152761, + "bytes_per_sec": 6864160355.064446 + }, + "ffi": { + "benchmark_name": "decompress/better/high-entropy-1m/c_stream/matrix/c_ffi", + "ms_per_iter": 0.020114, + "bytes_per_sec": 52131649597.29541 + } + }, + "rust_ms_per_iter": 0.152761, + "ffi_ms_per_iter": 0.020114, + "rust_bytes_per_sec": 6864160355.064446, + "ffi_bytes_per_sec": 52131649597.29541, + "delta_rust_over_ffi": 0.13166973245789174, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=decompress, level=better, source=rust_stream", + "scenario": "high-entropy-1m", + "params": { + "stage": "decompress", + "level": "better", + "source": "rust_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/high-entropy-1m/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.154218, + "bytes_per_sec": 6799310067.566691 + }, + "ffi": { + "benchmark_name": "decompress/better/high-entropy-1m/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.099144, + "bytes_per_sec": 10576293068.667797 + } + }, + "rust_ms_per_iter": 0.154218, + "ffi_ms_per_iter": 0.099144, + "rust_bytes_per_sec": 6799310067.566691, + "ffi_bytes_per_sec": 10576293068.667797, + "delta_rust_over_ffi": 0.6428821538341828, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=decompress, level=default, source=c_stream", + "scenario": "high-entropy-1m", + "params": { + "stage": "decompress", + "level": "default", + "source": "c_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/high-entropy-1m/c_stream/matrix/pure_rust", + "ms_per_iter": 0.151113, + "bytes_per_sec": 6939019144.613633 + }, + "ffi": { + "benchmark_name": "decompress/default/high-entropy-1m/c_stream/matrix/c_ffi", + "ms_per_iter": 0.020776, + "bytes_per_sec": 50470542934.15479 + } + }, + "rust_ms_per_iter": 0.151113, + "ffi_ms_per_iter": 0.020776, + "rust_bytes_per_sec": 6939019144.613633, + "ffi_bytes_per_sec": 50470542934.15479, + "delta_rust_over_ffi": 0.13748651671265874, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=decompress, level=default, source=rust_stream", + "scenario": "high-entropy-1m", + "params": { + "stage": "decompress", + "level": "default", + "source": "rust_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/high-entropy-1m/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.150826, + "bytes_per_sec": 6952223091.509422 + }, + "ffi": { + "benchmark_name": "decompress/default/high-entropy-1m/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.098144, + "bytes_per_sec": 10684056080.860775 + } + }, + "rust_ms_per_iter": 0.150826, + "ffi_ms_per_iter": 0.098144, + "rust_bytes_per_sec": 6952223091.509422, + "ffi_bytes_per_sec": 10684056080.860775, + "delta_rust_over_ffi": 0.6507100897723206, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=decompress, level=fastest, source=c_stream", + "scenario": "high-entropy-1m", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "c_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/high-entropy-1m/c_stream/matrix/pure_rust", + "ms_per_iter": 0.157847, + "bytes_per_sec": 6642989730.561873 + }, + "ffi": { + "benchmark_name": "decompress/fastest/high-entropy-1m/c_stream/matrix/c_ffi", + "ms_per_iter": 0.018995, + "bytes_per_sec": 55202737562.51645 + } + }, + "rust_ms_per_iter": 0.157847, + "ffi_ms_per_iter": 0.018995, + "rust_bytes_per_sec": 6642989730.561873, + "ffi_bytes_per_sec": 55202737562.51645, + "delta_rust_over_ffi": 0.1203380488701084, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "high-entropy-1m + stage=decompress, level=fastest, source=rust_stream", + "scenario": "high-entropy-1m", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "rust_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/high-entropy-1m/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.160147, + "bytes_per_sec": 6547584406.826227 + }, + "ffi": { + "benchmark_name": "decompress/fastest/high-entropy-1m/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.100368, + "bytes_per_sec": 10447313884.903555 + } + }, + "rust_ms_per_iter": 0.160147, + "ffi_ms_per_iter": 0.100368, + "rust_bytes_per_sec": 6547584406.826227, + "ffi_bytes_per_sec": 10447313884.903555, + "delta_rust_over_ffi": 0.626724197143874, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=compress, level=best", + "scenario": "large-log-stream", + "params": { + "stage": "compress", + "level": "best", + "source": null + }, + "input_bytes": 104857600, + "ratio": { + "rust": 0.000101, + "ffi": 0.000177, + "delta_rust_over_ffi": 0.5706214689265537, + "status": "rust_better_smaller", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/best/large-log-stream/matrix/pure_rust", + "ms_per_iter": 270.381541, + "bytes_per_sec": 387813456.5406593 + }, + "ffi": { + "benchmark_name": "compress/best/large-log-stream/matrix/c_ffi", + "ms_per_iter": 36.588531, + "bytes_per_sec": 2865859796.338913 + } + }, + "rust_ms_per_iter": 270.381541, + "ffi_ms_per_iter": 36.588531, + "rust_bytes_per_sec": 387813456.5406593, + "ffi_bytes_per_sec": 2865859796.338913, + "delta_rust_over_ffi": 0.1353218524632937, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=compress, level=better", + "scenario": "large-log-stream", + "params": { + "stage": "compress", + "level": "better", + "source": null + }, + "input_bytes": 104857600, + "ratio": { + "rust": 0.000101, + "ffi": 9.3e-05, + "delta_rust_over_ffi": 1.0860215053763442, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/better/large-log-stream/matrix/pure_rust", + "ms_per_iter": 269.400083, + "bytes_per_sec": 389226309.18417346 + }, + "ffi": { + "benchmark_name": "compress/better/large-log-stream/matrix/c_ffi", + "ms_per_iter": 33.666475, + "bytes_per_sec": 3114599909.8509717 + } + }, + "rust_ms_per_iter": 269.400083, + "ffi_ms_per_iter": 33.666475, + "rust_bytes_per_sec": 389226309.18417346, + "ffi_bytes_per_sec": 3114599909.8509717, + "delta_rust_over_ffi": 0.12496831710330246, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=compress, level=default", + "scenario": "large-log-stream", + "params": { + "stage": "compress", + "level": "default", + "source": null + }, + "input_bytes": 104857600, + "ratio": { + "rust": 0.000101, + "ffi": 9.3e-05, + "delta_rust_over_ffi": 1.0860215053763442, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/default/large-log-stream/matrix/pure_rust", + "ms_per_iter": 497.207938, + "bytes_per_sec": 210892851.8353623 + }, + "ffi": { + "benchmark_name": "compress/default/large-log-stream/matrix/c_ffi", + "ms_per_iter": 13.060099, + "bytes_per_sec": 8028851848.672817 + } + }, + "rust_ms_per_iter": 497.207938, + "ffi_ms_per_iter": 13.060099, + "rust_bytes_per_sec": 210892851.8353623, + "ffi_bytes_per_sec": 8028851848.672817, + "delta_rust_over_ffi": 0.026266875489827757, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=compress, level=fastest", + "scenario": "large-log-stream", + "params": { + "stage": "compress", + "level": "fastest", + "source": null + }, + "input_bytes": 104857600, + "ratio": { + "rust": 0.001265, + "ffi": 9.3e-05, + "delta_rust_over_ffi": 13.60215053763441, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/fastest/large-log-stream/matrix/pure_rust", + "ms_per_iter": 98.132257, + "bytes_per_sec": 1068533458.880906 + }, + "ffi": { + "benchmark_name": "compress/fastest/large-log-stream/matrix/c_ffi", + "ms_per_iter": 10.445751, + "bytes_per_sec": 10038301697.982271 + } + }, + "rust_ms_per_iter": 98.132257, + "ffi_ms_per_iter": 10.445751, + "rust_bytes_per_sec": 1068533458.880906, + "ffi_bytes_per_sec": 10038301697.982271, + "delta_rust_over_ffi": 0.10644564100874597, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=decompress, level=best, source=c_stream", + "scenario": "large-log-stream", + "params": { + "stage": "decompress", + "level": "best", + "source": "c_stream" + }, + "input_bytes": 104857600, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/large-log-stream/c_stream/matrix/pure_rust", + "ms_per_iter": 14.979973, + "bytes_per_sec": 6999852402.938244 + }, + "ffi": { + "benchmark_name": "decompress/best/large-log-stream/c_stream/matrix/c_ffi", + "ms_per_iter": 3.337433, + "bytes_per_sec": 31418638216.85709 + } + }, + "rust_ms_per_iter": 14.979973, + "ffi_ms_per_iter": 3.337433, + "rust_bytes_per_sec": 6999852402.938244, + "ffi_bytes_per_sec": 31418638216.85709, + "delta_rust_over_ffi": 0.22279299168296232, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=decompress, level=best, source=rust_stream", + "scenario": "large-log-stream", + "params": { + "stage": "decompress", + "level": "best", + "source": "rust_stream" + }, + "input_bytes": 104857600, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/large-log-stream/rust_stream/matrix/pure_rust", + "ms_per_iter": 14.578202, + "bytes_per_sec": 7192766295.871056 + }, + "ffi": { + "benchmark_name": "decompress/best/large-log-stream/rust_stream/matrix/c_ffi", + "ms_per_iter": 10.03948, + "bytes_per_sec": 10444525015.239834 + } + }, + "rust_ms_per_iter": 14.578202, + "ffi_ms_per_iter": 10.03948, + "rust_bytes_per_sec": 7192766295.871056, + "ffi_bytes_per_sec": 10444525015.239834, + "delta_rust_over_ffi": 0.6886638009268907, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=decompress, level=better, source=c_stream", + "scenario": "large-log-stream", + "params": { + "stage": "decompress", + "level": "better", + "source": "c_stream" + }, + "input_bytes": 104857600, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/large-log-stream/c_stream/matrix/pure_rust", + "ms_per_iter": 14.10199, + "bytes_per_sec": 7435659789.859446 + }, + "ffi": { + "benchmark_name": "decompress/better/large-log-stream/c_stream/matrix/c_ffi", + "ms_per_iter": 3.260717, + "bytes_per_sec": 32157835224.584038 + } + }, + "rust_ms_per_iter": 14.10199, + "ffi_ms_per_iter": 3.260717, + "rust_bytes_per_sec": 7435659789.859446, + "ffi_bytes_per_sec": 32157835224.584038, + "delta_rust_over_ffi": 0.2312238910962212, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=decompress, level=better, source=rust_stream", + "scenario": "large-log-stream", + "params": { + "stage": "decompress", + "level": "better", + "source": "rust_stream" + }, + "input_bytes": 104857600, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/large-log-stream/rust_stream/matrix/pure_rust", + "ms_per_iter": 14.42761, + "bytes_per_sec": 7267842698.8253765 + }, + "ffi": { + "benchmark_name": "decompress/better/large-log-stream/rust_stream/matrix/c_ffi", + "ms_per_iter": 10.025435, + "bytes_per_sec": 10459157133.830105 + } + }, + "rust_ms_per_iter": 14.42761, + "ffi_ms_per_iter": 10.025435, + "rust_bytes_per_sec": 7267842698.8253765, + "ffi_bytes_per_sec": 10459157133.830105, + "delta_rust_over_ffi": 0.6948784310083235, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=decompress, level=default, source=c_stream", + "scenario": "large-log-stream", + "params": { + "stage": "decompress", + "level": "default", + "source": "c_stream" + }, + "input_bytes": 104857600, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/large-log-stream/c_stream/matrix/pure_rust", + "ms_per_iter": 13.800855, + "bytes_per_sec": 7597906071.761496 + }, + "ffi": { + "benchmark_name": "decompress/default/large-log-stream/c_stream/matrix/c_ffi", + "ms_per_iter": 3.253621, + "bytes_per_sec": 32227970006.34063 + } + }, + "rust_ms_per_iter": 13.800855, + "ffi_ms_per_iter": 3.253621, + "rust_bytes_per_sec": 7597906071.761496, + "ffi_bytes_per_sec": 32227970006.34063, + "delta_rust_over_ffi": 0.23575503111944873, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=decompress, level=default, source=rust_stream", + "scenario": "large-log-stream", + "params": { + "stage": "decompress", + "level": "default", + "source": "rust_stream" + }, + "input_bytes": 104857600, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/large-log-stream/rust_stream/matrix/pure_rust", + "ms_per_iter": 13.454484, + "bytes_per_sec": 7793505867.634909 + }, + "ffi": { + "benchmark_name": "decompress/default/large-log-stream/rust_stream/matrix/c_ffi", + "ms_per_iter": 10.082484, + "bytes_per_sec": 10399976831.106304 + } + }, + "rust_ms_per_iter": 13.454484, + "ffi_ms_per_iter": 10.082484, + "rust_bytes_per_sec": 7793505867.634909, + "ffi_bytes_per_sec": 10399976831.106304, + "delta_rust_over_ffi": 0.749377233641959, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=decompress, level=fastest, source=c_stream", + "scenario": "large-log-stream", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "c_stream" + }, + "input_bytes": 104857600, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/large-log-stream/c_stream/matrix/pure_rust", + "ms_per_iter": 14.019549, + "bytes_per_sec": 7479384679.207584 + }, + "ffi": { + "benchmark_name": "decompress/fastest/large-log-stream/c_stream/matrix/c_ffi", + "ms_per_iter": 3.276283, + "bytes_per_sec": 32005049624.834 + } + }, + "rust_ms_per_iter": 14.019549, + "ffi_ms_per_iter": 3.276283, + "rust_bytes_per_sec": 7479384679.207584, + "ffi_bytes_per_sec": 32005049624.834, + "delta_rust_over_ffi": 0.23369389414737948, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "large-log-stream + stage=decompress, level=fastest, source=rust_stream", + "scenario": "large-log-stream", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "rust_stream" + }, + "input_bytes": 104857600, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/large-log-stream/rust_stream/matrix/pure_rust", + "ms_per_iter": 13.374487, + "bytes_per_sec": 7840121269.698045 + }, + "ffi": { + "benchmark_name": "decompress/fastest/large-log-stream/rust_stream/matrix/c_ffi", + "ms_per_iter": 10.70252, + "bytes_per_sec": 9797468259.811708 + } + }, + "rust_ms_per_iter": 13.374487, + "ffi_ms_per_iter": 10.70252, + "rust_bytes_per_sec": 7840121269.698045, + "ffi_bytes_per_sec": 9797468259.811708, + "delta_rust_over_ffi": 0.800219103730857, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=compress, level=best", + "scenario": "low-entropy-1m", + "params": { + "stage": "compress", + "level": "best", + "source": null + }, + "input_bytes": 1048576, + "ratio": { + "rust": 0.000163, + "ffi": 0.000148, + "delta_rust_over_ffi": 1.1013513513513515, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/best/low-entropy-1m/matrix/pure_rust", + "ms_per_iter": 2.802975, + "bytes_per_sec": 374093953.7455739 + }, + "ffi": { + "benchmark_name": "compress/best/low-entropy-1m/matrix/c_ffi", + "ms_per_iter": 0.682945, + "bytes_per_sec": 1535374005.227361 + } + }, + "rust_ms_per_iter": 2.802975, + "ffi_ms_per_iter": 0.682945, + "rust_bytes_per_sec": 374093953.7455739, + "ffi_bytes_per_sec": 1535374005.227361, + "delta_rust_over_ffi": 0.24365005039288612, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=compress, level=better", + "scenario": "low-entropy-1m", + "params": { + "stage": "compress", + "level": "better", + "source": null + }, + "input_bytes": 1048576, + "ratio": { + "rust": 0.000163, + "ffi": 0.000148, + "delta_rust_over_ffi": 1.1013513513513515, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/better/low-entropy-1m/matrix/pure_rust", + "ms_per_iter": 2.709656, + "bytes_per_sec": 386977535.1557541 + }, + "ffi": { + "benchmark_name": "compress/better/low-entropy-1m/matrix/c_ffi", + "ms_per_iter": 0.355883, + "bytes_per_sec": 2946406543.7236395 + } + }, + "rust_ms_per_iter": 2.709656, + "ffi_ms_per_iter": 0.355883, + "rust_bytes_per_sec": 386977535.1557541, + "ffi_bytes_per_sec": 2946406543.7236395, + "delta_rust_over_ffi": 0.1313388120115616, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=compress, level=default", + "scenario": "low-entropy-1m", + "params": { + "stage": "compress", + "level": "default", + "source": null + }, + "input_bytes": 1048576, + "ratio": { + "rust": 0.000163, + "ffi": 0.000148, + "delta_rust_over_ffi": 1.1013513513513515, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/default/low-entropy-1m/matrix/pure_rust", + "ms_per_iter": 4.768849, + "bytes_per_sec": 219880310.74164855 + }, + "ffi": { + "benchmark_name": "compress/default/low-entropy-1m/matrix/c_ffi", + "ms_per_iter": 0.133361, + "bytes_per_sec": 7862688492.137881 + } + }, + "rust_ms_per_iter": 4.768849, + "ffi_ms_per_iter": 0.133361, + "rust_bytes_per_sec": 219880310.74164855, + "ffi_bytes_per_sec": 7862688492.137881, + "delta_rust_over_ffi": 0.027965028878037448, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=compress, level=fastest", + "scenario": "low-entropy-1m", + "params": { + "stage": "compress", + "level": "fastest", + "source": null + }, + "input_bytes": 1048576, + "ratio": { + "rust": 0.00049, + "ffi": 0.000148, + "delta_rust_over_ffi": 3.310810810810811, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/fastest/low-entropy-1m/matrix/pure_rust", + "ms_per_iter": 0.711103, + "bytes_per_sec": 1474576819.3918462 + }, + "ffi": { + "benchmark_name": "compress/fastest/low-entropy-1m/matrix/c_ffi", + "ms_per_iter": 0.08417, + "bytes_per_sec": 12457835333.25413 + } + }, + "rust_ms_per_iter": 0.711103, + "ffi_ms_per_iter": 0.08417, + "rust_bytes_per_sec": 1474576819.3918462, + "ffi_bytes_per_sec": 12457835333.25413, + "delta_rust_over_ffi": 0.11836541260548752, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=decompress, level=best, source=c_stream", + "scenario": "low-entropy-1m", + "params": { + "stage": "decompress", + "level": "best", + "source": "c_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/low-entropy-1m/c_stream/matrix/pure_rust", + "ms_per_iter": 0.263087, + "bytes_per_sec": 3985662537.487599 + }, + "ffi": { + "benchmark_name": "decompress/best/low-entropy-1m/c_stream/matrix/c_ffi", + "ms_per_iter": 0.076379, + "bytes_per_sec": 13728590319.32861 + } + }, + "rust_ms_per_iter": 0.263087, + "ffi_ms_per_iter": 0.076379, + "rust_bytes_per_sec": 3985662537.487599, + "ffi_bytes_per_sec": 13728590319.32861, + "delta_rust_over_ffi": 0.29031841178013357, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=decompress, level=best, source=rust_stream", + "scenario": "low-entropy-1m", + "params": { + "stage": "decompress", + "level": "best", + "source": "rust_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/low-entropy-1m/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.253698, + "bytes_per_sec": 4133166205.488416 + }, + "ffi": { + "benchmark_name": "decompress/best/low-entropy-1m/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.15009, + "bytes_per_sec": 6986314877.740023 + } + }, + "rust_ms_per_iter": 0.253698, + "ffi_ms_per_iter": 0.15009, + "rust_bytes_per_sec": 4133166205.488416, + "ffi_bytes_per_sec": 6986314877.740023, + "delta_rust_over_ffi": 0.5916089208428921, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=decompress, level=better, source=c_stream", + "scenario": "low-entropy-1m", + "params": { + "stage": "decompress", + "level": "better", + "source": "c_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/low-entropy-1m/c_stream/matrix/pure_rust", + "ms_per_iter": 0.258511, + "bytes_per_sec": 4056214242.333982 + }, + "ffi": { + "benchmark_name": "decompress/better/low-entropy-1m/c_stream/matrix/c_ffi", + "ms_per_iter": 0.076818, + "bytes_per_sec": 13650134083.157595 + } + }, + "rust_ms_per_iter": 0.258511, + "ffi_ms_per_iter": 0.076818, + "rust_bytes_per_sec": 4056214242.333982, + "ffi_bytes_per_sec": 13650134083.157595, + "delta_rust_over_ffi": 0.2971556336094015, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=decompress, level=better, source=rust_stream", + "scenario": "low-entropy-1m", + "params": { + "stage": "decompress", + "level": "better", + "source": "rust_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/low-entropy-1m/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.253043, + "bytes_per_sec": 4143864876.720557 + }, + "ffi": { + "benchmark_name": "decompress/better/low-entropy-1m/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.149176, + "bytes_per_sec": 7029119965.678125 + } + }, + "rust_ms_per_iter": 0.253043, + "ffi_ms_per_iter": 0.149176, + "rust_bytes_per_sec": 4143864876.720557, + "ffi_bytes_per_sec": 7029119965.678125, + "delta_rust_over_ffi": 0.5895282619949969, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=decompress, level=default, source=c_stream", + "scenario": "low-entropy-1m", + "params": { + "stage": "decompress", + "level": "default", + "source": "c_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/low-entropy-1m/c_stream/matrix/pure_rust", + "ms_per_iter": 0.25721, + "bytes_per_sec": 4076731075.7746587 + }, + "ffi": { + "benchmark_name": "decompress/default/low-entropy-1m/c_stream/matrix/c_ffi", + "ms_per_iter": 0.075442, + "bytes_per_sec": 13899101296.360117 + } + }, + "rust_ms_per_iter": 0.25721, + "ffi_ms_per_iter": 0.075442, + "rust_bytes_per_sec": 4076731075.7746587, + "ffi_bytes_per_sec": 13899101296.360117, + "delta_rust_over_ffi": 0.2933089693246763, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=decompress, level=default, source=rust_stream", + "scenario": "low-entropy-1m", + "params": { + "stage": "decompress", + "level": "default", + "source": "rust_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/low-entropy-1m/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.253237, + "bytes_per_sec": 4140690341.4587913 + }, + "ffi": { + "benchmark_name": "decompress/default/low-entropy-1m/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.15308, + "bytes_per_sec": 6849856284.295794 + } + }, + "rust_ms_per_iter": 0.253237, + "ffi_ms_per_iter": 0.15308, + "rust_bytes_per_sec": 4140690341.4587913, + "ffi_bytes_per_sec": 6849856284.295794, + "delta_rust_over_ffi": 0.6044930243210904, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=decompress, level=fastest, source=c_stream", + "scenario": "low-entropy-1m", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "c_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/low-entropy-1m/c_stream/matrix/pure_rust", + "ms_per_iter": 0.257709, + "bytes_per_sec": 4068837332.029537 + }, + "ffi": { + "benchmark_name": "decompress/fastest/low-entropy-1m/c_stream/matrix/c_ffi", + "ms_per_iter": 0.075697, + "bytes_per_sec": 13852279482.674345 + } + }, + "rust_ms_per_iter": 0.257709, + "ffi_ms_per_iter": 0.075697, + "rust_bytes_per_sec": 4068837332.029537, + "ffi_bytes_per_sec": 13852279482.674345, + "delta_rust_over_ffi": 0.29373052551521295, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "low-entropy-1m + stage=decompress, level=fastest, source=rust_stream", + "scenario": "low-entropy-1m", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "rust_stream" + }, + "input_bytes": 1048576, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/low-entropy-1m/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.252591, + "bytes_per_sec": 4151280132.7046485 + }, + "ffi": { + "benchmark_name": "decompress/fastest/low-entropy-1m/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.147971, + "bytes_per_sec": 7086361516.783694 + } + }, + "rust_ms_per_iter": 0.252591, + "ffi_ms_per_iter": 0.147971, + "rust_bytes_per_sec": 4151280132.7046485, + "ffi_bytes_per_sec": 7086361516.783694, + "delta_rust_over_ffi": 0.5858126378216166, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=compress, level=best", + "scenario": "small-10k-random", + "params": { + "stage": "compress", + "level": "best", + "source": null + }, + "input_bytes": 10240, + "ratio": { + "rust": 1.001855, + "ffi": 1.000879, + "delta_rust_over_ffi": 1.0009751428494351, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/best/small-10k-random/matrix/pure_rust", + "ms_per_iter": 0.355466, + "bytes_per_sec": 28807255.827561565 + }, + "ffi": { + "benchmark_name": "compress/best/small-10k-random/matrix/c_ffi", + "ms_per_iter": 0.206376, + "bytes_per_sec": 49618172.655735165 + } + }, + "rust_ms_per_iter": 0.355466, + "ffi_ms_per_iter": 0.206376, + "rust_bytes_per_sec": 28807255.827561565, + "ffi_bytes_per_sec": 49618172.655735165, + "delta_rust_over_ffi": 0.5805787332684419, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=compress, level=better", + "scenario": "small-10k-random", + "params": { + "stage": "compress", + "level": "better", + "source": null + }, + "input_bytes": 10240, + "ratio": { + "rust": 1.001855, + "ffi": 1.000879, + "delta_rust_over_ffi": 1.0009751428494351, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/better/small-10k-random/matrix/pure_rust", + "ms_per_iter": 0.293398, + "bytes_per_sec": 34901396.73753741 + }, + "ffi": { + "benchmark_name": "compress/better/small-10k-random/matrix/c_ffi", + "ms_per_iter": 0.058631, + "bytes_per_sec": 174651634.8007027 + } + }, + "rust_ms_per_iter": 0.293398, + "ffi_ms_per_iter": 0.058631, + "rust_bytes_per_sec": 34901396.73753741, + "ffi_bytes_per_sec": 174651634.8007027, + "delta_rust_over_ffi": 0.1998343546990777, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=compress, level=default", + "scenario": "small-10k-random", + "params": { + "stage": "compress", + "level": "default", + "source": null + }, + "input_bytes": 10240, + "ratio": { + "rust": 1.001855, + "ffi": 1.000879, + "delta_rust_over_ffi": 1.0009751428494351, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/default/small-10k-random/matrix/pure_rust", + "ms_per_iter": 1.614877, + "bytes_per_sec": 6341040.21544675 + }, + "ffi": { + "benchmark_name": "compress/default/small-10k-random/matrix/c_ffi", + "ms_per_iter": 0.012321, + "bytes_per_sec": 831101371.6419121 + } + }, + "rust_ms_per_iter": 1.614877, + "ffi_ms_per_iter": 0.012321, + "rust_bytes_per_sec": 6341040.21544675, + "ffi_bytes_per_sec": 831101371.6419121, + "delta_rust_over_ffi": 0.007629683251417912, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=compress, level=fastest", + "scenario": "small-10k-random", + "params": { + "stage": "compress", + "level": "fastest", + "source": null + }, + "input_bytes": 10240, + "ratio": { + "rust": 1.001855, + "ffi": 1.000879, + "delta_rust_over_ffi": 1.0009751428494351, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/fastest/small-10k-random/matrix/pure_rust", + "ms_per_iter": 0.168979, + "bytes_per_sec": 60599246.06016133 + }, + "ffi": { + "benchmark_name": "compress/fastest/small-10k-random/matrix/c_ffi", + "ms_per_iter": 0.005521, + "bytes_per_sec": 1854736460.7860894 + } + }, + "rust_ms_per_iter": 0.168979, + "ffi_ms_per_iter": 0.005521, + "rust_bytes_per_sec": 60599246.06016133, + "ffi_bytes_per_sec": 1854736460.7860894, + "delta_rust_over_ffi": 0.03267269897442878, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=compress-dict, level=best", + "scenario": "small-10k-random", + "params": { + "stage": "compress-dict", + "level": "best", + "source": null + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/best/small-10k-random/matrix/c_ffi_without_dict", + "ms_per_iter": 0.117334, + "bytes_per_sec": 87272231.40777609 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/best/small-10k-random/matrix/c_ffi_with_dict", + "ms_per_iter": 0.230611, + "bytes_per_sec": 44403779.524827525 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=compress-dict, level=better", + "scenario": "small-10k-random", + "params": { + "stage": "compress-dict", + "level": "better", + "source": null + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/better/small-10k-random/matrix/c_ffi_without_dict", + "ms_per_iter": 0.008687, + "bytes_per_sec": 1178772879.0146196 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/better/small-10k-random/matrix/c_ffi_with_dict", + "ms_per_iter": 0.076557, + "bytes_per_sec": 133756547.40912 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=compress-dict, level=default", + "scenario": "small-10k-random", + "params": { + "stage": "compress-dict", + "level": "default", + "source": null + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/default/small-10k-random/matrix/c_ffi_without_dict", + "ms_per_iter": 0.005335, + "bytes_per_sec": 1919400187.4414244 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/default/small-10k-random/matrix/c_ffi_with_dict", + "ms_per_iter": 0.029346, + "bytes_per_sec": 348940230.3550739 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=compress-dict, level=fastest", + "scenario": "small-10k-random", + "params": { + "stage": "compress-dict", + "level": "fastest", + "source": null + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/fastest/small-10k-random/matrix/c_ffi_without_dict", + "ms_per_iter": 0.003893, + "bytes_per_sec": 2630362188.54354 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/fastest/small-10k-random/matrix/c_ffi_with_dict", + "ms_per_iter": 0.014234, + "bytes_per_sec": 719404243.3609667 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=decompress, level=best, source=c_stream", + "scenario": "small-10k-random", + "params": { + "stage": "decompress", + "level": "best", + "source": "c_stream" + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/small-10k-random/c_stream/matrix/pure_rust", + "ms_per_iter": 0.002405, + "bytes_per_sec": 4257796257.796258 + }, + "ffi": { + "benchmark_name": "decompress/best/small-10k-random/c_stream/matrix/c_ffi", + "ms_per_iter": 0.000152, + "bytes_per_sec": 67368421052.63158 + } + }, + "rust_ms_per_iter": 0.002405, + "ffi_ms_per_iter": 0.000152, + "rust_bytes_per_sec": 4257796257.796258, + "ffi_bytes_per_sec": 67368421052.63158, + "delta_rust_over_ffi": 0.0632016632016632, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=decompress, level=best, source=rust_stream", + "scenario": "small-10k-random", + "params": { + "stage": "decompress", + "level": "best", + "source": "rust_stream" + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/small-10k-random/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.001785, + "bytes_per_sec": 5736694677.871149 + }, + "ffi": { + "benchmark_name": "decompress/best/small-10k-random/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.001307, + "bytes_per_sec": 7834736036.725326 + } + }, + "rust_ms_per_iter": 0.001785, + "ffi_ms_per_iter": 0.001307, + "rust_bytes_per_sec": 5736694677.871149, + "ffi_bytes_per_sec": 7834736036.725326, + "delta_rust_over_ffi": 0.7322128851540617, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=decompress, level=better, source=c_stream", + "scenario": "small-10k-random", + "params": { + "stage": "decompress", + "level": "better", + "source": "c_stream" + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/small-10k-random/c_stream/matrix/pure_rust", + "ms_per_iter": 0.002454, + "bytes_per_sec": 4172779136.104319 + }, + "ffi": { + "benchmark_name": "decompress/better/small-10k-random/c_stream/matrix/c_ffi", + "ms_per_iter": 0.000153, + "bytes_per_sec": 66928104575.1634 + } + }, + "rust_ms_per_iter": 0.002454, + "ffi_ms_per_iter": 0.000153, + "rust_bytes_per_sec": 4172779136.104319, + "ffi_bytes_per_sec": 66928104575.1634, + "delta_rust_over_ffi": 0.062347188264058676, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=decompress, level=better, source=rust_stream", + "scenario": "small-10k-random", + "params": { + "stage": "decompress", + "level": "better", + "source": "rust_stream" + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/small-10k-random/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.001455, + "bytes_per_sec": 7037800687.285224 + }, + "ffi": { + "benchmark_name": "decompress/better/small-10k-random/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.001042, + "bytes_per_sec": 9827255278.310942 + } + }, + "rust_ms_per_iter": 0.001455, + "ffi_ms_per_iter": 0.001042, + "rust_bytes_per_sec": 7037800687.285224, + "ffi_bytes_per_sec": 9827255278.310942, + "delta_rust_over_ffi": 0.7161512027491409, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=decompress, level=default, source=c_stream", + "scenario": "small-10k-random", + "params": { + "stage": "decompress", + "level": "default", + "source": "c_stream" + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/small-10k-random/c_stream/matrix/pure_rust", + "ms_per_iter": 0.002408, + "bytes_per_sec": 4252491694.3521595 + }, + "ffi": { + "benchmark_name": "decompress/default/small-10k-random/c_stream/matrix/c_ffi", + "ms_per_iter": 0.000151, + "bytes_per_sec": 67814569536.423836 + } + }, + "rust_ms_per_iter": 0.002408, + "ffi_ms_per_iter": 0.000151, + "rust_bytes_per_sec": 4252491694.3521595, + "ffi_bytes_per_sec": 67814569536.423836, + "delta_rust_over_ffi": 0.0627076411960133, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=decompress, level=default, source=rust_stream", + "scenario": "small-10k-random", + "params": { + "stage": "decompress", + "level": "default", + "source": "rust_stream" + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/small-10k-random/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.00148, + "bytes_per_sec": 6918918918.918919 + }, + "ffi": { + "benchmark_name": "decompress/default/small-10k-random/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.001044, + "bytes_per_sec": 9808429118.773945 + } + }, + "rust_ms_per_iter": 0.00148, + "ffi_ms_per_iter": 0.001044, + "rust_bytes_per_sec": 6918918918.918919, + "ffi_bytes_per_sec": 9808429118.773945, + "delta_rust_over_ffi": 0.7054054054054055, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=decompress, level=fastest, source=c_stream", + "scenario": "small-10k-random", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "c_stream" + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/small-10k-random/c_stream/matrix/pure_rust", + "ms_per_iter": 0.002413, + "bytes_per_sec": 4243680066.307501 + }, + "ffi": { + "benchmark_name": "decompress/fastest/small-10k-random/c_stream/matrix/c_ffi", + "ms_per_iter": 0.000153, + "bytes_per_sec": 66928104575.1634 + } + }, + "rust_ms_per_iter": 0.002413, + "ffi_ms_per_iter": 0.000153, + "rust_bytes_per_sec": 4243680066.307501, + "ffi_bytes_per_sec": 66928104575.1634, + "delta_rust_over_ffi": 0.0634065478657273, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-10k-random + stage=decompress, level=fastest, source=rust_stream", + "scenario": "small-10k-random", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "rust_stream" + }, + "input_bytes": 10240, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/small-10k-random/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.001463, + "bytes_per_sec": 6999316473.000684 + }, + "ffi": { + "benchmark_name": "decompress/fastest/small-10k-random/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.001048, + "bytes_per_sec": 9770992366.412212 + } + }, + "rust_ms_per_iter": 0.001463, + "ffi_ms_per_iter": 0.001048, + "rust_bytes_per_sec": 6999316473.000684, + "ffi_bytes_per_sec": 9770992366.412212, + "delta_rust_over_ffi": 0.7163362952836638, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=compress, level=best", + "scenario": "small-1k-random", + "params": { + "stage": "compress", + "level": "best", + "source": null + }, + "input_bytes": 1024, + "ratio": { + "rust": 1.018555, + "ffi": 1.008789, + "delta_rust_over_ffi": 1.009680914442961, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/best/small-1k-random/matrix/pure_rust", + "ms_per_iter": 0.146316, + "bytes_per_sec": 6998551.081221465 + }, + "ffi": { + "benchmark_name": "compress/best/small-1k-random/matrix/c_ffi", + "ms_per_iter": 0.198118, + "bytes_per_sec": 5168636.872974693 + } + }, + "rust_ms_per_iter": 0.146316, + "ffi_ms_per_iter": 0.198118, + "rust_bytes_per_sec": 6998551.081221465, + "ffi_bytes_per_sec": 5168636.872974693, + "delta_rust_over_ffi": 1.3540419366303065, + "status": "rust_faster", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=compress, level=better", + "scenario": "small-1k-random", + "params": { + "stage": "compress", + "level": "better", + "source": null + }, + "input_bytes": 1024, + "ratio": { + "rust": 1.018555, + "ffi": 1.008789, + "delta_rust_over_ffi": 1.009680914442961, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/better/small-1k-random/matrix/pure_rust", + "ms_per_iter": 0.086175, + "bytes_per_sec": 11882796.634754859 + }, + "ffi": { + "benchmark_name": "compress/better/small-1k-random/matrix/c_ffi", + "ms_per_iter": 0.051952, + "bytes_per_sec": 19710502.00184786 + } + }, + "rust_ms_per_iter": 0.086175, + "ffi_ms_per_iter": 0.051952, + "rust_bytes_per_sec": 11882796.634754859, + "ffi_bytes_per_sec": 19710502.00184786, + "delta_rust_over_ffi": 0.602866260516391, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=compress, level=default", + "scenario": "small-1k-random", + "params": { + "stage": "compress", + "level": "default", + "source": null + }, + "input_bytes": 1024, + "ratio": { + "rust": 1.018555, + "ffi": 1.008789, + "delta_rust_over_ffi": 1.009680914442961, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/default/small-1k-random/matrix/pure_rust", + "ms_per_iter": 1.127119, + "bytes_per_sec": 908510.991297281 + }, + "ffi": { + "benchmark_name": "compress/default/small-1k-random/matrix/c_ffi", + "ms_per_iter": 0.007907, + "bytes_per_sec": 129505501.45440747 + } + }, + "rust_ms_per_iter": 1.127119, + "ffi_ms_per_iter": 0.007907, + "rust_bytes_per_sec": 908510.991297281, + "ffi_bytes_per_sec": 129505501.45440747, + "delta_rust_over_ffi": 0.007015230867370705, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=compress, level=fastest", + "scenario": "small-1k-random", + "params": { + "stage": "compress", + "level": "fastest", + "source": null + }, + "input_bytes": 1024, + "ratio": { + "rust": 1.018555, + "ffi": 1.008789, + "delta_rust_over_ffi": 1.009680914442961, + "status": "near_parity", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/fastest/small-1k-random/matrix/pure_rust", + "ms_per_iter": 0.017017, + "bytes_per_sec": 60175118.99864841 + }, + "ffi": { + "benchmark_name": "compress/fastest/small-1k-random/matrix/c_ffi", + "ms_per_iter": 0.002069, + "bytes_per_sec": 494925084.5819236 + } + }, + "rust_ms_per_iter": 0.017017, + "ffi_ms_per_iter": 0.002069, + "rust_bytes_per_sec": 60175118.99864841, + "ffi_bytes_per_sec": 494925084.5819236, + "delta_rust_over_ffi": 0.1215842980548863, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=decompress, level=best, source=c_stream", + "scenario": "small-1k-random", + "params": { + "stage": "decompress", + "level": "best", + "source": "c_stream" + }, + "input_bytes": 1024, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/small-1k-random/c_stream/matrix/pure_rust", + "ms_per_iter": 0.001331, + "bytes_per_sec": 769346356.1232157 + }, + "ffi": { + "benchmark_name": "decompress/best/small-1k-random/c_stream/matrix/c_ffi", + "ms_per_iter": 3.4e-05, + "bytes_per_sec": 30117647058.82353 + } + }, + "rust_ms_per_iter": 0.001331, + "ffi_ms_per_iter": 3.4e-05, + "rust_bytes_per_sec": 769346356.1232157, + "ffi_bytes_per_sec": 30117647058.82353, + "delta_rust_over_ffi": 0.025544703230653647, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=decompress, level=best, source=rust_stream", + "scenario": "small-1k-random", + "params": { + "stage": "decompress", + "level": "best", + "source": "rust_stream" + }, + "input_bytes": 1024, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/small-1k-random/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.00019, + "bytes_per_sec": 5389473684.210526 + }, + "ffi": { + "benchmark_name": "decompress/best/small-1k-random/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.000131, + "bytes_per_sec": 7816793893.129769 + } + }, + "rust_ms_per_iter": 0.00019, + "ffi_ms_per_iter": 0.000131, + "rust_bytes_per_sec": 5389473684.210526, + "ffi_bytes_per_sec": 7816793893.129769, + "delta_rust_over_ffi": 0.6894736842105265, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=decompress, level=better, source=c_stream", + "scenario": "small-1k-random", + "params": { + "stage": "decompress", + "level": "better", + "source": "c_stream" + }, + "input_bytes": 1024, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/small-1k-random/c_stream/matrix/pure_rust", + "ms_per_iter": 0.001646, + "bytes_per_sec": 622114216.2818955 + }, + "ffi": { + "benchmark_name": "decompress/better/small-1k-random/c_stream/matrix/c_ffi", + "ms_per_iter": 4.1e-05, + "bytes_per_sec": 24975609756.09756 + } + }, + "rust_ms_per_iter": 0.001646, + "ffi_ms_per_iter": 4.1e-05, + "rust_bytes_per_sec": 622114216.2818955, + "ffi_bytes_per_sec": 24975609756.09756, + "delta_rust_over_ffi": 0.024908869987849334, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=decompress, level=better, source=rust_stream", + "scenario": "small-1k-random", + "params": { + "stage": "decompress", + "level": "better", + "source": "rust_stream" + }, + "input_bytes": 1024, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/small-1k-random/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.000189, + "bytes_per_sec": 5417989417.989418 + }, + "ffi": { + "benchmark_name": "decompress/better/small-1k-random/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.000129, + "bytes_per_sec": 7937984496.124031 + } + }, + "rust_ms_per_iter": 0.000189, + "ffi_ms_per_iter": 0.000129, + "rust_bytes_per_sec": 5417989417.989418, + "ffi_bytes_per_sec": 7937984496.124031, + "delta_rust_over_ffi": 0.6825396825396826, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=decompress, level=default, source=c_stream", + "scenario": "small-1k-random", + "params": { + "stage": "decompress", + "level": "default", + "source": "c_stream" + }, + "input_bytes": 1024, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/small-1k-random/c_stream/matrix/pure_rust", + "ms_per_iter": 0.001334, + "bytes_per_sec": 767616191.9040481 + }, + "ffi": { + "benchmark_name": "decompress/default/small-1k-random/c_stream/matrix/c_ffi", + "ms_per_iter": 3.4e-05, + "bytes_per_sec": 30117647058.82353 + } + }, + "rust_ms_per_iter": 0.001334, + "ffi_ms_per_iter": 3.4e-05, + "rust_bytes_per_sec": 767616191.9040481, + "ffi_bytes_per_sec": 30117647058.82353, + "delta_rust_over_ffi": 0.025487256371814097, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=decompress, level=default, source=rust_stream", + "scenario": "small-1k-random", + "params": { + "stage": "decompress", + "level": "default", + "source": "rust_stream" + }, + "input_bytes": 1024, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/small-1k-random/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.00019, + "bytes_per_sec": 5389473684.210526 + }, + "ffi": { + "benchmark_name": "decompress/default/small-1k-random/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.000131, + "bytes_per_sec": 7816793893.129769 + } + }, + "rust_ms_per_iter": 0.00019, + "ffi_ms_per_iter": 0.000131, + "rust_bytes_per_sec": 5389473684.210526, + "ffi_bytes_per_sec": 7816793893.129769, + "delta_rust_over_ffi": 0.6894736842105265, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=decompress, level=fastest, source=c_stream", + "scenario": "small-1k-random", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "c_stream" + }, + "input_bytes": 1024, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/small-1k-random/c_stream/matrix/pure_rust", + "ms_per_iter": 0.001352, + "bytes_per_sec": 757396449.7041421 + }, + "ffi": { + "benchmark_name": "decompress/fastest/small-1k-random/c_stream/matrix/c_ffi", + "ms_per_iter": 3.4e-05, + "bytes_per_sec": 30117647058.82353 + } + }, + "rust_ms_per_iter": 0.001352, + "ffi_ms_per_iter": 3.4e-05, + "rust_bytes_per_sec": 757396449.7041421, + "ffi_bytes_per_sec": 30117647058.82353, + "delta_rust_over_ffi": 0.025147928994082844, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-1k-random + stage=decompress, level=fastest, source=rust_stream", + "scenario": "small-1k-random", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "rust_stream" + }, + "input_bytes": 1024, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/small-1k-random/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.00019, + "bytes_per_sec": 5389473684.210526 + }, + "ffi": { + "benchmark_name": "decompress/fastest/small-1k-random/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.00013, + "bytes_per_sec": 7876923076.923077 + } + }, + "rust_ms_per_iter": 0.00019, + "ffi_ms_per_iter": 0.00013, + "rust_bytes_per_sec": 5389473684.210526, + "ffi_bytes_per_sec": 7876923076.923077, + "delta_rust_over_ffi": 0.6842105263157895, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=compress, level=best", + "scenario": "small-4k-log-lines", + "params": { + "stage": "compress", + "level": "best", + "source": null + }, + "input_bytes": 4096, + "ratio": { + "rust": 0.04248, + "ffi": 0.036377, + "delta_rust_over_ffi": 1.167770844214751, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/best/small-4k-log-lines/matrix/pure_rust", + "ms_per_iter": 0.145367, + "bytes_per_sec": 28176959.007202458 + }, + "ffi": { + "benchmark_name": "compress/best/small-4k-log-lines/matrix/c_ffi", + "ms_per_iter": 0.199334, + "bytes_per_sec": 20548426.259443946 + } + }, + "rust_ms_per_iter": 0.145367, + "ffi_ms_per_iter": 0.199334, + "rust_bytes_per_sec": 28176959.007202458, + "ffi_bytes_per_sec": 20548426.259443946, + "delta_rust_over_ffi": 1.371246569028734, + "status": "rust_faster", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=compress, level=better", + "scenario": "small-4k-log-lines", + "params": { + "stage": "compress", + "level": "better", + "source": null + }, + "input_bytes": 4096, + "ratio": { + "rust": 0.04248, + "ffi": 0.036377, + "delta_rust_over_ffi": 1.167770844214751, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/better/small-4k-log-lines/matrix/pure_rust", + "ms_per_iter": 0.087348, + "bytes_per_sec": 46892888.217245966 + }, + "ffi": { + "benchmark_name": "compress/better/small-4k-log-lines/matrix/c_ffi", + "ms_per_iter": 0.053681, + "bytes_per_sec": 76302602.41053632 + } + }, + "rust_ms_per_iter": 0.087348, + "ffi_ms_per_iter": 0.053681, + "rust_bytes_per_sec": 46892888.217245966, + "ffi_bytes_per_sec": 76302602.41053632, + "delta_rust_over_ffi": 0.6145647295873976, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=compress, level=default", + "scenario": "small-4k-log-lines", + "params": { + "stage": "compress", + "level": "default", + "source": null + }, + "input_bytes": 4096, + "ratio": { + "rust": 0.043213, + "ffi": 0.036865, + "delta_rust_over_ffi": 1.1721958497219584, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/default/small-4k-log-lines/matrix/pure_rust", + "ms_per_iter": 1.157853, + "bytes_per_sec": 3537582.059207862 + }, + "ffi": { + "benchmark_name": "compress/default/small-4k-log-lines/matrix/c_ffi", + "ms_per_iter": 0.010445, + "bytes_per_sec": 392149353.7577789 + } + }, + "rust_ms_per_iter": 1.157853, + "ffi_ms_per_iter": 0.010445, + "rust_bytes_per_sec": 3537582.059207862, + "ffi_bytes_per_sec": 392149353.7577789, + "delta_rust_over_ffi": 0.009021006984479031, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=compress, level=fastest", + "scenario": "small-4k-log-lines", + "params": { + "stage": "compress", + "level": "fastest", + "source": null + }, + "input_bytes": 4096, + "ratio": { + "rust": 0.043457, + "ffi": 0.038086, + "delta_rust_over_ffi": 1.1410229480649057, + "status": "rust_worse_larger", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "compress/fastest/small-4k-log-lines/matrix/pure_rust", + "ms_per_iter": 0.018874, + "bytes_per_sec": 217018120.16530678 + }, + "ffi": { + "benchmark_name": "compress/fastest/small-4k-log-lines/matrix/c_ffi", + "ms_per_iter": 0.004122, + "bytes_per_sec": 993692382.3386706 + } + }, + "rust_ms_per_iter": 0.018874, + "ffi_ms_per_iter": 0.004122, + "rust_bytes_per_sec": 217018120.16530678, + "ffi_bytes_per_sec": 993692382.3386706, + "delta_rust_over_ffi": 0.21839567659213732, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=compress-dict, level=best", + "scenario": "small-4k-log-lines", + "params": { + "stage": "compress-dict", + "level": "best", + "source": null + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/best/small-4k-log-lines/matrix/c_ffi_without_dict", + "ms_per_iter": 0.010848, + "bytes_per_sec": 377581120.9439528 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/best/small-4k-log-lines/matrix/c_ffi_with_dict", + "ms_per_iter": 0.006892, + "bytes_per_sec": 594312246.0824144 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=compress-dict, level=better", + "scenario": "small-4k-log-lines", + "params": { + "stage": "compress-dict", + "level": "better", + "source": null + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/better/small-4k-log-lines/matrix/c_ffi_without_dict", + "ms_per_iter": 0.004831, + "bytes_per_sec": 847857586.4210309 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/better/small-4k-log-lines/matrix/c_ffi_with_dict", + "ms_per_iter": 0.002269, + "bytes_per_sec": 1805200528.8673422 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=compress-dict, level=default", + "scenario": "small-4k-log-lines", + "params": { + "stage": "compress-dict", + "level": "default", + "source": null + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/default/small-4k-log-lines/matrix/c_ffi_without_dict", + "ms_per_iter": 0.003273, + "bytes_per_sec": 1251451267.9498932 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/default/small-4k-log-lines/matrix/c_ffi_with_dict", + "ms_per_iter": 0.000755, + "bytes_per_sec": 5425165562.913907 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=compress-dict, level=fastest", + "scenario": "small-4k-log-lines", + "params": { + "stage": "compress-dict", + "level": "fastest", + "source": null + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "c_ffi_without_dict": { + "benchmark_name": "compress-dict/fastest/small-4k-log-lines/matrix/c_ffi_without_dict", + "ms_per_iter": 0.003193, + "bytes_per_sec": 1282806138.4278107 + }, + "c_ffi_with_dict": { + "benchmark_name": "compress-dict/fastest/small-4k-log-lines/matrix/c_ffi_with_dict", + "ms_per_iter": 0.000746, + "bytes_per_sec": 5490616621.983914 + } + }, + "rust_ms_per_iter": null, + "ffi_ms_per_iter": null, + "rust_bytes_per_sec": null, + "ffi_bytes_per_sec": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=decompress, level=best, source=c_stream", + "scenario": "small-4k-log-lines", + "params": { + "stage": "decompress", + "level": "best", + "source": "c_stream" + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/small-4k-log-lines/c_stream/matrix/pure_rust", + "ms_per_iter": 0.003228, + "bytes_per_sec": 1268897149.9380422 + }, + "ffi": { + "benchmark_name": "decompress/best/small-4k-log-lines/c_stream/matrix/c_ffi", + "ms_per_iter": 0.001551, + "bytes_per_sec": 2640876853.642811 + } + }, + "rust_ms_per_iter": 0.003228, + "ffi_ms_per_iter": 0.001551, + "rust_bytes_per_sec": 1268897149.9380422, + "ffi_bytes_per_sec": 2640876853.642811, + "delta_rust_over_ffi": 0.48048327137546476, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=decompress, level=best, source=rust_stream", + "scenario": "small-4k-log-lines", + "params": { + "stage": "decompress", + "level": "best", + "source": "rust_stream" + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/best/small-4k-log-lines/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.001474, + "bytes_per_sec": 2778833107.191316 + }, + "ffi": { + "benchmark_name": "decompress/best/small-4k-log-lines/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.000486, + "bytes_per_sec": 8427983539.09465 + } + }, + "rust_ms_per_iter": 0.001474, + "ffi_ms_per_iter": 0.000486, + "rust_bytes_per_sec": 2778833107.191316, + "ffi_bytes_per_sec": 8427983539.09465, + "delta_rust_over_ffi": 0.32971506105834464, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=decompress, level=better, source=c_stream", + "scenario": "small-4k-log-lines", + "params": { + "stage": "decompress", + "level": "better", + "source": "c_stream" + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/small-4k-log-lines/c_stream/matrix/pure_rust", + "ms_per_iter": 0.003076, + "bytes_per_sec": 1331599479.8439531 + }, + "ffi": { + "benchmark_name": "decompress/better/small-4k-log-lines/c_stream/matrix/c_ffi", + "ms_per_iter": 0.001553, + "bytes_per_sec": 2637475853.1873794 + } + }, + "rust_ms_per_iter": 0.003076, + "ffi_ms_per_iter": 0.001553, + "rust_bytes_per_sec": 1331599479.8439531, + "ffi_bytes_per_sec": 2637475853.1873794, + "delta_rust_over_ffi": 0.5048764629388817, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=decompress, level=better, source=rust_stream", + "scenario": "small-4k-log-lines", + "params": { + "stage": "decompress", + "level": "better", + "source": "rust_stream" + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/better/small-4k-log-lines/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.001432, + "bytes_per_sec": 2860335195.5307264 + }, + "ffi": { + "benchmark_name": "decompress/better/small-4k-log-lines/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.000476, + "bytes_per_sec": 8605042016.806723 + } + }, + "rust_ms_per_iter": 0.001432, + "ffi_ms_per_iter": 0.000476, + "rust_bytes_per_sec": 2860335195.5307264, + "ffi_bytes_per_sec": 8605042016.806723, + "delta_rust_over_ffi": 0.3324022346368715, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=decompress, level=default, source=c_stream", + "scenario": "small-4k-log-lines", + "params": { + "stage": "decompress", + "level": "default", + "source": "c_stream" + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/small-4k-log-lines/c_stream/matrix/pure_rust", + "ms_per_iter": 0.003061, + "bytes_per_sec": 1338124795.81836 + }, + "ffi": { + "benchmark_name": "decompress/default/small-4k-log-lines/c_stream/matrix/c_ffi", + "ms_per_iter": 0.001518, + "bytes_per_sec": 2698287220.02635 + } + }, + "rust_ms_per_iter": 0.003061, + "ffi_ms_per_iter": 0.001518, + "rust_bytes_per_sec": 1338124795.81836, + "ffi_bytes_per_sec": 2698287220.02635, + "delta_rust_over_ffi": 0.49591636720026144, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=decompress, level=default, source=rust_stream", + "scenario": "small-4k-log-lines", + "params": { + "stage": "decompress", + "level": "default", + "source": "rust_stream" + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/default/small-4k-log-lines/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.001424, + "bytes_per_sec": 2876404494.382023 + }, + "ffi": { + "benchmark_name": "decompress/default/small-4k-log-lines/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.000468, + "bytes_per_sec": 8752136752.136751 + } + }, + "rust_ms_per_iter": 0.001424, + "ffi_ms_per_iter": 0.000468, + "rust_bytes_per_sec": 2876404494.382023, + "ffi_bytes_per_sec": 8752136752.136751, + "delta_rust_over_ffi": 0.3286516853932585, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=decompress, level=fastest, source=c_stream", + "scenario": "small-4k-log-lines", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "c_stream" + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/small-4k-log-lines/c_stream/matrix/pure_rust", + "ms_per_iter": 0.003126, + "bytes_per_sec": 1310300703.7747922 + }, + "ffi": { + "benchmark_name": "decompress/fastest/small-4k-log-lines/c_stream/matrix/c_ffi", + "ms_per_iter": 0.001578, + "bytes_per_sec": 2595690747.7820024 + } + }, + "rust_ms_per_iter": 0.003126, + "ffi_ms_per_iter": 0.001578, + "rust_bytes_per_sec": 1310300703.7747922, + "ffi_bytes_per_sec": 2595690747.7820024, + "delta_rust_over_ffi": 0.5047984644913628, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + }, + { + "key": "small-4k-log-lines + stage=decompress, level=fastest, source=rust_stream", + "scenario": "small-4k-log-lines", + "params": { + "stage": "decompress", + "level": "fastest", + "source": "rust_stream" + }, + "input_bytes": 4096, + "ratio": { + "rust": null, + "ffi": null, + "delta_rust_over_ffi": null, + "status": "insufficient-data", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" + }, + "speed": { + "series": { + "rust": { + "benchmark_name": "decompress/fastest/small-4k-log-lines/rust_stream/matrix/pure_rust", + "ms_per_iter": 0.001404, + "bytes_per_sec": 2917378917.378917 + }, + "ffi": { + "benchmark_name": "decompress/fastest/small-4k-log-lines/rust_stream/matrix/c_ffi", + "ms_per_iter": 0.000478, + "bytes_per_sec": 8569037656.903766 + } + }, + "rust_ms_per_iter": 0.001404, + "ffi_ms_per_iter": 0.000478, + "rust_bytes_per_sec": 2917378917.378917, + "ffi_bytes_per_sec": 8569037656.903766, + "delta_rust_over_ffi": 0.34045584045584043, + "status": "rust_slower", + "reference_low": 0.99, + "reference_high": 1.05, + "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" + } + } +] \ No newline at end of file diff --git a/benchmark-delta.md b/benchmark-delta.md new file mode 100644 index 00000000..b53f63f3 --- /dev/null +++ b/benchmark-delta.md @@ -0,0 +1,379 @@ +# Benchmark Delta Report + +Generated by `.github/scripts/run-benchmarks.sh` from `cargo bench --bench compare_ffi`. + +Reference bands for deltas: `0.99` and `1.05`. + +## Ratio pack + +Interpretation: lower ratio is better (smaller compressed output). + +### Rust compression ratio + +| Key | Rust ratio | +| --- | ---: | +| decodecorpus-z000033 + stage=compress, level=best | 0.5285 | +| decodecorpus-z000033 + stage=compress, level=better | 0.5299 | +| decodecorpus-z000033 + stage=compress, level=default | 0.5657 | +| decodecorpus-z000033 + stage=compress, level=fastest | 0.5952 | +| high-entropy-1m + stage=compress, level=best | 1.0000 | +| high-entropy-1m + stage=compress, level=better | 1.0000 | +| high-entropy-1m + stage=compress, level=default | 1.0000 | +| high-entropy-1m + stage=compress, level=fastest | 1.0000 | +| large-log-stream + stage=compress, level=best | 0.0001 | +| large-log-stream + stage=compress, level=better | 0.0001 | +| large-log-stream + stage=compress, level=default | 0.0001 | +| large-log-stream + stage=compress, level=fastest | 0.0013 | +| low-entropy-1m + stage=compress, level=best | 0.0002 | +| low-entropy-1m + stage=compress, level=better | 0.0002 | +| low-entropy-1m + stage=compress, level=default | 0.0002 | +| low-entropy-1m + stage=compress, level=fastest | 0.0005 | +| small-10k-random + stage=compress, level=best | 1.0019 | +| small-10k-random + stage=compress, level=better | 1.0019 | +| small-10k-random + stage=compress, level=default | 1.0019 | +| small-10k-random + stage=compress, level=fastest | 1.0019 | +| small-1k-random + stage=compress, level=best | 1.0186 | +| small-1k-random + stage=compress, level=better | 1.0186 | +| small-1k-random + stage=compress, level=default | 1.0186 | +| small-1k-random + stage=compress, level=fastest | 1.0186 | +| small-4k-log-lines + stage=compress, level=best | 0.0425 | +| small-4k-log-lines + stage=compress, level=better | 0.0425 | +| small-4k-log-lines + stage=compress, level=default | 0.0432 | +| small-4k-log-lines + stage=compress, level=fastest | 0.0435 | + +### FFI compression ratio + +| Key | FFI ratio | +| --- | ---: | +| decodecorpus-z000033 + stage=compress, level=best | 0.4983 | +| decodecorpus-z000033 + stage=compress, level=better | 0.4990 | +| decodecorpus-z000033 + stage=compress, level=default | 0.5158 | +| decodecorpus-z000033 + stage=compress, level=fastest | 0.5582 | +| high-entropy-1m + stage=compress, level=best | 1.0000 | +| high-entropy-1m + stage=compress, level=better | 1.0000 | +| high-entropy-1m + stage=compress, level=default | 1.0000 | +| high-entropy-1m + stage=compress, level=fastest | 1.0000 | +| large-log-stream + stage=compress, level=best | 0.0002 | +| large-log-stream + stage=compress, level=better | 0.0001 | +| large-log-stream + stage=compress, level=default | 0.0001 | +| large-log-stream + stage=compress, level=fastest | 0.0001 | +| low-entropy-1m + stage=compress, level=best | 0.0001 | +| low-entropy-1m + stage=compress, level=better | 0.0001 | +| low-entropy-1m + stage=compress, level=default | 0.0001 | +| low-entropy-1m + stage=compress, level=fastest | 0.0001 | +| small-10k-random + stage=compress, level=best | 1.0009 | +| small-10k-random + stage=compress, level=better | 1.0009 | +| small-10k-random + stage=compress, level=default | 1.0009 | +| small-10k-random + stage=compress, level=fastest | 1.0009 | +| small-1k-random + stage=compress, level=best | 1.0088 | +| small-1k-random + stage=compress, level=better | 1.0088 | +| small-1k-random + stage=compress, level=default | 1.0088 | +| small-1k-random + stage=compress, level=fastest | 1.0088 | +| small-4k-log-lines + stage=compress, level=best | 0.0364 | +| small-4k-log-lines + stage=compress, level=better | 0.0364 | +| small-4k-log-lines + stage=compress, level=default | 0.0369 | +| small-4k-log-lines + stage=compress, level=fastest | 0.0381 | + +### Rust/FFI ratio delta + +| Key | Delta | Status | Ref low | Ref high | +| --- | ---: | --- | ---: | ---: | +| decodecorpus-z000033 + stage=compress, level=best | 1.0606 | rust_worse_larger | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=compress, level=better | 1.0619 | rust_worse_larger | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=compress, level=default | 1.0968 | rust_worse_larger | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=compress, level=fastest | 1.0664 | rust_worse_larger | 0.99 | 1.05 | +| high-entropy-1m + stage=compress, level=best | 1.0000 | near_parity | 0.99 | 1.05 | +| high-entropy-1m + stage=compress, level=better | 1.0000 | near_parity | 0.99 | 1.05 | +| high-entropy-1m + stage=compress, level=default | 1.0000 | near_parity | 0.99 | 1.05 | +| high-entropy-1m + stage=compress, level=fastest | 1.0000 | near_parity | 0.99 | 1.05 | +| large-log-stream + stage=compress, level=best | 0.5706 | rust_better_smaller | 0.99 | 1.05 | +| large-log-stream + stage=compress, level=better | 1.0860 | rust_worse_larger | 0.99 | 1.05 | +| large-log-stream + stage=compress, level=default | 1.0860 | rust_worse_larger | 0.99 | 1.05 | +| large-log-stream + stage=compress, level=fastest | 13.6022 | rust_worse_larger | 0.99 | 1.05 | +| low-entropy-1m + stage=compress, level=best | 1.1014 | rust_worse_larger | 0.99 | 1.05 | +| low-entropy-1m + stage=compress, level=better | 1.1014 | rust_worse_larger | 0.99 | 1.05 | +| low-entropy-1m + stage=compress, level=default | 1.1014 | rust_worse_larger | 0.99 | 1.05 | +| low-entropy-1m + stage=compress, level=fastest | 3.3108 | rust_worse_larger | 0.99 | 1.05 | +| small-10k-random + stage=compress, level=best | 1.0010 | near_parity | 0.99 | 1.05 | +| small-10k-random + stage=compress, level=better | 1.0010 | near_parity | 0.99 | 1.05 | +| small-10k-random + stage=compress, level=default | 1.0010 | near_parity | 0.99 | 1.05 | +| small-10k-random + stage=compress, level=fastest | 1.0010 | near_parity | 0.99 | 1.05 | +| small-1k-random + stage=compress, level=best | 1.0097 | near_parity | 0.99 | 1.05 | +| small-1k-random + stage=compress, level=better | 1.0097 | near_parity | 0.99 | 1.05 | +| small-1k-random + stage=compress, level=default | 1.0097 | near_parity | 0.99 | 1.05 | +| small-1k-random + stage=compress, level=fastest | 1.0097 | near_parity | 0.99 | 1.05 | +| small-4k-log-lines + stage=compress, level=best | 1.1678 | rust_worse_larger | 0.99 | 1.05 | +| small-4k-log-lines + stage=compress, level=better | 1.1678 | rust_worse_larger | 0.99 | 1.05 | +| small-4k-log-lines + stage=compress, level=default | 1.1722 | rust_worse_larger | 0.99 | 1.05 | +| small-4k-log-lines + stage=compress, level=fastest | 1.1410 | rust_worse_larger | 0.99 | 1.05 | + +## Speed pack + +Interpretation: higher speed is better (`rust_bytes_per_sec / ffi_bytes_per_sec`). + +### Rust speed + +| Key | Rust bytes/sec | Rust ms/iter | +| --- | ---: | ---: | +| decodecorpus-z000033 + stage=compress, level=best | 17767410.14 | 57.523 | +| decodecorpus-z000033 + stage=compress, level=better | 24034692.11 | 42.523 | +| decodecorpus-z000033 + stage=compress, level=default | 16337377.22 | 62.558 | +| decodecorpus-z000033 + stage=compress, level=fastest | 82067322.29 | 12.454 | +| decodecorpus-z000033 + stage=decompress, level=best, source=c\_stream | 299142847.53 | 3.417 | +| decodecorpus-z000033 + stage=decompress, level=best, source=rust\_stream | 565004530.39 | 1.809 | +| decodecorpus-z000033 + stage=decompress, level=better, source=c\_stream | 297775703.33 | 3.432 | +| decodecorpus-z000033 + stage=decompress, level=better, source=rust\_stream | 556244336.38 | 1.837 | +| decodecorpus-z000033 + stage=decompress, level=default, source=c\_stream | 289801628.79 | 3.527 | +| decodecorpus-z000033 + stage=decompress, level=default, source=rust\_stream | 730042208.14 | 1.400 | +| decodecorpus-z000033 + stage=decompress, level=fastest, source=c\_stream | 228836740.88 | 4.466 | +| decodecorpus-z000033 + stage=decompress, level=fastest, source=rust\_stream | 577932880.65 | 1.768 | +| high-entropy-1m + stage=compress, level=best | 26240715.50 | 39.960 | +| high-entropy-1m + stage=compress, level=better | 12278698.93 | 85.398 | +| high-entropy-1m + stage=compress, level=default | 7000862.39 | 149.778 | +| high-entropy-1m + stage=compress, level=fastest | 59387157.63 | 17.657 | +| high-entropy-1m + stage=decompress, level=best, source=c\_stream | 7055986218.78 | 0.149 | +| high-entropy-1m + stage=decompress, level=best, source=rust\_stream | 6971636769.81 | 0.150 | +| high-entropy-1m + stage=decompress, level=better, source=c\_stream | 6864160355.06 | 0.153 | +| high-entropy-1m + stage=decompress, level=better, source=rust\_stream | 6799310067.57 | 0.154 | +| high-entropy-1m + stage=decompress, level=default, source=c\_stream | 6939019144.61 | 0.151 | +| high-entropy-1m + stage=decompress, level=default, source=rust\_stream | 6952223091.51 | 0.151 | +| high-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 6642989730.56 | 0.158 | +| high-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 6547584406.83 | 0.160 | +| large-log-stream + stage=compress, level=best | 387813456.54 | 270.382 | +| large-log-stream + stage=compress, level=better | 389226309.18 | 269.400 | +| large-log-stream + stage=compress, level=default | 210892851.84 | 497.208 | +| large-log-stream + stage=compress, level=fastest | 1068533458.88 | 98.132 | +| large-log-stream + stage=decompress, level=best, source=c\_stream | 6999852402.94 | 14.980 | +| large-log-stream + stage=decompress, level=best, source=rust\_stream | 7192766295.87 | 14.578 | +| large-log-stream + stage=decompress, level=better, source=c\_stream | 7435659789.86 | 14.102 | +| large-log-stream + stage=decompress, level=better, source=rust\_stream | 7267842698.83 | 14.428 | +| large-log-stream + stage=decompress, level=default, source=c\_stream | 7597906071.76 | 13.801 | +| large-log-stream + stage=decompress, level=default, source=rust\_stream | 7793505867.63 | 13.454 | +| large-log-stream + stage=decompress, level=fastest, source=c\_stream | 7479384679.21 | 14.020 | +| large-log-stream + stage=decompress, level=fastest, source=rust\_stream | 7840121269.70 | 13.374 | +| low-entropy-1m + stage=compress, level=best | 374093953.75 | 2.803 | +| low-entropy-1m + stage=compress, level=better | 386977535.16 | 2.710 | +| low-entropy-1m + stage=compress, level=default | 219880310.74 | 4.769 | +| low-entropy-1m + stage=compress, level=fastest | 1474576819.39 | 0.711 | +| low-entropy-1m + stage=decompress, level=best, source=c\_stream | 3985662537.49 | 0.263 | +| low-entropy-1m + stage=decompress, level=best, source=rust\_stream | 4133166205.49 | 0.254 | +| low-entropy-1m + stage=decompress, level=better, source=c\_stream | 4056214242.33 | 0.259 | +| low-entropy-1m + stage=decompress, level=better, source=rust\_stream | 4143864876.72 | 0.253 | +| low-entropy-1m + stage=decompress, level=default, source=c\_stream | 4076731075.77 | 0.257 | +| low-entropy-1m + stage=decompress, level=default, source=rust\_stream | 4140690341.46 | 0.253 | +| low-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 4068837332.03 | 0.258 | +| low-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 4151280132.70 | 0.253 | +| small-10k-random + stage=compress, level=best | 28807255.83 | 0.355 | +| small-10k-random + stage=compress, level=better | 34901396.74 | 0.293 | +| small-10k-random + stage=compress, level=default | 6341040.22 | 1.615 | +| small-10k-random + stage=compress, level=fastest | 60599246.06 | 0.169 | +| small-10k-random + stage=decompress, level=best, source=c\_stream | 4257796257.80 | 0.002 | +| small-10k-random + stage=decompress, level=best, source=rust\_stream | 5736694677.87 | 0.002 | +| small-10k-random + stage=decompress, level=better, source=c\_stream | 4172779136.10 | 0.002 | +| small-10k-random + stage=decompress, level=better, source=rust\_stream | 7037800687.29 | 0.001 | +| small-10k-random + stage=decompress, level=default, source=c\_stream | 4252491694.35 | 0.002 | +| small-10k-random + stage=decompress, level=default, source=rust\_stream | 6918918918.92 | 0.001 | +| small-10k-random + stage=decompress, level=fastest, source=c\_stream | 4243680066.31 | 0.002 | +| small-10k-random + stage=decompress, level=fastest, source=rust\_stream | 6999316473.00 | 0.001 | +| small-1k-random + stage=compress, level=best | 6998551.08 | 0.146 | +| small-1k-random + stage=compress, level=better | 11882796.63 | 0.086 | +| small-1k-random + stage=compress, level=default | 908510.99 | 1.127 | +| small-1k-random + stage=compress, level=fastest | 60175119.00 | 0.017 | +| small-1k-random + stage=decompress, level=best, source=c\_stream | 769346356.12 | 0.001 | +| small-1k-random + stage=decompress, level=best, source=rust\_stream | 5389473684.21 | 0.000 | +| small-1k-random + stage=decompress, level=better, source=c\_stream | 622114216.28 | 0.002 | +| small-1k-random + stage=decompress, level=better, source=rust\_stream | 5417989417.99 | 0.000 | +| small-1k-random + stage=decompress, level=default, source=c\_stream | 767616191.90 | 0.001 | +| small-1k-random + stage=decompress, level=default, source=rust\_stream | 5389473684.21 | 0.000 | +| small-1k-random + stage=decompress, level=fastest, source=c\_stream | 757396449.70 | 0.001 | +| small-1k-random + stage=decompress, level=fastest, source=rust\_stream | 5389473684.21 | 0.000 | +| small-4k-log-lines + stage=compress, level=best | 28176959.01 | 0.145 | +| small-4k-log-lines + stage=compress, level=better | 46892888.22 | 0.087 | +| small-4k-log-lines + stage=compress, level=default | 3537582.06 | 1.158 | +| small-4k-log-lines + stage=compress, level=fastest | 217018120.17 | 0.019 | +| small-4k-log-lines + stage=decompress, level=best, source=c\_stream | 1268897149.94 | 0.003 | +| small-4k-log-lines + stage=decompress, level=best, source=rust\_stream | 2778833107.19 | 0.001 | +| small-4k-log-lines + stage=decompress, level=better, source=c\_stream | 1331599479.84 | 0.003 | +| small-4k-log-lines + stage=decompress, level=better, source=rust\_stream | 2860335195.53 | 0.001 | +| small-4k-log-lines + stage=decompress, level=default, source=c\_stream | 1338124795.82 | 0.003 | +| small-4k-log-lines + stage=decompress, level=default, source=rust\_stream | 2876404494.38 | 0.001 | +| small-4k-log-lines + stage=decompress, level=fastest, source=c\_stream | 1310300703.77 | 0.003 | +| small-4k-log-lines + stage=decompress, level=fastest, source=rust\_stream | 2917378917.38 | 0.001 | + +### FFI speed + +| Key | FFI bytes/sec | FFI ms/iter | +| --- | ---: | ---: | +| decodecorpus-z000033 + stage=compress, level=best | 73788825.35 | 13.851 | +| decodecorpus-z000033 + stage=compress, level=better | 121537908.48 | 8.409 | +| decodecorpus-z000033 + stage=compress, level=default | 363857900.91 | 2.809 | +| decodecorpus-z000033 + stage=compress, level=fastest | 554751320.34 | 1.842 | +| decodecorpus-z000033 + stage=decompress, level=best, source=c\_stream | 1343663764.26 | 0.761 | +| decodecorpus-z000033 + stage=decompress, level=best, source=rust\_stream | 2175982405.38 | 0.470 | +| decodecorpus-z000033 + stage=decompress, level=better, source=c\_stream | 1303285263.05 | 0.784 | +| decodecorpus-z000033 + stage=decompress, level=better, source=rust\_stream | 2148956256.99 | 0.476 | +| decodecorpus-z000033 + stage=decompress, level=default, source=c\_stream | 1251264076.24 | 0.817 | +| decodecorpus-z000033 + stage=decompress, level=default, source=rust\_stream | 2698378124.35 | 0.379 | +| decodecorpus-z000033 + stage=decompress, level=fastest, source=c\_stream | 1325486600.33 | 0.771 | +| decodecorpus-z000033 + stage=decompress, level=fastest, source=rust\_stream | 2116005730.83 | 0.483 | +| high-entropy-1m + stage=compress, level=best | 2056188610.50 | 0.510 | +| high-entropy-1m + stage=compress, level=better | 2871654429.59 | 0.365 | +| high-entropy-1m + stage=compress, level=default | 4285832233.17 | 0.245 | +| high-entropy-1m + stage=compress, level=fastest | 4754735119.01 | 0.221 | +| high-entropy-1m + stage=decompress, level=best, source=c\_stream | 52131649597.30 | 0.020 | +| high-entropy-1m + stage=decompress, level=best, source=rust\_stream | 10829935345.27 | 0.097 | +| high-entropy-1m + stage=decompress, level=better, source=c\_stream | 52131649597.30 | 0.020 | +| high-entropy-1m + stage=decompress, level=better, source=rust\_stream | 10576293068.67 | 0.099 | +| high-entropy-1m + stage=decompress, level=default, source=c\_stream | 50470542934.15 | 0.021 | +| high-entropy-1m + stage=decompress, level=default, source=rust\_stream | 10684056080.86 | 0.098 | +| high-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 55202737562.52 | 0.019 | +| high-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 10447313884.90 | 0.100 | +| large-log-stream + stage=compress, level=best | 2865859796.34 | 36.589 | +| large-log-stream + stage=compress, level=better | 3114599909.85 | 33.666 | +| large-log-stream + stage=compress, level=default | 8028851848.67 | 13.060 | +| large-log-stream + stage=compress, level=fastest | 10038301697.98 | 10.446 | +| large-log-stream + stage=decompress, level=best, source=c\_stream | 31418638216.86 | 3.337 | +| large-log-stream + stage=decompress, level=best, source=rust\_stream | 10444525015.24 | 10.039 | +| large-log-stream + stage=decompress, level=better, source=c\_stream | 32157835224.58 | 3.261 | +| large-log-stream + stage=decompress, level=better, source=rust\_stream | 10459157133.83 | 10.025 | +| large-log-stream + stage=decompress, level=default, source=c\_stream | 32227970006.34 | 3.254 | +| large-log-stream + stage=decompress, level=default, source=rust\_stream | 10399976831.11 | 10.082 | +| large-log-stream + stage=decompress, level=fastest, source=c\_stream | 32005049624.83 | 3.276 | +| large-log-stream + stage=decompress, level=fastest, source=rust\_stream | 9797468259.81 | 10.703 | +| low-entropy-1m + stage=compress, level=best | 1535374005.23 | 0.683 | +| low-entropy-1m + stage=compress, level=better | 2946406543.72 | 0.356 | +| low-entropy-1m + stage=compress, level=default | 7862688492.14 | 0.133 | +| low-entropy-1m + stage=compress, level=fastest | 12457835333.25 | 0.084 | +| low-entropy-1m + stage=decompress, level=best, source=c\_stream | 13728590319.33 | 0.076 | +| low-entropy-1m + stage=decompress, level=best, source=rust\_stream | 6986314877.74 | 0.150 | +| low-entropy-1m + stage=decompress, level=better, source=c\_stream | 13650134083.16 | 0.077 | +| low-entropy-1m + stage=decompress, level=better, source=rust\_stream | 7029119965.68 | 0.149 | +| low-entropy-1m + stage=decompress, level=default, source=c\_stream | 13899101296.36 | 0.075 | +| low-entropy-1m + stage=decompress, level=default, source=rust\_stream | 6849856284.30 | 0.153 | +| low-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 13852279482.67 | 0.076 | +| low-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 7086361516.78 | 0.148 | +| small-10k-random + stage=compress, level=best | 49618172.66 | 0.206 | +| small-10k-random + stage=compress, level=better | 174651634.80 | 0.059 | +| small-10k-random + stage=compress, level=default | 831101371.64 | 0.012 | +| small-10k-random + stage=compress, level=fastest | 1854736460.79 | 0.006 | +| small-10k-random + stage=decompress, level=best, source=c\_stream | 67368421052.63 | 0.000 | +| small-10k-random + stage=decompress, level=best, source=rust\_stream | 7834736036.73 | 0.001 | +| small-10k-random + stage=decompress, level=better, source=c\_stream | 66928104575.16 | 0.000 | +| small-10k-random + stage=decompress, level=better, source=rust\_stream | 9827255278.31 | 0.001 | +| small-10k-random + stage=decompress, level=default, source=c\_stream | 67814569536.42 | 0.000 | +| small-10k-random + stage=decompress, level=default, source=rust\_stream | 9808429118.77 | 0.001 | +| small-10k-random + stage=decompress, level=fastest, source=c\_stream | 66928104575.16 | 0.000 | +| small-10k-random + stage=decompress, level=fastest, source=rust\_stream | 9770992366.41 | 0.001 | +| small-1k-random + stage=compress, level=best | 5168636.87 | 0.198 | +| small-1k-random + stage=compress, level=better | 19710502.00 | 0.052 | +| small-1k-random + stage=compress, level=default | 129505501.45 | 0.008 | +| small-1k-random + stage=compress, level=fastest | 494925084.58 | 0.002 | +| small-1k-random + stage=decompress, level=best, source=c\_stream | 30117647058.82 | 0.000 | +| small-1k-random + stage=decompress, level=best, source=rust\_stream | 7816793893.13 | 0.000 | +| small-1k-random + stage=decompress, level=better, source=c\_stream | 24975609756.10 | 0.000 | +| small-1k-random + stage=decompress, level=better, source=rust\_stream | 7937984496.12 | 0.000 | +| small-1k-random + stage=decompress, level=default, source=c\_stream | 30117647058.82 | 0.000 | +| small-1k-random + stage=decompress, level=default, source=rust\_stream | 7816793893.13 | 0.000 | +| small-1k-random + stage=decompress, level=fastest, source=c\_stream | 30117647058.82 | 0.000 | +| small-1k-random + stage=decompress, level=fastest, source=rust\_stream | 7876923076.92 | 0.000 | +| small-4k-log-lines + stage=compress, level=best | 20548426.26 | 0.199 | +| small-4k-log-lines + stage=compress, level=better | 76302602.41 | 0.054 | +| small-4k-log-lines + stage=compress, level=default | 392149353.76 | 0.010 | +| small-4k-log-lines + stage=compress, level=fastest | 993692382.34 | 0.004 | +| small-4k-log-lines + stage=decompress, level=best, source=c\_stream | 2640876853.64 | 0.002 | +| small-4k-log-lines + stage=decompress, level=best, source=rust\_stream | 8427983539.09 | 0.000 | +| small-4k-log-lines + stage=decompress, level=better, source=c\_stream | 2637475853.19 | 0.002 | +| small-4k-log-lines + stage=decompress, level=better, source=rust\_stream | 8605042016.81 | 0.000 | +| small-4k-log-lines + stage=decompress, level=default, source=c\_stream | 2698287220.03 | 0.002 | +| small-4k-log-lines + stage=decompress, level=default, source=rust\_stream | 8752136752.14 | 0.000 | +| small-4k-log-lines + stage=decompress, level=fastest, source=c\_stream | 2595690747.78 | 0.002 | +| small-4k-log-lines + stage=decompress, level=fastest, source=rust\_stream | 8569037656.90 | 0.000 | + +### Rust/FFI speed delta + +| Key | Delta | Status | Ref low | Ref high | +| --- | ---: | --- | ---: | ---: | +| decodecorpus-z000033 + stage=compress, level=best | 0.2408 | rust_slower | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=compress, level=better | 0.1978 | rust_slower | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=compress, level=default | 0.0449 | rust_slower | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=compress, level=fastest | 0.1479 | rust_slower | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=decompress, level=best, source=c\_stream | 0.2226 | rust_slower | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=decompress, level=best, source=rust\_stream | 0.2597 | rust_slower | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=decompress, level=better, source=c\_stream | 0.2285 | rust_slower | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=decompress, level=better, source=rust\_stream | 0.2588 | rust_slower | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=decompress, level=default, source=c\_stream | 0.2316 | rust_slower | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=decompress, level=default, source=rust\_stream | 0.2705 | rust_slower | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=decompress, level=fastest, source=c\_stream | 0.1726 | rust_slower | 0.99 | 1.05 | +| decodecorpus-z000033 + stage=decompress, level=fastest, source=rust\_stream | 0.2731 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=compress, level=best | 0.0128 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=compress, level=better | 0.0043 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=compress, level=default | 0.0016 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=compress, level=fastest | 0.0125 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=decompress, level=best, source=c\_stream | 0.1353 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=decompress, level=best, source=rust\_stream | 0.6437 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=decompress, level=better, source=c\_stream | 0.1317 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=decompress, level=better, source=rust\_stream | 0.6429 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=decompress, level=default, source=c\_stream | 0.1375 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=decompress, level=default, source=rust\_stream | 0.6507 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 0.1203 | rust_slower | 0.99 | 1.05 | +| high-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 0.6267 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=compress, level=best | 0.1353 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=compress, level=better | 0.1250 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=compress, level=default | 0.0263 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=compress, level=fastest | 0.1064 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=decompress, level=best, source=c\_stream | 0.2228 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=decompress, level=best, source=rust\_stream | 0.6887 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=decompress, level=better, source=c\_stream | 0.2312 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=decompress, level=better, source=rust\_stream | 0.6949 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=decompress, level=default, source=c\_stream | 0.2358 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=decompress, level=default, source=rust\_stream | 0.7494 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=decompress, level=fastest, source=c\_stream | 0.2337 | rust_slower | 0.99 | 1.05 | +| large-log-stream + stage=decompress, level=fastest, source=rust\_stream | 0.8002 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=compress, level=best | 0.2437 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=compress, level=better | 0.1313 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=compress, level=default | 0.0280 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=compress, level=fastest | 0.1184 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=decompress, level=best, source=c\_stream | 0.2903 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=decompress, level=best, source=rust\_stream | 0.5916 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=decompress, level=better, source=c\_stream | 0.2972 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=decompress, level=better, source=rust\_stream | 0.5895 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=decompress, level=default, source=c\_stream | 0.2933 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=decompress, level=default, source=rust\_stream | 0.6045 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 0.2937 | rust_slower | 0.99 | 1.05 | +| low-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 0.5858 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=compress, level=best | 0.5806 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=compress, level=better | 0.1998 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=compress, level=default | 0.0076 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=compress, level=fastest | 0.0327 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=decompress, level=best, source=c\_stream | 0.0632 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=decompress, level=best, source=rust\_stream | 0.7322 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=decompress, level=better, source=c\_stream | 0.0623 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=decompress, level=better, source=rust\_stream | 0.7162 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=decompress, level=default, source=c\_stream | 0.0627 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=decompress, level=default, source=rust\_stream | 0.7054 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=decompress, level=fastest, source=c\_stream | 0.0634 | rust_slower | 0.99 | 1.05 | +| small-10k-random + stage=decompress, level=fastest, source=rust\_stream | 0.7163 | rust_slower | 0.99 | 1.05 | +| small-1k-random + stage=compress, level=best | 1.3540 | rust_faster | 0.99 | 1.05 | +| small-1k-random + stage=compress, level=better | 0.6029 | rust_slower | 0.99 | 1.05 | +| small-1k-random + stage=compress, level=default | 0.0070 | rust_slower | 0.99 | 1.05 | +| small-1k-random + stage=compress, level=fastest | 0.1216 | rust_slower | 0.99 | 1.05 | +| small-1k-random + stage=decompress, level=best, source=c\_stream | 0.0255 | rust_slower | 0.99 | 1.05 | +| small-1k-random + stage=decompress, level=best, source=rust\_stream | 0.6895 | rust_slower | 0.99 | 1.05 | +| small-1k-random + stage=decompress, level=better, source=c\_stream | 0.0249 | rust_slower | 0.99 | 1.05 | +| small-1k-random + stage=decompress, level=better, source=rust\_stream | 0.6825 | rust_slower | 0.99 | 1.05 | +| small-1k-random + stage=decompress, level=default, source=c\_stream | 0.0255 | rust_slower | 0.99 | 1.05 | +| small-1k-random + stage=decompress, level=default, source=rust\_stream | 0.6895 | rust_slower | 0.99 | 1.05 | +| small-1k-random + stage=decompress, level=fastest, source=c\_stream | 0.0251 | rust_slower | 0.99 | 1.05 | +| small-1k-random + stage=decompress, level=fastest, source=rust\_stream | 0.6842 | rust_slower | 0.99 | 1.05 | +| small-4k-log-lines + stage=compress, level=best | 1.3712 | rust_faster | 0.99 | 1.05 | +| small-4k-log-lines + stage=compress, level=better | 0.6146 | rust_slower | 0.99 | 1.05 | +| small-4k-log-lines + stage=compress, level=default | 0.0090 | rust_slower | 0.99 | 1.05 | +| small-4k-log-lines + stage=compress, level=fastest | 0.2184 | rust_slower | 0.99 | 1.05 | +| small-4k-log-lines + stage=decompress, level=best, source=c\_stream | 0.4805 | rust_slower | 0.99 | 1.05 | +| small-4k-log-lines + stage=decompress, level=best, source=rust\_stream | 0.3297 | rust_slower | 0.99 | 1.05 | +| small-4k-log-lines + stage=decompress, level=better, source=c\_stream | 0.5049 | rust_slower | 0.99 | 1.05 | +| small-4k-log-lines + stage=decompress, level=better, source=rust\_stream | 0.3324 | rust_slower | 0.99 | 1.05 | +| small-4k-log-lines + stage=decompress, level=default, source=c\_stream | 0.4959 | rust_slower | 0.99 | 1.05 | +| small-4k-log-lines + stage=decompress, level=default, source=rust\_stream | 0.3287 | rust_slower | 0.99 | 1.05 | +| small-4k-log-lines + stage=decompress, level=fastest, source=c\_stream | 0.5048 | rust_slower | 0.99 | 1.05 | +| small-4k-log-lines + stage=decompress, level=fastest, source=rust\_stream | 0.3405 | rust_slower | 0.99 | 1.05 | From c0e04b7161c7366691fe66ffc691ab79a6a99bbf Mon Sep 17 00:00:00 2001 From: Dmitry Prudnikov Date: Sun, 5 Apr 2026 13:57:21 +0300 Subject: [PATCH 2/7] fix(bench): align delta artifacts and parity docs --- .github/scripts/run-benchmarks.sh | 14 +- .gitignore | 2 + BENCHMARKS.md | 4 +- benchmark-delta.json | 4034 ----------------------------- benchmark-delta.md | 379 --- 5 files changed, 16 insertions(+), 4417 deletions(-) delete mode 100644 benchmark-delta.json delete mode 100644 benchmark-delta.md diff --git a/.github/scripts/run-benchmarks.sh b/.github/scripts/run-benchmarks.sh index 4d6cd4dd..1878ca9b 100755 --- a/.github/scripts/run-benchmarks.sh +++ b/.github/scripts/run-benchmarks.sh @@ -330,6 +330,13 @@ for key in all_keys: }, ) + has_comparable_ratio = ( + ratio_pack["rust_ratio"] is not None and ratio_pack["ffi_ratio"] is not None + ) + has_comparable_speed = rust_timing is not None and ffi_timing is not None + if not has_comparable_ratio and not has_comparable_speed: + continue + delta_rows.append( { "key": key, @@ -443,12 +450,15 @@ delta_lines = [ "| --- | ---: |", ] +def format_ratio(value): + return f"{value:.6g}" + for row in delta_rows: key = markdown_table_escape(row["key"]) rust_ratio = row["ratio"]["rust"] if rust_ratio is None: continue - delta_lines.append(f"| {key} | {rust_ratio:.4f} |") + delta_lines.append(f"| {key} | {format_ratio(rust_ratio)} |") delta_lines.extend( [ @@ -465,7 +475,7 @@ for row in delta_rows: ffi_ratio = row["ratio"]["ffi"] if ffi_ratio is None: continue - delta_lines.append(f"| {key} | {ffi_ratio:.4f} |") + delta_lines.append(f"| {key} | {format_ratio(ffi_ratio)} |") delta_lines.extend( [ diff --git a/.gitignore b/.gitignore index 0003a24b..2640e9a4 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,8 @@ fuzz_decodecorpus perf.data* benchmark-results.json benchmark-report.md +benchmark-delta.json +benchmark-delta.md fuzz/corpus .idea /= diff --git a/BENCHMARKS.md b/BENCHMARKS.md index a7c5ad5f..1ccc5552 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -96,7 +96,7 @@ bash scripts/bench-flamegraph.sh decompress/default/decodecorpus-z000033/rust_st Delta interpretation: -- **Ratio delta** (`rust_ratio / ffi_ratio`): lower is better for Rust (`< 0.99` better, `0.99..1.05` parity, `> 1.05` worse) -- **Speed delta** (`rust_bytes_per_sec / ffi_bytes_per_sec`): higher is better for Rust (`> 1.05` faster, `0.99..1.05` parity, `< 0.99` slower) +- **Ratio delta** (`rust_ratio / ffi_ratio`): lower is better for Rust (`< 0.99` better, `0.99..=1.05` parity, `> 1.05` worse) +- **Speed delta** (`rust_bytes_per_sec / ffi_bytes_per_sec`): higher is better for Rust (`> 1.05` faster, `0.99..=1.05` parity, `< 0.99` slower) Criterion also writes its usual detailed estimates under `target/criterion/`. diff --git a/benchmark-delta.json b/benchmark-delta.json deleted file mode 100644 index aff0597d..00000000 --- a/benchmark-delta.json +++ /dev/null @@ -1,4034 +0,0 @@ -[ - { - "key": "decodecorpus-z000033 + stage=compress, level=best", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "compress", - "level": "best", - "source": null - }, - "input_bytes": 1022035, - "ratio": { - "rust": 0.528511, - "ffi": 0.498336, - "delta_rust_over_ffi": 1.0605515154433955, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/best/decodecorpus-z000033/matrix/pure_rust", - "ms_per_iter": 57.523015, - "bytes_per_sec": 17767410.140097838 - }, - "ffi": { - "benchmark_name": "compress/best/decodecorpus-z000033/matrix/c_ffi", - "ms_per_iter": 13.85081, - "bytes_per_sec": 73788825.34667648 - } - }, - "rust_ms_per_iter": 57.523015, - "ffi_ms_per_iter": 13.85081, - "rust_bytes_per_sec": 17767410.140097838, - "ffi_bytes_per_sec": 73788825.34667648, - "delta_rust_over_ffi": 0.2407872744500614, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=compress, level=better", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "compress", - "level": "better", - "source": null - }, - "input_bytes": 1022035, - "ratio": { - "rust": 0.529919, - "ffi": 0.499034, - "delta_rust_over_ffi": 1.061889570650497, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/better/decodecorpus-z000033/matrix/pure_rust", - "ms_per_iter": 42.523324, - "bytes_per_sec": 24034692.113909062 - }, - "ffi": { - "benchmark_name": "compress/better/decodecorpus-z000033/matrix/c_ffi", - "ms_per_iter": 8.409187, - "bytes_per_sec": 121537908.4803323 - } - }, - "rust_ms_per_iter": 42.523324, - "ffi_ms_per_iter": 8.409187, - "rust_bytes_per_sec": 24034692.113909062, - "ffi_bytes_per_sec": 121537908.4803323, - "delta_rust_over_ffi": 0.19775469575238283, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=compress, level=default", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "compress", - "level": "default", - "source": null - }, - "input_bytes": 1022035, - "ratio": { - "rust": 0.565681, - "ffi": 0.515776, - "delta_rust_over_ffi": 1.0967571193696488, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/default/decodecorpus-z000033/matrix/pure_rust", - "ms_per_iter": 62.558083, - "bytes_per_sec": 16337377.21790484 - }, - "ffi": { - "benchmark_name": "compress/default/decodecorpus-z000033/matrix/c_ffi", - "ms_per_iter": 2.808885, - "bytes_per_sec": 363857900.91085964 - } - }, - "rust_ms_per_iter": 62.558083, - "ffi_ms_per_iter": 2.808885, - "rust_bytes_per_sec": 16337377.21790484, - "ffi_bytes_per_sec": 363857900.91085964, - "delta_rust_over_ffi": 0.04490043277061415, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=compress, level=fastest", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "compress", - "level": "fastest", - "source": null - }, - "input_bytes": 1022035, - "ratio": { - "rust": 0.595247, - "ffi": 0.558199, - "delta_rust_over_ffi": 1.0663705954328115, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/fastest/decodecorpus-z000033/matrix/pure_rust", - "ms_per_iter": 12.453617, - "bytes_per_sec": 82067322.28877763 - }, - "ffi": { - "benchmark_name": "compress/fastest/decodecorpus-z000033/matrix/c_ffi", - "ms_per_iter": 1.84233, - "bytes_per_sec": 554751320.3389186 - } - }, - "rust_ms_per_iter": 12.453617, - "ffi_ms_per_iter": 1.84233, - "rust_bytes_per_sec": 82067322.28877763, - "ffi_bytes_per_sec": 554751320.3389186, - "delta_rust_over_ffi": 0.14793533477061327, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=compress-dict, level=best", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "compress-dict", - "level": "best", - "source": null - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/best/decodecorpus-z000033/matrix/c_ffi_without_dict", - "ms_per_iter": 15.940534, - "bytes_per_sec": 64115480.698450886 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/best/decodecorpus-z000033/matrix/c_ffi_with_dict", - "ms_per_iter": 30.809072, - "bytes_per_sec": 33173183.5350315 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=compress-dict, level=better", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "compress-dict", - "level": "better", - "source": null - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/better/decodecorpus-z000033/matrix/c_ffi_without_dict", - "ms_per_iter": 9.518165, - "bytes_per_sec": 107377314.85007876 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/better/decodecorpus-z000033/matrix/c_ffi_with_dict", - "ms_per_iter": 12.22232, - "bytes_per_sec": 83620376.49153352 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=compress-dict, level=default", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "compress-dict", - "level": "default", - "source": null - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/default/decodecorpus-z000033/matrix/c_ffi_without_dict", - "ms_per_iter": 3.40312, - "bytes_per_sec": 300322938.9501399 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/default/decodecorpus-z000033/matrix/c_ffi_with_dict", - "ms_per_iter": 4.456289, - "bytes_per_sec": 229346660.41632402 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=compress-dict, level=fastest", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "compress-dict", - "level": "fastest", - "source": null - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/fastest/decodecorpus-z000033/matrix/c_ffi_without_dict", - "ms_per_iter": 1.670326, - "bytes_per_sec": 611877561.6256946 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/fastest/decodecorpus-z000033/matrix/c_ffi_with_dict", - "ms_per_iter": 1.845367, - "bytes_per_sec": 553838342.1834248 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=decompress, level=best, source=c_stream", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "decompress", - "level": "best", - "source": "c_stream" - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/decodecorpus-z000033/c_stream/matrix/pure_rust", - "ms_per_iter": 3.416545, - "bytes_per_sec": 299142847.5257899 - }, - "ffi": { - "benchmark_name": "decompress/best/decodecorpus-z000033/c_stream/matrix/c_ffi", - "ms_per_iter": 0.760633, - "bytes_per_sec": 1343663764.2595048 - } - }, - "rust_ms_per_iter": 3.416545, - "ffi_ms_per_iter": 0.760633, - "rust_bytes_per_sec": 299142847.5257899, - "ffi_bytes_per_sec": 1343663764.2595048, - "delta_rust_over_ffi": 0.2226322205620005, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=decompress, level=best, source=rust_stream", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "decompress", - "level": "best", - "source": "rust_stream" - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/decodecorpus-z000033/rust_stream/matrix/pure_rust", - "ms_per_iter": 1.808897, - "bytes_per_sec": 565004530.385091 - }, - "ffi": { - "benchmark_name": "decompress/best/decodecorpus-z000033/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.469689, - "bytes_per_sec": 2175982405.378878 - } - }, - "rust_ms_per_iter": 1.808897, - "ffi_ms_per_iter": 0.469689, - "rust_bytes_per_sec": 565004530.385091, - "ffi_bytes_per_sec": 2175982405.378878, - "delta_rust_over_ffi": 0.25965491678077857, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=decompress, level=better, source=c_stream", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "decompress", - "level": "better", - "source": "c_stream" - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/decodecorpus-z000033/c_stream/matrix/pure_rust", - "ms_per_iter": 3.432231, - "bytes_per_sec": 297775703.3253298 - }, - "ffi": { - "benchmark_name": "decompress/better/decodecorpus-z000033/c_stream/matrix/c_ffi", - "ms_per_iter": 0.784199, - "bytes_per_sec": 1303285263.051853 - } - }, - "rust_ms_per_iter": 3.432231, - "ffi_ms_per_iter": 0.784199, - "rust_bytes_per_sec": 297775703.3253298, - "ffi_bytes_per_sec": 1303285263.051853, - "delta_rust_over_ffi": 0.22848083360356572, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=decompress, level=better, source=rust_stream", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "decompress", - "level": "better", - "source": "rust_stream" - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/decodecorpus-z000033/rust_stream/matrix/pure_rust", - "ms_per_iter": 1.837385, - "bytes_per_sec": 556244336.380236 - }, - "ffi": { - "benchmark_name": "decompress/better/decodecorpus-z000033/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.475596, - "bytes_per_sec": 2148956256.9912276 - } - }, - "rust_ms_per_iter": 1.837385, - "ffi_ms_per_iter": 0.475596, - "rust_bytes_per_sec": 556244336.380236, - "ffi_bytes_per_sec": 2148956256.9912276, - "delta_rust_over_ffi": 0.25884395485976, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=decompress, level=default, source=c_stream", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "decompress", - "level": "default", - "source": "c_stream" - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/decodecorpus-z000033/c_stream/matrix/pure_rust", - "ms_per_iter": 3.526671, - "bytes_per_sec": 289801628.7881688 - }, - "ffi": { - "benchmark_name": "decompress/default/decodecorpus-z000033/c_stream/matrix/c_ffi", - "ms_per_iter": 0.816802, - "bytes_per_sec": 1251264076.2387946 - } - }, - "rust_ms_per_iter": 3.526671, - "ffi_ms_per_iter": 0.816802, - "rust_bytes_per_sec": 289801628.7881688, - "ffi_bytes_per_sec": 1251264076.2387946, - "delta_rust_over_ffi": 0.23160708781737796, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=decompress, level=default, source=rust_stream", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "decompress", - "level": "default", - "source": "rust_stream" - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/decodecorpus-z000033/rust_stream/matrix/pure_rust", - "ms_per_iter": 1.399967, - "bytes_per_sec": 730042208.1377633 - }, - "ffi": { - "benchmark_name": "decompress/default/decodecorpus-z000033/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.378759, - "bytes_per_sec": 2698378124.3482003 - } - }, - "rust_ms_per_iter": 1.399967, - "ffi_ms_per_iter": 0.378759, - "rust_bytes_per_sec": 730042208.1377633, - "ffi_bytes_per_sec": 2698378124.3482003, - "delta_rust_over_ffi": 0.2705485200722588, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=decompress, level=fastest, source=c_stream", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "c_stream" - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/decodecorpus-z000033/c_stream/matrix/pure_rust", - "ms_per_iter": 4.466219, - "bytes_per_sec": 228836740.87634307 - }, - "ffi": { - "benchmark_name": "decompress/fastest/decodecorpus-z000033/c_stream/matrix/c_ffi", - "ms_per_iter": 0.771064, - "bytes_per_sec": 1325486600.3340838 - } - }, - "rust_ms_per_iter": 4.466219, - "ffi_ms_per_iter": 0.771064, - "rust_bytes_per_sec": 228836740.87634307, - "ffi_bytes_per_sec": 1325486600.3340838, - "delta_rust_over_ffi": 0.17264357166542887, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "decodecorpus-z000033 + stage=decompress, level=fastest, source=rust_stream", - "scenario": "decodecorpus-z000033", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "rust_stream" - }, - "input_bytes": 1022035, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/decodecorpus-z000033/rust_stream/matrix/pure_rust", - "ms_per_iter": 1.768432, - "bytes_per_sec": 577932880.653596 - }, - "ffi": { - "benchmark_name": "decompress/fastest/decodecorpus-z000033/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.483002, - "bytes_per_sec": 2116005730.8251312 - } - }, - "rust_ms_per_iter": 1.768432, - "ffi_ms_per_iter": 0.483002, - "rust_bytes_per_sec": 577932880.653596, - "ffi_bytes_per_sec": 2116005730.8251312, - "delta_rust_over_ffi": 0.273124440182037, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=compress, level=best", - "scenario": "high-entropy-1m", - "params": { - "stage": "compress", - "level": "best", - "source": null - }, - "input_bytes": 1048576, - "ratio": { - "rust": 1.000039, - "ffi": 1.000031, - "delta_rust_over_ffi": 1.0000079997520077, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/best/high-entropy-1m/matrix/pure_rust", - "ms_per_iter": 39.959886, - "bytes_per_sec": 26240715.50154072 - }, - "ffi": { - "benchmark_name": "compress/best/high-entropy-1m/matrix/c_ffi", - "ms_per_iter": 0.509961, - "bytes_per_sec": 2056188610.5015876 - } - }, - "rust_ms_per_iter": 39.959886, - "ffi_ms_per_iter": 0.509961, - "rust_bytes_per_sec": 26240715.50154072, - "ffi_bytes_per_sec": 2056188610.5015876, - "delta_rust_over_ffi": 0.012761823194390494, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=compress, level=better", - "scenario": "high-entropy-1m", - "params": { - "stage": "compress", - "level": "better", - "source": null - }, - "input_bytes": 1048576, - "ratio": { - "rust": 1.000039, - "ffi": 1.000031, - "delta_rust_over_ffi": 1.0000079997520077, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/better/high-entropy-1m/matrix/pure_rust", - "ms_per_iter": 85.397973, - "bytes_per_sec": 12278698.933521526 - }, - "ffi": { - "benchmark_name": "compress/better/high-entropy-1m/matrix/c_ffi", - "ms_per_iter": 0.365147, - "bytes_per_sec": 2871654429.5858927 - } - }, - "rust_ms_per_iter": 85.397973, - "ffi_ms_per_iter": 0.365147, - "rust_bytes_per_sec": 12278698.933521526, - "ffi_bytes_per_sec": 2871654429.5858927, - "delta_rust_over_ffi": 0.004275827483633599, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=compress, level=default", - "scenario": "high-entropy-1m", - "params": { - "stage": "compress", - "level": "default", - "source": null - }, - "input_bytes": 1048576, - "ratio": { - "rust": 1.000039, - "ffi": 1.000031, - "delta_rust_over_ffi": 1.0000079997520077, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/default/high-entropy-1m/matrix/pure_rust", - "ms_per_iter": 149.778119, - "bytes_per_sec": 7000862.388984868 - }, - "ffi": { - "benchmark_name": "compress/default/high-entropy-1m/matrix/c_ffi", - "ms_per_iter": 0.244661, - "bytes_per_sec": 4285832233.1716137 - } - }, - "rust_ms_per_iter": 149.778119, - "ffi_ms_per_iter": 0.244661, - "rust_bytes_per_sec": 7000862.388984868, - "ffi_bytes_per_sec": 4285832233.1716137, - "delta_rust_over_ffi": 0.001633489602042605, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=compress, level=fastest", - "scenario": "high-entropy-1m", - "params": { - "stage": "compress", - "level": "fastest", - "source": null - }, - "input_bytes": 1048576, - "ratio": { - "rust": 1.000039, - "ffi": 1.000031, - "delta_rust_over_ffi": 1.0000079997520077, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/fastest/high-entropy-1m/matrix/pure_rust", - "ms_per_iter": 17.656612, - "bytes_per_sec": 59387157.62684257 - }, - "ffi": { - "benchmark_name": "compress/fastest/high-entropy-1m/matrix/c_ffi", - "ms_per_iter": 0.220533, - "bytes_per_sec": 4754735119.007133 - } - }, - "rust_ms_per_iter": 17.656612, - "ffi_ms_per_iter": 0.220533, - "rust_bytes_per_sec": 59387157.62684257, - "ffi_bytes_per_sec": 4754735119.007133, - "delta_rust_over_ffi": 0.012490108521385644, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=decompress, level=best, source=c_stream", - "scenario": "high-entropy-1m", - "params": { - "stage": "decompress", - "level": "best", - "source": "c_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/high-entropy-1m/c_stream/matrix/pure_rust", - "ms_per_iter": 0.148608, - "bytes_per_sec": 7055986218.7769165 - }, - "ffi": { - "benchmark_name": "decompress/best/high-entropy-1m/c_stream/matrix/c_ffi", - "ms_per_iter": 0.020114, - "bytes_per_sec": 52131649597.29541 - } - }, - "rust_ms_per_iter": 0.148608, - "ffi_ms_per_iter": 0.020114, - "rust_bytes_per_sec": 7055986218.7769165, - "ffi_bytes_per_sec": 52131649597.29541, - "delta_rust_over_ffi": 0.13534937553832904, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=decompress, level=best, source=rust_stream", - "scenario": "high-entropy-1m", - "params": { - "stage": "decompress", - "level": "best", - "source": "rust_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/high-entropy-1m/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.150406, - "bytes_per_sec": 6971636769.809714 - }, - "ffi": { - "benchmark_name": "decompress/best/high-entropy-1m/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.096822, - "bytes_per_sec": 10829935345.272768 - } - }, - "rust_ms_per_iter": 0.150406, - "ffi_ms_per_iter": 0.096822, - "rust_bytes_per_sec": 6971636769.809714, - "ffi_bytes_per_sec": 10829935345.272768, - "delta_rust_over_ffi": 0.6437376168503915, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=decompress, level=better, source=c_stream", - "scenario": "high-entropy-1m", - "params": { - "stage": "decompress", - "level": "better", - "source": "c_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/high-entropy-1m/c_stream/matrix/pure_rust", - "ms_per_iter": 0.152761, - "bytes_per_sec": 6864160355.064446 - }, - "ffi": { - "benchmark_name": "decompress/better/high-entropy-1m/c_stream/matrix/c_ffi", - "ms_per_iter": 0.020114, - "bytes_per_sec": 52131649597.29541 - } - }, - "rust_ms_per_iter": 0.152761, - "ffi_ms_per_iter": 0.020114, - "rust_bytes_per_sec": 6864160355.064446, - "ffi_bytes_per_sec": 52131649597.29541, - "delta_rust_over_ffi": 0.13166973245789174, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=decompress, level=better, source=rust_stream", - "scenario": "high-entropy-1m", - "params": { - "stage": "decompress", - "level": "better", - "source": "rust_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/high-entropy-1m/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.154218, - "bytes_per_sec": 6799310067.566691 - }, - "ffi": { - "benchmark_name": "decompress/better/high-entropy-1m/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.099144, - "bytes_per_sec": 10576293068.667797 - } - }, - "rust_ms_per_iter": 0.154218, - "ffi_ms_per_iter": 0.099144, - "rust_bytes_per_sec": 6799310067.566691, - "ffi_bytes_per_sec": 10576293068.667797, - "delta_rust_over_ffi": 0.6428821538341828, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=decompress, level=default, source=c_stream", - "scenario": "high-entropy-1m", - "params": { - "stage": "decompress", - "level": "default", - "source": "c_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/high-entropy-1m/c_stream/matrix/pure_rust", - "ms_per_iter": 0.151113, - "bytes_per_sec": 6939019144.613633 - }, - "ffi": { - "benchmark_name": "decompress/default/high-entropy-1m/c_stream/matrix/c_ffi", - "ms_per_iter": 0.020776, - "bytes_per_sec": 50470542934.15479 - } - }, - "rust_ms_per_iter": 0.151113, - "ffi_ms_per_iter": 0.020776, - "rust_bytes_per_sec": 6939019144.613633, - "ffi_bytes_per_sec": 50470542934.15479, - "delta_rust_over_ffi": 0.13748651671265874, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=decompress, level=default, source=rust_stream", - "scenario": "high-entropy-1m", - "params": { - "stage": "decompress", - "level": "default", - "source": "rust_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/high-entropy-1m/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.150826, - "bytes_per_sec": 6952223091.509422 - }, - "ffi": { - "benchmark_name": "decompress/default/high-entropy-1m/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.098144, - "bytes_per_sec": 10684056080.860775 - } - }, - "rust_ms_per_iter": 0.150826, - "ffi_ms_per_iter": 0.098144, - "rust_bytes_per_sec": 6952223091.509422, - "ffi_bytes_per_sec": 10684056080.860775, - "delta_rust_over_ffi": 0.6507100897723206, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=decompress, level=fastest, source=c_stream", - "scenario": "high-entropy-1m", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "c_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/high-entropy-1m/c_stream/matrix/pure_rust", - "ms_per_iter": 0.157847, - "bytes_per_sec": 6642989730.561873 - }, - "ffi": { - "benchmark_name": "decompress/fastest/high-entropy-1m/c_stream/matrix/c_ffi", - "ms_per_iter": 0.018995, - "bytes_per_sec": 55202737562.51645 - } - }, - "rust_ms_per_iter": 0.157847, - "ffi_ms_per_iter": 0.018995, - "rust_bytes_per_sec": 6642989730.561873, - "ffi_bytes_per_sec": 55202737562.51645, - "delta_rust_over_ffi": 0.1203380488701084, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "high-entropy-1m + stage=decompress, level=fastest, source=rust_stream", - "scenario": "high-entropy-1m", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "rust_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/high-entropy-1m/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.160147, - "bytes_per_sec": 6547584406.826227 - }, - "ffi": { - "benchmark_name": "decompress/fastest/high-entropy-1m/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.100368, - "bytes_per_sec": 10447313884.903555 - } - }, - "rust_ms_per_iter": 0.160147, - "ffi_ms_per_iter": 0.100368, - "rust_bytes_per_sec": 6547584406.826227, - "ffi_bytes_per_sec": 10447313884.903555, - "delta_rust_over_ffi": 0.626724197143874, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=compress, level=best", - "scenario": "large-log-stream", - "params": { - "stage": "compress", - "level": "best", - "source": null - }, - "input_bytes": 104857600, - "ratio": { - "rust": 0.000101, - "ffi": 0.000177, - "delta_rust_over_ffi": 0.5706214689265537, - "status": "rust_better_smaller", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/best/large-log-stream/matrix/pure_rust", - "ms_per_iter": 270.381541, - "bytes_per_sec": 387813456.5406593 - }, - "ffi": { - "benchmark_name": "compress/best/large-log-stream/matrix/c_ffi", - "ms_per_iter": 36.588531, - "bytes_per_sec": 2865859796.338913 - } - }, - "rust_ms_per_iter": 270.381541, - "ffi_ms_per_iter": 36.588531, - "rust_bytes_per_sec": 387813456.5406593, - "ffi_bytes_per_sec": 2865859796.338913, - "delta_rust_over_ffi": 0.1353218524632937, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=compress, level=better", - "scenario": "large-log-stream", - "params": { - "stage": "compress", - "level": "better", - "source": null - }, - "input_bytes": 104857600, - "ratio": { - "rust": 0.000101, - "ffi": 9.3e-05, - "delta_rust_over_ffi": 1.0860215053763442, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/better/large-log-stream/matrix/pure_rust", - "ms_per_iter": 269.400083, - "bytes_per_sec": 389226309.18417346 - }, - "ffi": { - "benchmark_name": "compress/better/large-log-stream/matrix/c_ffi", - "ms_per_iter": 33.666475, - "bytes_per_sec": 3114599909.8509717 - } - }, - "rust_ms_per_iter": 269.400083, - "ffi_ms_per_iter": 33.666475, - "rust_bytes_per_sec": 389226309.18417346, - "ffi_bytes_per_sec": 3114599909.8509717, - "delta_rust_over_ffi": 0.12496831710330246, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=compress, level=default", - "scenario": "large-log-stream", - "params": { - "stage": "compress", - "level": "default", - "source": null - }, - "input_bytes": 104857600, - "ratio": { - "rust": 0.000101, - "ffi": 9.3e-05, - "delta_rust_over_ffi": 1.0860215053763442, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/default/large-log-stream/matrix/pure_rust", - "ms_per_iter": 497.207938, - "bytes_per_sec": 210892851.8353623 - }, - "ffi": { - "benchmark_name": "compress/default/large-log-stream/matrix/c_ffi", - "ms_per_iter": 13.060099, - "bytes_per_sec": 8028851848.672817 - } - }, - "rust_ms_per_iter": 497.207938, - "ffi_ms_per_iter": 13.060099, - "rust_bytes_per_sec": 210892851.8353623, - "ffi_bytes_per_sec": 8028851848.672817, - "delta_rust_over_ffi": 0.026266875489827757, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=compress, level=fastest", - "scenario": "large-log-stream", - "params": { - "stage": "compress", - "level": "fastest", - "source": null - }, - "input_bytes": 104857600, - "ratio": { - "rust": 0.001265, - "ffi": 9.3e-05, - "delta_rust_over_ffi": 13.60215053763441, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/fastest/large-log-stream/matrix/pure_rust", - "ms_per_iter": 98.132257, - "bytes_per_sec": 1068533458.880906 - }, - "ffi": { - "benchmark_name": "compress/fastest/large-log-stream/matrix/c_ffi", - "ms_per_iter": 10.445751, - "bytes_per_sec": 10038301697.982271 - } - }, - "rust_ms_per_iter": 98.132257, - "ffi_ms_per_iter": 10.445751, - "rust_bytes_per_sec": 1068533458.880906, - "ffi_bytes_per_sec": 10038301697.982271, - "delta_rust_over_ffi": 0.10644564100874597, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=decompress, level=best, source=c_stream", - "scenario": "large-log-stream", - "params": { - "stage": "decompress", - "level": "best", - "source": "c_stream" - }, - "input_bytes": 104857600, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/large-log-stream/c_stream/matrix/pure_rust", - "ms_per_iter": 14.979973, - "bytes_per_sec": 6999852402.938244 - }, - "ffi": { - "benchmark_name": "decompress/best/large-log-stream/c_stream/matrix/c_ffi", - "ms_per_iter": 3.337433, - "bytes_per_sec": 31418638216.85709 - } - }, - "rust_ms_per_iter": 14.979973, - "ffi_ms_per_iter": 3.337433, - "rust_bytes_per_sec": 6999852402.938244, - "ffi_bytes_per_sec": 31418638216.85709, - "delta_rust_over_ffi": 0.22279299168296232, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=decompress, level=best, source=rust_stream", - "scenario": "large-log-stream", - "params": { - "stage": "decompress", - "level": "best", - "source": "rust_stream" - }, - "input_bytes": 104857600, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/large-log-stream/rust_stream/matrix/pure_rust", - "ms_per_iter": 14.578202, - "bytes_per_sec": 7192766295.871056 - }, - "ffi": { - "benchmark_name": "decompress/best/large-log-stream/rust_stream/matrix/c_ffi", - "ms_per_iter": 10.03948, - "bytes_per_sec": 10444525015.239834 - } - }, - "rust_ms_per_iter": 14.578202, - "ffi_ms_per_iter": 10.03948, - "rust_bytes_per_sec": 7192766295.871056, - "ffi_bytes_per_sec": 10444525015.239834, - "delta_rust_over_ffi": 0.6886638009268907, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=decompress, level=better, source=c_stream", - "scenario": "large-log-stream", - "params": { - "stage": "decompress", - "level": "better", - "source": "c_stream" - }, - "input_bytes": 104857600, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/large-log-stream/c_stream/matrix/pure_rust", - "ms_per_iter": 14.10199, - "bytes_per_sec": 7435659789.859446 - }, - "ffi": { - "benchmark_name": "decompress/better/large-log-stream/c_stream/matrix/c_ffi", - "ms_per_iter": 3.260717, - "bytes_per_sec": 32157835224.584038 - } - }, - "rust_ms_per_iter": 14.10199, - "ffi_ms_per_iter": 3.260717, - "rust_bytes_per_sec": 7435659789.859446, - "ffi_bytes_per_sec": 32157835224.584038, - "delta_rust_over_ffi": 0.2312238910962212, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=decompress, level=better, source=rust_stream", - "scenario": "large-log-stream", - "params": { - "stage": "decompress", - "level": "better", - "source": "rust_stream" - }, - "input_bytes": 104857600, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/large-log-stream/rust_stream/matrix/pure_rust", - "ms_per_iter": 14.42761, - "bytes_per_sec": 7267842698.8253765 - }, - "ffi": { - "benchmark_name": "decompress/better/large-log-stream/rust_stream/matrix/c_ffi", - "ms_per_iter": 10.025435, - "bytes_per_sec": 10459157133.830105 - } - }, - "rust_ms_per_iter": 14.42761, - "ffi_ms_per_iter": 10.025435, - "rust_bytes_per_sec": 7267842698.8253765, - "ffi_bytes_per_sec": 10459157133.830105, - "delta_rust_over_ffi": 0.6948784310083235, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=decompress, level=default, source=c_stream", - "scenario": "large-log-stream", - "params": { - "stage": "decompress", - "level": "default", - "source": "c_stream" - }, - "input_bytes": 104857600, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/large-log-stream/c_stream/matrix/pure_rust", - "ms_per_iter": 13.800855, - "bytes_per_sec": 7597906071.761496 - }, - "ffi": { - "benchmark_name": "decompress/default/large-log-stream/c_stream/matrix/c_ffi", - "ms_per_iter": 3.253621, - "bytes_per_sec": 32227970006.34063 - } - }, - "rust_ms_per_iter": 13.800855, - "ffi_ms_per_iter": 3.253621, - "rust_bytes_per_sec": 7597906071.761496, - "ffi_bytes_per_sec": 32227970006.34063, - "delta_rust_over_ffi": 0.23575503111944873, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=decompress, level=default, source=rust_stream", - "scenario": "large-log-stream", - "params": { - "stage": "decompress", - "level": "default", - "source": "rust_stream" - }, - "input_bytes": 104857600, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/large-log-stream/rust_stream/matrix/pure_rust", - "ms_per_iter": 13.454484, - "bytes_per_sec": 7793505867.634909 - }, - "ffi": { - "benchmark_name": "decompress/default/large-log-stream/rust_stream/matrix/c_ffi", - "ms_per_iter": 10.082484, - "bytes_per_sec": 10399976831.106304 - } - }, - "rust_ms_per_iter": 13.454484, - "ffi_ms_per_iter": 10.082484, - "rust_bytes_per_sec": 7793505867.634909, - "ffi_bytes_per_sec": 10399976831.106304, - "delta_rust_over_ffi": 0.749377233641959, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=decompress, level=fastest, source=c_stream", - "scenario": "large-log-stream", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "c_stream" - }, - "input_bytes": 104857600, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/large-log-stream/c_stream/matrix/pure_rust", - "ms_per_iter": 14.019549, - "bytes_per_sec": 7479384679.207584 - }, - "ffi": { - "benchmark_name": "decompress/fastest/large-log-stream/c_stream/matrix/c_ffi", - "ms_per_iter": 3.276283, - "bytes_per_sec": 32005049624.834 - } - }, - "rust_ms_per_iter": 14.019549, - "ffi_ms_per_iter": 3.276283, - "rust_bytes_per_sec": 7479384679.207584, - "ffi_bytes_per_sec": 32005049624.834, - "delta_rust_over_ffi": 0.23369389414737948, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "large-log-stream + stage=decompress, level=fastest, source=rust_stream", - "scenario": "large-log-stream", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "rust_stream" - }, - "input_bytes": 104857600, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/large-log-stream/rust_stream/matrix/pure_rust", - "ms_per_iter": 13.374487, - "bytes_per_sec": 7840121269.698045 - }, - "ffi": { - "benchmark_name": "decompress/fastest/large-log-stream/rust_stream/matrix/c_ffi", - "ms_per_iter": 10.70252, - "bytes_per_sec": 9797468259.811708 - } - }, - "rust_ms_per_iter": 13.374487, - "ffi_ms_per_iter": 10.70252, - "rust_bytes_per_sec": 7840121269.698045, - "ffi_bytes_per_sec": 9797468259.811708, - "delta_rust_over_ffi": 0.800219103730857, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=compress, level=best", - "scenario": "low-entropy-1m", - "params": { - "stage": "compress", - "level": "best", - "source": null - }, - "input_bytes": 1048576, - "ratio": { - "rust": 0.000163, - "ffi": 0.000148, - "delta_rust_over_ffi": 1.1013513513513515, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/best/low-entropy-1m/matrix/pure_rust", - "ms_per_iter": 2.802975, - "bytes_per_sec": 374093953.7455739 - }, - "ffi": { - "benchmark_name": "compress/best/low-entropy-1m/matrix/c_ffi", - "ms_per_iter": 0.682945, - "bytes_per_sec": 1535374005.227361 - } - }, - "rust_ms_per_iter": 2.802975, - "ffi_ms_per_iter": 0.682945, - "rust_bytes_per_sec": 374093953.7455739, - "ffi_bytes_per_sec": 1535374005.227361, - "delta_rust_over_ffi": 0.24365005039288612, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=compress, level=better", - "scenario": "low-entropy-1m", - "params": { - "stage": "compress", - "level": "better", - "source": null - }, - "input_bytes": 1048576, - "ratio": { - "rust": 0.000163, - "ffi": 0.000148, - "delta_rust_over_ffi": 1.1013513513513515, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/better/low-entropy-1m/matrix/pure_rust", - "ms_per_iter": 2.709656, - "bytes_per_sec": 386977535.1557541 - }, - "ffi": { - "benchmark_name": "compress/better/low-entropy-1m/matrix/c_ffi", - "ms_per_iter": 0.355883, - "bytes_per_sec": 2946406543.7236395 - } - }, - "rust_ms_per_iter": 2.709656, - "ffi_ms_per_iter": 0.355883, - "rust_bytes_per_sec": 386977535.1557541, - "ffi_bytes_per_sec": 2946406543.7236395, - "delta_rust_over_ffi": 0.1313388120115616, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=compress, level=default", - "scenario": "low-entropy-1m", - "params": { - "stage": "compress", - "level": "default", - "source": null - }, - "input_bytes": 1048576, - "ratio": { - "rust": 0.000163, - "ffi": 0.000148, - "delta_rust_over_ffi": 1.1013513513513515, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/default/low-entropy-1m/matrix/pure_rust", - "ms_per_iter": 4.768849, - "bytes_per_sec": 219880310.74164855 - }, - "ffi": { - "benchmark_name": "compress/default/low-entropy-1m/matrix/c_ffi", - "ms_per_iter": 0.133361, - "bytes_per_sec": 7862688492.137881 - } - }, - "rust_ms_per_iter": 4.768849, - "ffi_ms_per_iter": 0.133361, - "rust_bytes_per_sec": 219880310.74164855, - "ffi_bytes_per_sec": 7862688492.137881, - "delta_rust_over_ffi": 0.027965028878037448, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=compress, level=fastest", - "scenario": "low-entropy-1m", - "params": { - "stage": "compress", - "level": "fastest", - "source": null - }, - "input_bytes": 1048576, - "ratio": { - "rust": 0.00049, - "ffi": 0.000148, - "delta_rust_over_ffi": 3.310810810810811, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/fastest/low-entropy-1m/matrix/pure_rust", - "ms_per_iter": 0.711103, - "bytes_per_sec": 1474576819.3918462 - }, - "ffi": { - "benchmark_name": "compress/fastest/low-entropy-1m/matrix/c_ffi", - "ms_per_iter": 0.08417, - "bytes_per_sec": 12457835333.25413 - } - }, - "rust_ms_per_iter": 0.711103, - "ffi_ms_per_iter": 0.08417, - "rust_bytes_per_sec": 1474576819.3918462, - "ffi_bytes_per_sec": 12457835333.25413, - "delta_rust_over_ffi": 0.11836541260548752, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=decompress, level=best, source=c_stream", - "scenario": "low-entropy-1m", - "params": { - "stage": "decompress", - "level": "best", - "source": "c_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/low-entropy-1m/c_stream/matrix/pure_rust", - "ms_per_iter": 0.263087, - "bytes_per_sec": 3985662537.487599 - }, - "ffi": { - "benchmark_name": "decompress/best/low-entropy-1m/c_stream/matrix/c_ffi", - "ms_per_iter": 0.076379, - "bytes_per_sec": 13728590319.32861 - } - }, - "rust_ms_per_iter": 0.263087, - "ffi_ms_per_iter": 0.076379, - "rust_bytes_per_sec": 3985662537.487599, - "ffi_bytes_per_sec": 13728590319.32861, - "delta_rust_over_ffi": 0.29031841178013357, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=decompress, level=best, source=rust_stream", - "scenario": "low-entropy-1m", - "params": { - "stage": "decompress", - "level": "best", - "source": "rust_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/low-entropy-1m/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.253698, - "bytes_per_sec": 4133166205.488416 - }, - "ffi": { - "benchmark_name": "decompress/best/low-entropy-1m/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.15009, - "bytes_per_sec": 6986314877.740023 - } - }, - "rust_ms_per_iter": 0.253698, - "ffi_ms_per_iter": 0.15009, - "rust_bytes_per_sec": 4133166205.488416, - "ffi_bytes_per_sec": 6986314877.740023, - "delta_rust_over_ffi": 0.5916089208428921, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=decompress, level=better, source=c_stream", - "scenario": "low-entropy-1m", - "params": { - "stage": "decompress", - "level": "better", - "source": "c_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/low-entropy-1m/c_stream/matrix/pure_rust", - "ms_per_iter": 0.258511, - "bytes_per_sec": 4056214242.333982 - }, - "ffi": { - "benchmark_name": "decompress/better/low-entropy-1m/c_stream/matrix/c_ffi", - "ms_per_iter": 0.076818, - "bytes_per_sec": 13650134083.157595 - } - }, - "rust_ms_per_iter": 0.258511, - "ffi_ms_per_iter": 0.076818, - "rust_bytes_per_sec": 4056214242.333982, - "ffi_bytes_per_sec": 13650134083.157595, - "delta_rust_over_ffi": 0.2971556336094015, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=decompress, level=better, source=rust_stream", - "scenario": "low-entropy-1m", - "params": { - "stage": "decompress", - "level": "better", - "source": "rust_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/low-entropy-1m/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.253043, - "bytes_per_sec": 4143864876.720557 - }, - "ffi": { - "benchmark_name": "decompress/better/low-entropy-1m/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.149176, - "bytes_per_sec": 7029119965.678125 - } - }, - "rust_ms_per_iter": 0.253043, - "ffi_ms_per_iter": 0.149176, - "rust_bytes_per_sec": 4143864876.720557, - "ffi_bytes_per_sec": 7029119965.678125, - "delta_rust_over_ffi": 0.5895282619949969, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=decompress, level=default, source=c_stream", - "scenario": "low-entropy-1m", - "params": { - "stage": "decompress", - "level": "default", - "source": "c_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/low-entropy-1m/c_stream/matrix/pure_rust", - "ms_per_iter": 0.25721, - "bytes_per_sec": 4076731075.7746587 - }, - "ffi": { - "benchmark_name": "decompress/default/low-entropy-1m/c_stream/matrix/c_ffi", - "ms_per_iter": 0.075442, - "bytes_per_sec": 13899101296.360117 - } - }, - "rust_ms_per_iter": 0.25721, - "ffi_ms_per_iter": 0.075442, - "rust_bytes_per_sec": 4076731075.7746587, - "ffi_bytes_per_sec": 13899101296.360117, - "delta_rust_over_ffi": 0.2933089693246763, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=decompress, level=default, source=rust_stream", - "scenario": "low-entropy-1m", - "params": { - "stage": "decompress", - "level": "default", - "source": "rust_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/low-entropy-1m/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.253237, - "bytes_per_sec": 4140690341.4587913 - }, - "ffi": { - "benchmark_name": "decompress/default/low-entropy-1m/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.15308, - "bytes_per_sec": 6849856284.295794 - } - }, - "rust_ms_per_iter": 0.253237, - "ffi_ms_per_iter": 0.15308, - "rust_bytes_per_sec": 4140690341.4587913, - "ffi_bytes_per_sec": 6849856284.295794, - "delta_rust_over_ffi": 0.6044930243210904, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=decompress, level=fastest, source=c_stream", - "scenario": "low-entropy-1m", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "c_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/low-entropy-1m/c_stream/matrix/pure_rust", - "ms_per_iter": 0.257709, - "bytes_per_sec": 4068837332.029537 - }, - "ffi": { - "benchmark_name": "decompress/fastest/low-entropy-1m/c_stream/matrix/c_ffi", - "ms_per_iter": 0.075697, - "bytes_per_sec": 13852279482.674345 - } - }, - "rust_ms_per_iter": 0.257709, - "ffi_ms_per_iter": 0.075697, - "rust_bytes_per_sec": 4068837332.029537, - "ffi_bytes_per_sec": 13852279482.674345, - "delta_rust_over_ffi": 0.29373052551521295, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "low-entropy-1m + stage=decompress, level=fastest, source=rust_stream", - "scenario": "low-entropy-1m", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "rust_stream" - }, - "input_bytes": 1048576, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/low-entropy-1m/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.252591, - "bytes_per_sec": 4151280132.7046485 - }, - "ffi": { - "benchmark_name": "decompress/fastest/low-entropy-1m/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.147971, - "bytes_per_sec": 7086361516.783694 - } - }, - "rust_ms_per_iter": 0.252591, - "ffi_ms_per_iter": 0.147971, - "rust_bytes_per_sec": 4151280132.7046485, - "ffi_bytes_per_sec": 7086361516.783694, - "delta_rust_over_ffi": 0.5858126378216166, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=compress, level=best", - "scenario": "small-10k-random", - "params": { - "stage": "compress", - "level": "best", - "source": null - }, - "input_bytes": 10240, - "ratio": { - "rust": 1.001855, - "ffi": 1.000879, - "delta_rust_over_ffi": 1.0009751428494351, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/best/small-10k-random/matrix/pure_rust", - "ms_per_iter": 0.355466, - "bytes_per_sec": 28807255.827561565 - }, - "ffi": { - "benchmark_name": "compress/best/small-10k-random/matrix/c_ffi", - "ms_per_iter": 0.206376, - "bytes_per_sec": 49618172.655735165 - } - }, - "rust_ms_per_iter": 0.355466, - "ffi_ms_per_iter": 0.206376, - "rust_bytes_per_sec": 28807255.827561565, - "ffi_bytes_per_sec": 49618172.655735165, - "delta_rust_over_ffi": 0.5805787332684419, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=compress, level=better", - "scenario": "small-10k-random", - "params": { - "stage": "compress", - "level": "better", - "source": null - }, - "input_bytes": 10240, - "ratio": { - "rust": 1.001855, - "ffi": 1.000879, - "delta_rust_over_ffi": 1.0009751428494351, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/better/small-10k-random/matrix/pure_rust", - "ms_per_iter": 0.293398, - "bytes_per_sec": 34901396.73753741 - }, - "ffi": { - "benchmark_name": "compress/better/small-10k-random/matrix/c_ffi", - "ms_per_iter": 0.058631, - "bytes_per_sec": 174651634.8007027 - } - }, - "rust_ms_per_iter": 0.293398, - "ffi_ms_per_iter": 0.058631, - "rust_bytes_per_sec": 34901396.73753741, - "ffi_bytes_per_sec": 174651634.8007027, - "delta_rust_over_ffi": 0.1998343546990777, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=compress, level=default", - "scenario": "small-10k-random", - "params": { - "stage": "compress", - "level": "default", - "source": null - }, - "input_bytes": 10240, - "ratio": { - "rust": 1.001855, - "ffi": 1.000879, - "delta_rust_over_ffi": 1.0009751428494351, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/default/small-10k-random/matrix/pure_rust", - "ms_per_iter": 1.614877, - "bytes_per_sec": 6341040.21544675 - }, - "ffi": { - "benchmark_name": "compress/default/small-10k-random/matrix/c_ffi", - "ms_per_iter": 0.012321, - "bytes_per_sec": 831101371.6419121 - } - }, - "rust_ms_per_iter": 1.614877, - "ffi_ms_per_iter": 0.012321, - "rust_bytes_per_sec": 6341040.21544675, - "ffi_bytes_per_sec": 831101371.6419121, - "delta_rust_over_ffi": 0.007629683251417912, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=compress, level=fastest", - "scenario": "small-10k-random", - "params": { - "stage": "compress", - "level": "fastest", - "source": null - }, - "input_bytes": 10240, - "ratio": { - "rust": 1.001855, - "ffi": 1.000879, - "delta_rust_over_ffi": 1.0009751428494351, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/fastest/small-10k-random/matrix/pure_rust", - "ms_per_iter": 0.168979, - "bytes_per_sec": 60599246.06016133 - }, - "ffi": { - "benchmark_name": "compress/fastest/small-10k-random/matrix/c_ffi", - "ms_per_iter": 0.005521, - "bytes_per_sec": 1854736460.7860894 - } - }, - "rust_ms_per_iter": 0.168979, - "ffi_ms_per_iter": 0.005521, - "rust_bytes_per_sec": 60599246.06016133, - "ffi_bytes_per_sec": 1854736460.7860894, - "delta_rust_over_ffi": 0.03267269897442878, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=compress-dict, level=best", - "scenario": "small-10k-random", - "params": { - "stage": "compress-dict", - "level": "best", - "source": null - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/best/small-10k-random/matrix/c_ffi_without_dict", - "ms_per_iter": 0.117334, - "bytes_per_sec": 87272231.40777609 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/best/small-10k-random/matrix/c_ffi_with_dict", - "ms_per_iter": 0.230611, - "bytes_per_sec": 44403779.524827525 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=compress-dict, level=better", - "scenario": "small-10k-random", - "params": { - "stage": "compress-dict", - "level": "better", - "source": null - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/better/small-10k-random/matrix/c_ffi_without_dict", - "ms_per_iter": 0.008687, - "bytes_per_sec": 1178772879.0146196 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/better/small-10k-random/matrix/c_ffi_with_dict", - "ms_per_iter": 0.076557, - "bytes_per_sec": 133756547.40912 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=compress-dict, level=default", - "scenario": "small-10k-random", - "params": { - "stage": "compress-dict", - "level": "default", - "source": null - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/default/small-10k-random/matrix/c_ffi_without_dict", - "ms_per_iter": 0.005335, - "bytes_per_sec": 1919400187.4414244 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/default/small-10k-random/matrix/c_ffi_with_dict", - "ms_per_iter": 0.029346, - "bytes_per_sec": 348940230.3550739 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=compress-dict, level=fastest", - "scenario": "small-10k-random", - "params": { - "stage": "compress-dict", - "level": "fastest", - "source": null - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/fastest/small-10k-random/matrix/c_ffi_without_dict", - "ms_per_iter": 0.003893, - "bytes_per_sec": 2630362188.54354 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/fastest/small-10k-random/matrix/c_ffi_with_dict", - "ms_per_iter": 0.014234, - "bytes_per_sec": 719404243.3609667 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=decompress, level=best, source=c_stream", - "scenario": "small-10k-random", - "params": { - "stage": "decompress", - "level": "best", - "source": "c_stream" - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/small-10k-random/c_stream/matrix/pure_rust", - "ms_per_iter": 0.002405, - "bytes_per_sec": 4257796257.796258 - }, - "ffi": { - "benchmark_name": "decompress/best/small-10k-random/c_stream/matrix/c_ffi", - "ms_per_iter": 0.000152, - "bytes_per_sec": 67368421052.63158 - } - }, - "rust_ms_per_iter": 0.002405, - "ffi_ms_per_iter": 0.000152, - "rust_bytes_per_sec": 4257796257.796258, - "ffi_bytes_per_sec": 67368421052.63158, - "delta_rust_over_ffi": 0.0632016632016632, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=decompress, level=best, source=rust_stream", - "scenario": "small-10k-random", - "params": { - "stage": "decompress", - "level": "best", - "source": "rust_stream" - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/small-10k-random/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.001785, - "bytes_per_sec": 5736694677.871149 - }, - "ffi": { - "benchmark_name": "decompress/best/small-10k-random/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.001307, - "bytes_per_sec": 7834736036.725326 - } - }, - "rust_ms_per_iter": 0.001785, - "ffi_ms_per_iter": 0.001307, - "rust_bytes_per_sec": 5736694677.871149, - "ffi_bytes_per_sec": 7834736036.725326, - "delta_rust_over_ffi": 0.7322128851540617, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=decompress, level=better, source=c_stream", - "scenario": "small-10k-random", - "params": { - "stage": "decompress", - "level": "better", - "source": "c_stream" - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/small-10k-random/c_stream/matrix/pure_rust", - "ms_per_iter": 0.002454, - "bytes_per_sec": 4172779136.104319 - }, - "ffi": { - "benchmark_name": "decompress/better/small-10k-random/c_stream/matrix/c_ffi", - "ms_per_iter": 0.000153, - "bytes_per_sec": 66928104575.1634 - } - }, - "rust_ms_per_iter": 0.002454, - "ffi_ms_per_iter": 0.000153, - "rust_bytes_per_sec": 4172779136.104319, - "ffi_bytes_per_sec": 66928104575.1634, - "delta_rust_over_ffi": 0.062347188264058676, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=decompress, level=better, source=rust_stream", - "scenario": "small-10k-random", - "params": { - "stage": "decompress", - "level": "better", - "source": "rust_stream" - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/small-10k-random/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.001455, - "bytes_per_sec": 7037800687.285224 - }, - "ffi": { - "benchmark_name": "decompress/better/small-10k-random/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.001042, - "bytes_per_sec": 9827255278.310942 - } - }, - "rust_ms_per_iter": 0.001455, - "ffi_ms_per_iter": 0.001042, - "rust_bytes_per_sec": 7037800687.285224, - "ffi_bytes_per_sec": 9827255278.310942, - "delta_rust_over_ffi": 0.7161512027491409, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=decompress, level=default, source=c_stream", - "scenario": "small-10k-random", - "params": { - "stage": "decompress", - "level": "default", - "source": "c_stream" - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/small-10k-random/c_stream/matrix/pure_rust", - "ms_per_iter": 0.002408, - "bytes_per_sec": 4252491694.3521595 - }, - "ffi": { - "benchmark_name": "decompress/default/small-10k-random/c_stream/matrix/c_ffi", - "ms_per_iter": 0.000151, - "bytes_per_sec": 67814569536.423836 - } - }, - "rust_ms_per_iter": 0.002408, - "ffi_ms_per_iter": 0.000151, - "rust_bytes_per_sec": 4252491694.3521595, - "ffi_bytes_per_sec": 67814569536.423836, - "delta_rust_over_ffi": 0.0627076411960133, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=decompress, level=default, source=rust_stream", - "scenario": "small-10k-random", - "params": { - "stage": "decompress", - "level": "default", - "source": "rust_stream" - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/small-10k-random/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.00148, - "bytes_per_sec": 6918918918.918919 - }, - "ffi": { - "benchmark_name": "decompress/default/small-10k-random/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.001044, - "bytes_per_sec": 9808429118.773945 - } - }, - "rust_ms_per_iter": 0.00148, - "ffi_ms_per_iter": 0.001044, - "rust_bytes_per_sec": 6918918918.918919, - "ffi_bytes_per_sec": 9808429118.773945, - "delta_rust_over_ffi": 0.7054054054054055, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=decompress, level=fastest, source=c_stream", - "scenario": "small-10k-random", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "c_stream" - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/small-10k-random/c_stream/matrix/pure_rust", - "ms_per_iter": 0.002413, - "bytes_per_sec": 4243680066.307501 - }, - "ffi": { - "benchmark_name": "decompress/fastest/small-10k-random/c_stream/matrix/c_ffi", - "ms_per_iter": 0.000153, - "bytes_per_sec": 66928104575.1634 - } - }, - "rust_ms_per_iter": 0.002413, - "ffi_ms_per_iter": 0.000153, - "rust_bytes_per_sec": 4243680066.307501, - "ffi_bytes_per_sec": 66928104575.1634, - "delta_rust_over_ffi": 0.0634065478657273, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-10k-random + stage=decompress, level=fastest, source=rust_stream", - "scenario": "small-10k-random", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "rust_stream" - }, - "input_bytes": 10240, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/small-10k-random/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.001463, - "bytes_per_sec": 6999316473.000684 - }, - "ffi": { - "benchmark_name": "decompress/fastest/small-10k-random/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.001048, - "bytes_per_sec": 9770992366.412212 - } - }, - "rust_ms_per_iter": 0.001463, - "ffi_ms_per_iter": 0.001048, - "rust_bytes_per_sec": 6999316473.000684, - "ffi_bytes_per_sec": 9770992366.412212, - "delta_rust_over_ffi": 0.7163362952836638, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=compress, level=best", - "scenario": "small-1k-random", - "params": { - "stage": "compress", - "level": "best", - "source": null - }, - "input_bytes": 1024, - "ratio": { - "rust": 1.018555, - "ffi": 1.008789, - "delta_rust_over_ffi": 1.009680914442961, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/best/small-1k-random/matrix/pure_rust", - "ms_per_iter": 0.146316, - "bytes_per_sec": 6998551.081221465 - }, - "ffi": { - "benchmark_name": "compress/best/small-1k-random/matrix/c_ffi", - "ms_per_iter": 0.198118, - "bytes_per_sec": 5168636.872974693 - } - }, - "rust_ms_per_iter": 0.146316, - "ffi_ms_per_iter": 0.198118, - "rust_bytes_per_sec": 6998551.081221465, - "ffi_bytes_per_sec": 5168636.872974693, - "delta_rust_over_ffi": 1.3540419366303065, - "status": "rust_faster", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=compress, level=better", - "scenario": "small-1k-random", - "params": { - "stage": "compress", - "level": "better", - "source": null - }, - "input_bytes": 1024, - "ratio": { - "rust": 1.018555, - "ffi": 1.008789, - "delta_rust_over_ffi": 1.009680914442961, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/better/small-1k-random/matrix/pure_rust", - "ms_per_iter": 0.086175, - "bytes_per_sec": 11882796.634754859 - }, - "ffi": { - "benchmark_name": "compress/better/small-1k-random/matrix/c_ffi", - "ms_per_iter": 0.051952, - "bytes_per_sec": 19710502.00184786 - } - }, - "rust_ms_per_iter": 0.086175, - "ffi_ms_per_iter": 0.051952, - "rust_bytes_per_sec": 11882796.634754859, - "ffi_bytes_per_sec": 19710502.00184786, - "delta_rust_over_ffi": 0.602866260516391, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=compress, level=default", - "scenario": "small-1k-random", - "params": { - "stage": "compress", - "level": "default", - "source": null - }, - "input_bytes": 1024, - "ratio": { - "rust": 1.018555, - "ffi": 1.008789, - "delta_rust_over_ffi": 1.009680914442961, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/default/small-1k-random/matrix/pure_rust", - "ms_per_iter": 1.127119, - "bytes_per_sec": 908510.991297281 - }, - "ffi": { - "benchmark_name": "compress/default/small-1k-random/matrix/c_ffi", - "ms_per_iter": 0.007907, - "bytes_per_sec": 129505501.45440747 - } - }, - "rust_ms_per_iter": 1.127119, - "ffi_ms_per_iter": 0.007907, - "rust_bytes_per_sec": 908510.991297281, - "ffi_bytes_per_sec": 129505501.45440747, - "delta_rust_over_ffi": 0.007015230867370705, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=compress, level=fastest", - "scenario": "small-1k-random", - "params": { - "stage": "compress", - "level": "fastest", - "source": null - }, - "input_bytes": 1024, - "ratio": { - "rust": 1.018555, - "ffi": 1.008789, - "delta_rust_over_ffi": 1.009680914442961, - "status": "near_parity", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/fastest/small-1k-random/matrix/pure_rust", - "ms_per_iter": 0.017017, - "bytes_per_sec": 60175118.99864841 - }, - "ffi": { - "benchmark_name": "compress/fastest/small-1k-random/matrix/c_ffi", - "ms_per_iter": 0.002069, - "bytes_per_sec": 494925084.5819236 - } - }, - "rust_ms_per_iter": 0.017017, - "ffi_ms_per_iter": 0.002069, - "rust_bytes_per_sec": 60175118.99864841, - "ffi_bytes_per_sec": 494925084.5819236, - "delta_rust_over_ffi": 0.1215842980548863, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=decompress, level=best, source=c_stream", - "scenario": "small-1k-random", - "params": { - "stage": "decompress", - "level": "best", - "source": "c_stream" - }, - "input_bytes": 1024, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/small-1k-random/c_stream/matrix/pure_rust", - "ms_per_iter": 0.001331, - "bytes_per_sec": 769346356.1232157 - }, - "ffi": { - "benchmark_name": "decompress/best/small-1k-random/c_stream/matrix/c_ffi", - "ms_per_iter": 3.4e-05, - "bytes_per_sec": 30117647058.82353 - } - }, - "rust_ms_per_iter": 0.001331, - "ffi_ms_per_iter": 3.4e-05, - "rust_bytes_per_sec": 769346356.1232157, - "ffi_bytes_per_sec": 30117647058.82353, - "delta_rust_over_ffi": 0.025544703230653647, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=decompress, level=best, source=rust_stream", - "scenario": "small-1k-random", - "params": { - "stage": "decompress", - "level": "best", - "source": "rust_stream" - }, - "input_bytes": 1024, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/small-1k-random/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.00019, - "bytes_per_sec": 5389473684.210526 - }, - "ffi": { - "benchmark_name": "decompress/best/small-1k-random/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.000131, - "bytes_per_sec": 7816793893.129769 - } - }, - "rust_ms_per_iter": 0.00019, - "ffi_ms_per_iter": 0.000131, - "rust_bytes_per_sec": 5389473684.210526, - "ffi_bytes_per_sec": 7816793893.129769, - "delta_rust_over_ffi": 0.6894736842105265, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=decompress, level=better, source=c_stream", - "scenario": "small-1k-random", - "params": { - "stage": "decompress", - "level": "better", - "source": "c_stream" - }, - "input_bytes": 1024, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/small-1k-random/c_stream/matrix/pure_rust", - "ms_per_iter": 0.001646, - "bytes_per_sec": 622114216.2818955 - }, - "ffi": { - "benchmark_name": "decompress/better/small-1k-random/c_stream/matrix/c_ffi", - "ms_per_iter": 4.1e-05, - "bytes_per_sec": 24975609756.09756 - } - }, - "rust_ms_per_iter": 0.001646, - "ffi_ms_per_iter": 4.1e-05, - "rust_bytes_per_sec": 622114216.2818955, - "ffi_bytes_per_sec": 24975609756.09756, - "delta_rust_over_ffi": 0.024908869987849334, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=decompress, level=better, source=rust_stream", - "scenario": "small-1k-random", - "params": { - "stage": "decompress", - "level": "better", - "source": "rust_stream" - }, - "input_bytes": 1024, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/small-1k-random/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.000189, - "bytes_per_sec": 5417989417.989418 - }, - "ffi": { - "benchmark_name": "decompress/better/small-1k-random/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.000129, - "bytes_per_sec": 7937984496.124031 - } - }, - "rust_ms_per_iter": 0.000189, - "ffi_ms_per_iter": 0.000129, - "rust_bytes_per_sec": 5417989417.989418, - "ffi_bytes_per_sec": 7937984496.124031, - "delta_rust_over_ffi": 0.6825396825396826, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=decompress, level=default, source=c_stream", - "scenario": "small-1k-random", - "params": { - "stage": "decompress", - "level": "default", - "source": "c_stream" - }, - "input_bytes": 1024, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/small-1k-random/c_stream/matrix/pure_rust", - "ms_per_iter": 0.001334, - "bytes_per_sec": 767616191.9040481 - }, - "ffi": { - "benchmark_name": "decompress/default/small-1k-random/c_stream/matrix/c_ffi", - "ms_per_iter": 3.4e-05, - "bytes_per_sec": 30117647058.82353 - } - }, - "rust_ms_per_iter": 0.001334, - "ffi_ms_per_iter": 3.4e-05, - "rust_bytes_per_sec": 767616191.9040481, - "ffi_bytes_per_sec": 30117647058.82353, - "delta_rust_over_ffi": 0.025487256371814097, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=decompress, level=default, source=rust_stream", - "scenario": "small-1k-random", - "params": { - "stage": "decompress", - "level": "default", - "source": "rust_stream" - }, - "input_bytes": 1024, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/small-1k-random/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.00019, - "bytes_per_sec": 5389473684.210526 - }, - "ffi": { - "benchmark_name": "decompress/default/small-1k-random/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.000131, - "bytes_per_sec": 7816793893.129769 - } - }, - "rust_ms_per_iter": 0.00019, - "ffi_ms_per_iter": 0.000131, - "rust_bytes_per_sec": 5389473684.210526, - "ffi_bytes_per_sec": 7816793893.129769, - "delta_rust_over_ffi": 0.6894736842105265, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=decompress, level=fastest, source=c_stream", - "scenario": "small-1k-random", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "c_stream" - }, - "input_bytes": 1024, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/small-1k-random/c_stream/matrix/pure_rust", - "ms_per_iter": 0.001352, - "bytes_per_sec": 757396449.7041421 - }, - "ffi": { - "benchmark_name": "decompress/fastest/small-1k-random/c_stream/matrix/c_ffi", - "ms_per_iter": 3.4e-05, - "bytes_per_sec": 30117647058.82353 - } - }, - "rust_ms_per_iter": 0.001352, - "ffi_ms_per_iter": 3.4e-05, - "rust_bytes_per_sec": 757396449.7041421, - "ffi_bytes_per_sec": 30117647058.82353, - "delta_rust_over_ffi": 0.025147928994082844, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-1k-random + stage=decompress, level=fastest, source=rust_stream", - "scenario": "small-1k-random", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "rust_stream" - }, - "input_bytes": 1024, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/small-1k-random/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.00019, - "bytes_per_sec": 5389473684.210526 - }, - "ffi": { - "benchmark_name": "decompress/fastest/small-1k-random/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.00013, - "bytes_per_sec": 7876923076.923077 - } - }, - "rust_ms_per_iter": 0.00019, - "ffi_ms_per_iter": 0.00013, - "rust_bytes_per_sec": 5389473684.210526, - "ffi_bytes_per_sec": 7876923076.923077, - "delta_rust_over_ffi": 0.6842105263157895, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=compress, level=best", - "scenario": "small-4k-log-lines", - "params": { - "stage": "compress", - "level": "best", - "source": null - }, - "input_bytes": 4096, - "ratio": { - "rust": 0.04248, - "ffi": 0.036377, - "delta_rust_over_ffi": 1.167770844214751, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/best/small-4k-log-lines/matrix/pure_rust", - "ms_per_iter": 0.145367, - "bytes_per_sec": 28176959.007202458 - }, - "ffi": { - "benchmark_name": "compress/best/small-4k-log-lines/matrix/c_ffi", - "ms_per_iter": 0.199334, - "bytes_per_sec": 20548426.259443946 - } - }, - "rust_ms_per_iter": 0.145367, - "ffi_ms_per_iter": 0.199334, - "rust_bytes_per_sec": 28176959.007202458, - "ffi_bytes_per_sec": 20548426.259443946, - "delta_rust_over_ffi": 1.371246569028734, - "status": "rust_faster", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=compress, level=better", - "scenario": "small-4k-log-lines", - "params": { - "stage": "compress", - "level": "better", - "source": null - }, - "input_bytes": 4096, - "ratio": { - "rust": 0.04248, - "ffi": 0.036377, - "delta_rust_over_ffi": 1.167770844214751, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/better/small-4k-log-lines/matrix/pure_rust", - "ms_per_iter": 0.087348, - "bytes_per_sec": 46892888.217245966 - }, - "ffi": { - "benchmark_name": "compress/better/small-4k-log-lines/matrix/c_ffi", - "ms_per_iter": 0.053681, - "bytes_per_sec": 76302602.41053632 - } - }, - "rust_ms_per_iter": 0.087348, - "ffi_ms_per_iter": 0.053681, - "rust_bytes_per_sec": 46892888.217245966, - "ffi_bytes_per_sec": 76302602.41053632, - "delta_rust_over_ffi": 0.6145647295873976, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=compress, level=default", - "scenario": "small-4k-log-lines", - "params": { - "stage": "compress", - "level": "default", - "source": null - }, - "input_bytes": 4096, - "ratio": { - "rust": 0.043213, - "ffi": 0.036865, - "delta_rust_over_ffi": 1.1721958497219584, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/default/small-4k-log-lines/matrix/pure_rust", - "ms_per_iter": 1.157853, - "bytes_per_sec": 3537582.059207862 - }, - "ffi": { - "benchmark_name": "compress/default/small-4k-log-lines/matrix/c_ffi", - "ms_per_iter": 0.010445, - "bytes_per_sec": 392149353.7577789 - } - }, - "rust_ms_per_iter": 1.157853, - "ffi_ms_per_iter": 0.010445, - "rust_bytes_per_sec": 3537582.059207862, - "ffi_bytes_per_sec": 392149353.7577789, - "delta_rust_over_ffi": 0.009021006984479031, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=compress, level=fastest", - "scenario": "small-4k-log-lines", - "params": { - "stage": "compress", - "level": "fastest", - "source": null - }, - "input_bytes": 4096, - "ratio": { - "rust": 0.043457, - "ffi": 0.038086, - "delta_rust_over_ffi": 1.1410229480649057, - "status": "rust_worse_larger", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "compress/fastest/small-4k-log-lines/matrix/pure_rust", - "ms_per_iter": 0.018874, - "bytes_per_sec": 217018120.16530678 - }, - "ffi": { - "benchmark_name": "compress/fastest/small-4k-log-lines/matrix/c_ffi", - "ms_per_iter": 0.004122, - "bytes_per_sec": 993692382.3386706 - } - }, - "rust_ms_per_iter": 0.018874, - "ffi_ms_per_iter": 0.004122, - "rust_bytes_per_sec": 217018120.16530678, - "ffi_bytes_per_sec": 993692382.3386706, - "delta_rust_over_ffi": 0.21839567659213732, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=compress-dict, level=best", - "scenario": "small-4k-log-lines", - "params": { - "stage": "compress-dict", - "level": "best", - "source": null - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/best/small-4k-log-lines/matrix/c_ffi_without_dict", - "ms_per_iter": 0.010848, - "bytes_per_sec": 377581120.9439528 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/best/small-4k-log-lines/matrix/c_ffi_with_dict", - "ms_per_iter": 0.006892, - "bytes_per_sec": 594312246.0824144 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=compress-dict, level=better", - "scenario": "small-4k-log-lines", - "params": { - "stage": "compress-dict", - "level": "better", - "source": null - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/better/small-4k-log-lines/matrix/c_ffi_without_dict", - "ms_per_iter": 0.004831, - "bytes_per_sec": 847857586.4210309 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/better/small-4k-log-lines/matrix/c_ffi_with_dict", - "ms_per_iter": 0.002269, - "bytes_per_sec": 1805200528.8673422 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=compress-dict, level=default", - "scenario": "small-4k-log-lines", - "params": { - "stage": "compress-dict", - "level": "default", - "source": null - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/default/small-4k-log-lines/matrix/c_ffi_without_dict", - "ms_per_iter": 0.003273, - "bytes_per_sec": 1251451267.9498932 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/default/small-4k-log-lines/matrix/c_ffi_with_dict", - "ms_per_iter": 0.000755, - "bytes_per_sec": 5425165562.913907 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=compress-dict, level=fastest", - "scenario": "small-4k-log-lines", - "params": { - "stage": "compress-dict", - "level": "fastest", - "source": null - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "c_ffi_without_dict": { - "benchmark_name": "compress-dict/fastest/small-4k-log-lines/matrix/c_ffi_without_dict", - "ms_per_iter": 0.003193, - "bytes_per_sec": 1282806138.4278107 - }, - "c_ffi_with_dict": { - "benchmark_name": "compress-dict/fastest/small-4k-log-lines/matrix/c_ffi_with_dict", - "ms_per_iter": 0.000746, - "bytes_per_sec": 5490616621.983914 - } - }, - "rust_ms_per_iter": null, - "ffi_ms_per_iter": null, - "rust_bytes_per_sec": null, - "ffi_bytes_per_sec": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=decompress, level=best, source=c_stream", - "scenario": "small-4k-log-lines", - "params": { - "stage": "decompress", - "level": "best", - "source": "c_stream" - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/small-4k-log-lines/c_stream/matrix/pure_rust", - "ms_per_iter": 0.003228, - "bytes_per_sec": 1268897149.9380422 - }, - "ffi": { - "benchmark_name": "decompress/best/small-4k-log-lines/c_stream/matrix/c_ffi", - "ms_per_iter": 0.001551, - "bytes_per_sec": 2640876853.642811 - } - }, - "rust_ms_per_iter": 0.003228, - "ffi_ms_per_iter": 0.001551, - "rust_bytes_per_sec": 1268897149.9380422, - "ffi_bytes_per_sec": 2640876853.642811, - "delta_rust_over_ffi": 0.48048327137546476, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=decompress, level=best, source=rust_stream", - "scenario": "small-4k-log-lines", - "params": { - "stage": "decompress", - "level": "best", - "source": "rust_stream" - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/best/small-4k-log-lines/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.001474, - "bytes_per_sec": 2778833107.191316 - }, - "ffi": { - "benchmark_name": "decompress/best/small-4k-log-lines/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.000486, - "bytes_per_sec": 8427983539.09465 - } - }, - "rust_ms_per_iter": 0.001474, - "ffi_ms_per_iter": 0.000486, - "rust_bytes_per_sec": 2778833107.191316, - "ffi_bytes_per_sec": 8427983539.09465, - "delta_rust_over_ffi": 0.32971506105834464, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=decompress, level=better, source=c_stream", - "scenario": "small-4k-log-lines", - "params": { - "stage": "decompress", - "level": "better", - "source": "c_stream" - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/small-4k-log-lines/c_stream/matrix/pure_rust", - "ms_per_iter": 0.003076, - "bytes_per_sec": 1331599479.8439531 - }, - "ffi": { - "benchmark_name": "decompress/better/small-4k-log-lines/c_stream/matrix/c_ffi", - "ms_per_iter": 0.001553, - "bytes_per_sec": 2637475853.1873794 - } - }, - "rust_ms_per_iter": 0.003076, - "ffi_ms_per_iter": 0.001553, - "rust_bytes_per_sec": 1331599479.8439531, - "ffi_bytes_per_sec": 2637475853.1873794, - "delta_rust_over_ffi": 0.5048764629388817, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=decompress, level=better, source=rust_stream", - "scenario": "small-4k-log-lines", - "params": { - "stage": "decompress", - "level": "better", - "source": "rust_stream" - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/better/small-4k-log-lines/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.001432, - "bytes_per_sec": 2860335195.5307264 - }, - "ffi": { - "benchmark_name": "decompress/better/small-4k-log-lines/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.000476, - "bytes_per_sec": 8605042016.806723 - } - }, - "rust_ms_per_iter": 0.001432, - "ffi_ms_per_iter": 0.000476, - "rust_bytes_per_sec": 2860335195.5307264, - "ffi_bytes_per_sec": 8605042016.806723, - "delta_rust_over_ffi": 0.3324022346368715, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=decompress, level=default, source=c_stream", - "scenario": "small-4k-log-lines", - "params": { - "stage": "decompress", - "level": "default", - "source": "c_stream" - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/small-4k-log-lines/c_stream/matrix/pure_rust", - "ms_per_iter": 0.003061, - "bytes_per_sec": 1338124795.81836 - }, - "ffi": { - "benchmark_name": "decompress/default/small-4k-log-lines/c_stream/matrix/c_ffi", - "ms_per_iter": 0.001518, - "bytes_per_sec": 2698287220.02635 - } - }, - "rust_ms_per_iter": 0.003061, - "ffi_ms_per_iter": 0.001518, - "rust_bytes_per_sec": 1338124795.81836, - "ffi_bytes_per_sec": 2698287220.02635, - "delta_rust_over_ffi": 0.49591636720026144, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=decompress, level=default, source=rust_stream", - "scenario": "small-4k-log-lines", - "params": { - "stage": "decompress", - "level": "default", - "source": "rust_stream" - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/default/small-4k-log-lines/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.001424, - "bytes_per_sec": 2876404494.382023 - }, - "ffi": { - "benchmark_name": "decompress/default/small-4k-log-lines/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.000468, - "bytes_per_sec": 8752136752.136751 - } - }, - "rust_ms_per_iter": 0.001424, - "ffi_ms_per_iter": 0.000468, - "rust_bytes_per_sec": 2876404494.382023, - "ffi_bytes_per_sec": 8752136752.136751, - "delta_rust_over_ffi": 0.3286516853932585, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=decompress, level=fastest, source=c_stream", - "scenario": "small-4k-log-lines", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "c_stream" - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/small-4k-log-lines/c_stream/matrix/pure_rust", - "ms_per_iter": 0.003126, - "bytes_per_sec": 1310300703.7747922 - }, - "ffi": { - "benchmark_name": "decompress/fastest/small-4k-log-lines/c_stream/matrix/c_ffi", - "ms_per_iter": 0.001578, - "bytes_per_sec": 2595690747.7820024 - } - }, - "rust_ms_per_iter": 0.003126, - "ffi_ms_per_iter": 0.001578, - "rust_bytes_per_sec": 1310300703.7747922, - "ffi_bytes_per_sec": 2595690747.7820024, - "delta_rust_over_ffi": 0.5047984644913628, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - }, - { - "key": "small-4k-log-lines + stage=decompress, level=fastest, source=rust_stream", - "scenario": "small-4k-log-lines", - "params": { - "stage": "decompress", - "level": "fastest", - "source": "rust_stream" - }, - "input_bytes": 4096, - "ratio": { - "rust": null, - "ffi": null, - "delta_rust_over_ffi": null, - "status": "insufficient-data", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger" - }, - "speed": { - "series": { - "rust": { - "benchmark_name": "decompress/fastest/small-4k-log-lines/rust_stream/matrix/pure_rust", - "ms_per_iter": 0.001404, - "bytes_per_sec": 2917378917.378917 - }, - "ffi": { - "benchmark_name": "decompress/fastest/small-4k-log-lines/rust_stream/matrix/c_ffi", - "ms_per_iter": 0.000478, - "bytes_per_sec": 8569037656.903766 - } - }, - "rust_ms_per_iter": 0.001404, - "ffi_ms_per_iter": 0.000478, - "rust_bytes_per_sec": 2917378917.378917, - "ffi_bytes_per_sec": 8569037656.903766, - "delta_rust_over_ffi": 0.34045584045584043, - "status": "rust_slower", - "reference_low": 0.99, - "reference_high": 1.05, - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower" - } - } -] \ No newline at end of file diff --git a/benchmark-delta.md b/benchmark-delta.md deleted file mode 100644 index b53f63f3..00000000 --- a/benchmark-delta.md +++ /dev/null @@ -1,379 +0,0 @@ -# Benchmark Delta Report - -Generated by `.github/scripts/run-benchmarks.sh` from `cargo bench --bench compare_ffi`. - -Reference bands for deltas: `0.99` and `1.05`. - -## Ratio pack - -Interpretation: lower ratio is better (smaller compressed output). - -### Rust compression ratio - -| Key | Rust ratio | -| --- | ---: | -| decodecorpus-z000033 + stage=compress, level=best | 0.5285 | -| decodecorpus-z000033 + stage=compress, level=better | 0.5299 | -| decodecorpus-z000033 + stage=compress, level=default | 0.5657 | -| decodecorpus-z000033 + stage=compress, level=fastest | 0.5952 | -| high-entropy-1m + stage=compress, level=best | 1.0000 | -| high-entropy-1m + stage=compress, level=better | 1.0000 | -| high-entropy-1m + stage=compress, level=default | 1.0000 | -| high-entropy-1m + stage=compress, level=fastest | 1.0000 | -| large-log-stream + stage=compress, level=best | 0.0001 | -| large-log-stream + stage=compress, level=better | 0.0001 | -| large-log-stream + stage=compress, level=default | 0.0001 | -| large-log-stream + stage=compress, level=fastest | 0.0013 | -| low-entropy-1m + stage=compress, level=best | 0.0002 | -| low-entropy-1m + stage=compress, level=better | 0.0002 | -| low-entropy-1m + stage=compress, level=default | 0.0002 | -| low-entropy-1m + stage=compress, level=fastest | 0.0005 | -| small-10k-random + stage=compress, level=best | 1.0019 | -| small-10k-random + stage=compress, level=better | 1.0019 | -| small-10k-random + stage=compress, level=default | 1.0019 | -| small-10k-random + stage=compress, level=fastest | 1.0019 | -| small-1k-random + stage=compress, level=best | 1.0186 | -| small-1k-random + stage=compress, level=better | 1.0186 | -| small-1k-random + stage=compress, level=default | 1.0186 | -| small-1k-random + stage=compress, level=fastest | 1.0186 | -| small-4k-log-lines + stage=compress, level=best | 0.0425 | -| small-4k-log-lines + stage=compress, level=better | 0.0425 | -| small-4k-log-lines + stage=compress, level=default | 0.0432 | -| small-4k-log-lines + stage=compress, level=fastest | 0.0435 | - -### FFI compression ratio - -| Key | FFI ratio | -| --- | ---: | -| decodecorpus-z000033 + stage=compress, level=best | 0.4983 | -| decodecorpus-z000033 + stage=compress, level=better | 0.4990 | -| decodecorpus-z000033 + stage=compress, level=default | 0.5158 | -| decodecorpus-z000033 + stage=compress, level=fastest | 0.5582 | -| high-entropy-1m + stage=compress, level=best | 1.0000 | -| high-entropy-1m + stage=compress, level=better | 1.0000 | -| high-entropy-1m + stage=compress, level=default | 1.0000 | -| high-entropy-1m + stage=compress, level=fastest | 1.0000 | -| large-log-stream + stage=compress, level=best | 0.0002 | -| large-log-stream + stage=compress, level=better | 0.0001 | -| large-log-stream + stage=compress, level=default | 0.0001 | -| large-log-stream + stage=compress, level=fastest | 0.0001 | -| low-entropy-1m + stage=compress, level=best | 0.0001 | -| low-entropy-1m + stage=compress, level=better | 0.0001 | -| low-entropy-1m + stage=compress, level=default | 0.0001 | -| low-entropy-1m + stage=compress, level=fastest | 0.0001 | -| small-10k-random + stage=compress, level=best | 1.0009 | -| small-10k-random + stage=compress, level=better | 1.0009 | -| small-10k-random + stage=compress, level=default | 1.0009 | -| small-10k-random + stage=compress, level=fastest | 1.0009 | -| small-1k-random + stage=compress, level=best | 1.0088 | -| small-1k-random + stage=compress, level=better | 1.0088 | -| small-1k-random + stage=compress, level=default | 1.0088 | -| small-1k-random + stage=compress, level=fastest | 1.0088 | -| small-4k-log-lines + stage=compress, level=best | 0.0364 | -| small-4k-log-lines + stage=compress, level=better | 0.0364 | -| small-4k-log-lines + stage=compress, level=default | 0.0369 | -| small-4k-log-lines + stage=compress, level=fastest | 0.0381 | - -### Rust/FFI ratio delta - -| Key | Delta | Status | Ref low | Ref high | -| --- | ---: | --- | ---: | ---: | -| decodecorpus-z000033 + stage=compress, level=best | 1.0606 | rust_worse_larger | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=compress, level=better | 1.0619 | rust_worse_larger | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=compress, level=default | 1.0968 | rust_worse_larger | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=compress, level=fastest | 1.0664 | rust_worse_larger | 0.99 | 1.05 | -| high-entropy-1m + stage=compress, level=best | 1.0000 | near_parity | 0.99 | 1.05 | -| high-entropy-1m + stage=compress, level=better | 1.0000 | near_parity | 0.99 | 1.05 | -| high-entropy-1m + stage=compress, level=default | 1.0000 | near_parity | 0.99 | 1.05 | -| high-entropy-1m + stage=compress, level=fastest | 1.0000 | near_parity | 0.99 | 1.05 | -| large-log-stream + stage=compress, level=best | 0.5706 | rust_better_smaller | 0.99 | 1.05 | -| large-log-stream + stage=compress, level=better | 1.0860 | rust_worse_larger | 0.99 | 1.05 | -| large-log-stream + stage=compress, level=default | 1.0860 | rust_worse_larger | 0.99 | 1.05 | -| large-log-stream + stage=compress, level=fastest | 13.6022 | rust_worse_larger | 0.99 | 1.05 | -| low-entropy-1m + stage=compress, level=best | 1.1014 | rust_worse_larger | 0.99 | 1.05 | -| low-entropy-1m + stage=compress, level=better | 1.1014 | rust_worse_larger | 0.99 | 1.05 | -| low-entropy-1m + stage=compress, level=default | 1.1014 | rust_worse_larger | 0.99 | 1.05 | -| low-entropy-1m + stage=compress, level=fastest | 3.3108 | rust_worse_larger | 0.99 | 1.05 | -| small-10k-random + stage=compress, level=best | 1.0010 | near_parity | 0.99 | 1.05 | -| small-10k-random + stage=compress, level=better | 1.0010 | near_parity | 0.99 | 1.05 | -| small-10k-random + stage=compress, level=default | 1.0010 | near_parity | 0.99 | 1.05 | -| small-10k-random + stage=compress, level=fastest | 1.0010 | near_parity | 0.99 | 1.05 | -| small-1k-random + stage=compress, level=best | 1.0097 | near_parity | 0.99 | 1.05 | -| small-1k-random + stage=compress, level=better | 1.0097 | near_parity | 0.99 | 1.05 | -| small-1k-random + stage=compress, level=default | 1.0097 | near_parity | 0.99 | 1.05 | -| small-1k-random + stage=compress, level=fastest | 1.0097 | near_parity | 0.99 | 1.05 | -| small-4k-log-lines + stage=compress, level=best | 1.1678 | rust_worse_larger | 0.99 | 1.05 | -| small-4k-log-lines + stage=compress, level=better | 1.1678 | rust_worse_larger | 0.99 | 1.05 | -| small-4k-log-lines + stage=compress, level=default | 1.1722 | rust_worse_larger | 0.99 | 1.05 | -| small-4k-log-lines + stage=compress, level=fastest | 1.1410 | rust_worse_larger | 0.99 | 1.05 | - -## Speed pack - -Interpretation: higher speed is better (`rust_bytes_per_sec / ffi_bytes_per_sec`). - -### Rust speed - -| Key | Rust bytes/sec | Rust ms/iter | -| --- | ---: | ---: | -| decodecorpus-z000033 + stage=compress, level=best | 17767410.14 | 57.523 | -| decodecorpus-z000033 + stage=compress, level=better | 24034692.11 | 42.523 | -| decodecorpus-z000033 + stage=compress, level=default | 16337377.22 | 62.558 | -| decodecorpus-z000033 + stage=compress, level=fastest | 82067322.29 | 12.454 | -| decodecorpus-z000033 + stage=decompress, level=best, source=c\_stream | 299142847.53 | 3.417 | -| decodecorpus-z000033 + stage=decompress, level=best, source=rust\_stream | 565004530.39 | 1.809 | -| decodecorpus-z000033 + stage=decompress, level=better, source=c\_stream | 297775703.33 | 3.432 | -| decodecorpus-z000033 + stage=decompress, level=better, source=rust\_stream | 556244336.38 | 1.837 | -| decodecorpus-z000033 + stage=decompress, level=default, source=c\_stream | 289801628.79 | 3.527 | -| decodecorpus-z000033 + stage=decompress, level=default, source=rust\_stream | 730042208.14 | 1.400 | -| decodecorpus-z000033 + stage=decompress, level=fastest, source=c\_stream | 228836740.88 | 4.466 | -| decodecorpus-z000033 + stage=decompress, level=fastest, source=rust\_stream | 577932880.65 | 1.768 | -| high-entropy-1m + stage=compress, level=best | 26240715.50 | 39.960 | -| high-entropy-1m + stage=compress, level=better | 12278698.93 | 85.398 | -| high-entropy-1m + stage=compress, level=default | 7000862.39 | 149.778 | -| high-entropy-1m + stage=compress, level=fastest | 59387157.63 | 17.657 | -| high-entropy-1m + stage=decompress, level=best, source=c\_stream | 7055986218.78 | 0.149 | -| high-entropy-1m + stage=decompress, level=best, source=rust\_stream | 6971636769.81 | 0.150 | -| high-entropy-1m + stage=decompress, level=better, source=c\_stream | 6864160355.06 | 0.153 | -| high-entropy-1m + stage=decompress, level=better, source=rust\_stream | 6799310067.57 | 0.154 | -| high-entropy-1m + stage=decompress, level=default, source=c\_stream | 6939019144.61 | 0.151 | -| high-entropy-1m + stage=decompress, level=default, source=rust\_stream | 6952223091.51 | 0.151 | -| high-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 6642989730.56 | 0.158 | -| high-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 6547584406.83 | 0.160 | -| large-log-stream + stage=compress, level=best | 387813456.54 | 270.382 | -| large-log-stream + stage=compress, level=better | 389226309.18 | 269.400 | -| large-log-stream + stage=compress, level=default | 210892851.84 | 497.208 | -| large-log-stream + stage=compress, level=fastest | 1068533458.88 | 98.132 | -| large-log-stream + stage=decompress, level=best, source=c\_stream | 6999852402.94 | 14.980 | -| large-log-stream + stage=decompress, level=best, source=rust\_stream | 7192766295.87 | 14.578 | -| large-log-stream + stage=decompress, level=better, source=c\_stream | 7435659789.86 | 14.102 | -| large-log-stream + stage=decompress, level=better, source=rust\_stream | 7267842698.83 | 14.428 | -| large-log-stream + stage=decompress, level=default, source=c\_stream | 7597906071.76 | 13.801 | -| large-log-stream + stage=decompress, level=default, source=rust\_stream | 7793505867.63 | 13.454 | -| large-log-stream + stage=decompress, level=fastest, source=c\_stream | 7479384679.21 | 14.020 | -| large-log-stream + stage=decompress, level=fastest, source=rust\_stream | 7840121269.70 | 13.374 | -| low-entropy-1m + stage=compress, level=best | 374093953.75 | 2.803 | -| low-entropy-1m + stage=compress, level=better | 386977535.16 | 2.710 | -| low-entropy-1m + stage=compress, level=default | 219880310.74 | 4.769 | -| low-entropy-1m + stage=compress, level=fastest | 1474576819.39 | 0.711 | -| low-entropy-1m + stage=decompress, level=best, source=c\_stream | 3985662537.49 | 0.263 | -| low-entropy-1m + stage=decompress, level=best, source=rust\_stream | 4133166205.49 | 0.254 | -| low-entropy-1m + stage=decompress, level=better, source=c\_stream | 4056214242.33 | 0.259 | -| low-entropy-1m + stage=decompress, level=better, source=rust\_stream | 4143864876.72 | 0.253 | -| low-entropy-1m + stage=decompress, level=default, source=c\_stream | 4076731075.77 | 0.257 | -| low-entropy-1m + stage=decompress, level=default, source=rust\_stream | 4140690341.46 | 0.253 | -| low-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 4068837332.03 | 0.258 | -| low-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 4151280132.70 | 0.253 | -| small-10k-random + stage=compress, level=best | 28807255.83 | 0.355 | -| small-10k-random + stage=compress, level=better | 34901396.74 | 0.293 | -| small-10k-random + stage=compress, level=default | 6341040.22 | 1.615 | -| small-10k-random + stage=compress, level=fastest | 60599246.06 | 0.169 | -| small-10k-random + stage=decompress, level=best, source=c\_stream | 4257796257.80 | 0.002 | -| small-10k-random + stage=decompress, level=best, source=rust\_stream | 5736694677.87 | 0.002 | -| small-10k-random + stage=decompress, level=better, source=c\_stream | 4172779136.10 | 0.002 | -| small-10k-random + stage=decompress, level=better, source=rust\_stream | 7037800687.29 | 0.001 | -| small-10k-random + stage=decompress, level=default, source=c\_stream | 4252491694.35 | 0.002 | -| small-10k-random + stage=decompress, level=default, source=rust\_stream | 6918918918.92 | 0.001 | -| small-10k-random + stage=decompress, level=fastest, source=c\_stream | 4243680066.31 | 0.002 | -| small-10k-random + stage=decompress, level=fastest, source=rust\_stream | 6999316473.00 | 0.001 | -| small-1k-random + stage=compress, level=best | 6998551.08 | 0.146 | -| small-1k-random + stage=compress, level=better | 11882796.63 | 0.086 | -| small-1k-random + stage=compress, level=default | 908510.99 | 1.127 | -| small-1k-random + stage=compress, level=fastest | 60175119.00 | 0.017 | -| small-1k-random + stage=decompress, level=best, source=c\_stream | 769346356.12 | 0.001 | -| small-1k-random + stage=decompress, level=best, source=rust\_stream | 5389473684.21 | 0.000 | -| small-1k-random + stage=decompress, level=better, source=c\_stream | 622114216.28 | 0.002 | -| small-1k-random + stage=decompress, level=better, source=rust\_stream | 5417989417.99 | 0.000 | -| small-1k-random + stage=decompress, level=default, source=c\_stream | 767616191.90 | 0.001 | -| small-1k-random + stage=decompress, level=default, source=rust\_stream | 5389473684.21 | 0.000 | -| small-1k-random + stage=decompress, level=fastest, source=c\_stream | 757396449.70 | 0.001 | -| small-1k-random + stage=decompress, level=fastest, source=rust\_stream | 5389473684.21 | 0.000 | -| small-4k-log-lines + stage=compress, level=best | 28176959.01 | 0.145 | -| small-4k-log-lines + stage=compress, level=better | 46892888.22 | 0.087 | -| small-4k-log-lines + stage=compress, level=default | 3537582.06 | 1.158 | -| small-4k-log-lines + stage=compress, level=fastest | 217018120.17 | 0.019 | -| small-4k-log-lines + stage=decompress, level=best, source=c\_stream | 1268897149.94 | 0.003 | -| small-4k-log-lines + stage=decompress, level=best, source=rust\_stream | 2778833107.19 | 0.001 | -| small-4k-log-lines + stage=decompress, level=better, source=c\_stream | 1331599479.84 | 0.003 | -| small-4k-log-lines + stage=decompress, level=better, source=rust\_stream | 2860335195.53 | 0.001 | -| small-4k-log-lines + stage=decompress, level=default, source=c\_stream | 1338124795.82 | 0.003 | -| small-4k-log-lines + stage=decompress, level=default, source=rust\_stream | 2876404494.38 | 0.001 | -| small-4k-log-lines + stage=decompress, level=fastest, source=c\_stream | 1310300703.77 | 0.003 | -| small-4k-log-lines + stage=decompress, level=fastest, source=rust\_stream | 2917378917.38 | 0.001 | - -### FFI speed - -| Key | FFI bytes/sec | FFI ms/iter | -| --- | ---: | ---: | -| decodecorpus-z000033 + stage=compress, level=best | 73788825.35 | 13.851 | -| decodecorpus-z000033 + stage=compress, level=better | 121537908.48 | 8.409 | -| decodecorpus-z000033 + stage=compress, level=default | 363857900.91 | 2.809 | -| decodecorpus-z000033 + stage=compress, level=fastest | 554751320.34 | 1.842 | -| decodecorpus-z000033 + stage=decompress, level=best, source=c\_stream | 1343663764.26 | 0.761 | -| decodecorpus-z000033 + stage=decompress, level=best, source=rust\_stream | 2175982405.38 | 0.470 | -| decodecorpus-z000033 + stage=decompress, level=better, source=c\_stream | 1303285263.05 | 0.784 | -| decodecorpus-z000033 + stage=decompress, level=better, source=rust\_stream | 2148956256.99 | 0.476 | -| decodecorpus-z000033 + stage=decompress, level=default, source=c\_stream | 1251264076.24 | 0.817 | -| decodecorpus-z000033 + stage=decompress, level=default, source=rust\_stream | 2698378124.35 | 0.379 | -| decodecorpus-z000033 + stage=decompress, level=fastest, source=c\_stream | 1325486600.33 | 0.771 | -| decodecorpus-z000033 + stage=decompress, level=fastest, source=rust\_stream | 2116005730.83 | 0.483 | -| high-entropy-1m + stage=compress, level=best | 2056188610.50 | 0.510 | -| high-entropy-1m + stage=compress, level=better | 2871654429.59 | 0.365 | -| high-entropy-1m + stage=compress, level=default | 4285832233.17 | 0.245 | -| high-entropy-1m + stage=compress, level=fastest | 4754735119.01 | 0.221 | -| high-entropy-1m + stage=decompress, level=best, source=c\_stream | 52131649597.30 | 0.020 | -| high-entropy-1m + stage=decompress, level=best, source=rust\_stream | 10829935345.27 | 0.097 | -| high-entropy-1m + stage=decompress, level=better, source=c\_stream | 52131649597.30 | 0.020 | -| high-entropy-1m + stage=decompress, level=better, source=rust\_stream | 10576293068.67 | 0.099 | -| high-entropy-1m + stage=decompress, level=default, source=c\_stream | 50470542934.15 | 0.021 | -| high-entropy-1m + stage=decompress, level=default, source=rust\_stream | 10684056080.86 | 0.098 | -| high-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 55202737562.52 | 0.019 | -| high-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 10447313884.90 | 0.100 | -| large-log-stream + stage=compress, level=best | 2865859796.34 | 36.589 | -| large-log-stream + stage=compress, level=better | 3114599909.85 | 33.666 | -| large-log-stream + stage=compress, level=default | 8028851848.67 | 13.060 | -| large-log-stream + stage=compress, level=fastest | 10038301697.98 | 10.446 | -| large-log-stream + stage=decompress, level=best, source=c\_stream | 31418638216.86 | 3.337 | -| large-log-stream + stage=decompress, level=best, source=rust\_stream | 10444525015.24 | 10.039 | -| large-log-stream + stage=decompress, level=better, source=c\_stream | 32157835224.58 | 3.261 | -| large-log-stream + stage=decompress, level=better, source=rust\_stream | 10459157133.83 | 10.025 | -| large-log-stream + stage=decompress, level=default, source=c\_stream | 32227970006.34 | 3.254 | -| large-log-stream + stage=decompress, level=default, source=rust\_stream | 10399976831.11 | 10.082 | -| large-log-stream + stage=decompress, level=fastest, source=c\_stream | 32005049624.83 | 3.276 | -| large-log-stream + stage=decompress, level=fastest, source=rust\_stream | 9797468259.81 | 10.703 | -| low-entropy-1m + stage=compress, level=best | 1535374005.23 | 0.683 | -| low-entropy-1m + stage=compress, level=better | 2946406543.72 | 0.356 | -| low-entropy-1m + stage=compress, level=default | 7862688492.14 | 0.133 | -| low-entropy-1m + stage=compress, level=fastest | 12457835333.25 | 0.084 | -| low-entropy-1m + stage=decompress, level=best, source=c\_stream | 13728590319.33 | 0.076 | -| low-entropy-1m + stage=decompress, level=best, source=rust\_stream | 6986314877.74 | 0.150 | -| low-entropy-1m + stage=decompress, level=better, source=c\_stream | 13650134083.16 | 0.077 | -| low-entropy-1m + stage=decompress, level=better, source=rust\_stream | 7029119965.68 | 0.149 | -| low-entropy-1m + stage=decompress, level=default, source=c\_stream | 13899101296.36 | 0.075 | -| low-entropy-1m + stage=decompress, level=default, source=rust\_stream | 6849856284.30 | 0.153 | -| low-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 13852279482.67 | 0.076 | -| low-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 7086361516.78 | 0.148 | -| small-10k-random + stage=compress, level=best | 49618172.66 | 0.206 | -| small-10k-random + stage=compress, level=better | 174651634.80 | 0.059 | -| small-10k-random + stage=compress, level=default | 831101371.64 | 0.012 | -| small-10k-random + stage=compress, level=fastest | 1854736460.79 | 0.006 | -| small-10k-random + stage=decompress, level=best, source=c\_stream | 67368421052.63 | 0.000 | -| small-10k-random + stage=decompress, level=best, source=rust\_stream | 7834736036.73 | 0.001 | -| small-10k-random + stage=decompress, level=better, source=c\_stream | 66928104575.16 | 0.000 | -| small-10k-random + stage=decompress, level=better, source=rust\_stream | 9827255278.31 | 0.001 | -| small-10k-random + stage=decompress, level=default, source=c\_stream | 67814569536.42 | 0.000 | -| small-10k-random + stage=decompress, level=default, source=rust\_stream | 9808429118.77 | 0.001 | -| small-10k-random + stage=decompress, level=fastest, source=c\_stream | 66928104575.16 | 0.000 | -| small-10k-random + stage=decompress, level=fastest, source=rust\_stream | 9770992366.41 | 0.001 | -| small-1k-random + stage=compress, level=best | 5168636.87 | 0.198 | -| small-1k-random + stage=compress, level=better | 19710502.00 | 0.052 | -| small-1k-random + stage=compress, level=default | 129505501.45 | 0.008 | -| small-1k-random + stage=compress, level=fastest | 494925084.58 | 0.002 | -| small-1k-random + stage=decompress, level=best, source=c\_stream | 30117647058.82 | 0.000 | -| small-1k-random + stage=decompress, level=best, source=rust\_stream | 7816793893.13 | 0.000 | -| small-1k-random + stage=decompress, level=better, source=c\_stream | 24975609756.10 | 0.000 | -| small-1k-random + stage=decompress, level=better, source=rust\_stream | 7937984496.12 | 0.000 | -| small-1k-random + stage=decompress, level=default, source=c\_stream | 30117647058.82 | 0.000 | -| small-1k-random + stage=decompress, level=default, source=rust\_stream | 7816793893.13 | 0.000 | -| small-1k-random + stage=decompress, level=fastest, source=c\_stream | 30117647058.82 | 0.000 | -| small-1k-random + stage=decompress, level=fastest, source=rust\_stream | 7876923076.92 | 0.000 | -| small-4k-log-lines + stage=compress, level=best | 20548426.26 | 0.199 | -| small-4k-log-lines + stage=compress, level=better | 76302602.41 | 0.054 | -| small-4k-log-lines + stage=compress, level=default | 392149353.76 | 0.010 | -| small-4k-log-lines + stage=compress, level=fastest | 993692382.34 | 0.004 | -| small-4k-log-lines + stage=decompress, level=best, source=c\_stream | 2640876853.64 | 0.002 | -| small-4k-log-lines + stage=decompress, level=best, source=rust\_stream | 8427983539.09 | 0.000 | -| small-4k-log-lines + stage=decompress, level=better, source=c\_stream | 2637475853.19 | 0.002 | -| small-4k-log-lines + stage=decompress, level=better, source=rust\_stream | 8605042016.81 | 0.000 | -| small-4k-log-lines + stage=decompress, level=default, source=c\_stream | 2698287220.03 | 0.002 | -| small-4k-log-lines + stage=decompress, level=default, source=rust\_stream | 8752136752.14 | 0.000 | -| small-4k-log-lines + stage=decompress, level=fastest, source=c\_stream | 2595690747.78 | 0.002 | -| small-4k-log-lines + stage=decompress, level=fastest, source=rust\_stream | 8569037656.90 | 0.000 | - -### Rust/FFI speed delta - -| Key | Delta | Status | Ref low | Ref high | -| --- | ---: | --- | ---: | ---: | -| decodecorpus-z000033 + stage=compress, level=best | 0.2408 | rust_slower | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=compress, level=better | 0.1978 | rust_slower | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=compress, level=default | 0.0449 | rust_slower | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=compress, level=fastest | 0.1479 | rust_slower | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=decompress, level=best, source=c\_stream | 0.2226 | rust_slower | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=decompress, level=best, source=rust\_stream | 0.2597 | rust_slower | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=decompress, level=better, source=c\_stream | 0.2285 | rust_slower | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=decompress, level=better, source=rust\_stream | 0.2588 | rust_slower | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=decompress, level=default, source=c\_stream | 0.2316 | rust_slower | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=decompress, level=default, source=rust\_stream | 0.2705 | rust_slower | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=decompress, level=fastest, source=c\_stream | 0.1726 | rust_slower | 0.99 | 1.05 | -| decodecorpus-z000033 + stage=decompress, level=fastest, source=rust\_stream | 0.2731 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=compress, level=best | 0.0128 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=compress, level=better | 0.0043 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=compress, level=default | 0.0016 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=compress, level=fastest | 0.0125 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=decompress, level=best, source=c\_stream | 0.1353 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=decompress, level=best, source=rust\_stream | 0.6437 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=decompress, level=better, source=c\_stream | 0.1317 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=decompress, level=better, source=rust\_stream | 0.6429 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=decompress, level=default, source=c\_stream | 0.1375 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=decompress, level=default, source=rust\_stream | 0.6507 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 0.1203 | rust_slower | 0.99 | 1.05 | -| high-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 0.6267 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=compress, level=best | 0.1353 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=compress, level=better | 0.1250 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=compress, level=default | 0.0263 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=compress, level=fastest | 0.1064 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=decompress, level=best, source=c\_stream | 0.2228 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=decompress, level=best, source=rust\_stream | 0.6887 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=decompress, level=better, source=c\_stream | 0.2312 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=decompress, level=better, source=rust\_stream | 0.6949 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=decompress, level=default, source=c\_stream | 0.2358 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=decompress, level=default, source=rust\_stream | 0.7494 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=decompress, level=fastest, source=c\_stream | 0.2337 | rust_slower | 0.99 | 1.05 | -| large-log-stream + stage=decompress, level=fastest, source=rust\_stream | 0.8002 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=compress, level=best | 0.2437 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=compress, level=better | 0.1313 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=compress, level=default | 0.0280 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=compress, level=fastest | 0.1184 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=decompress, level=best, source=c\_stream | 0.2903 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=decompress, level=best, source=rust\_stream | 0.5916 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=decompress, level=better, source=c\_stream | 0.2972 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=decompress, level=better, source=rust\_stream | 0.5895 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=decompress, level=default, source=c\_stream | 0.2933 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=decompress, level=default, source=rust\_stream | 0.6045 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=decompress, level=fastest, source=c\_stream | 0.2937 | rust_slower | 0.99 | 1.05 | -| low-entropy-1m + stage=decompress, level=fastest, source=rust\_stream | 0.5858 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=compress, level=best | 0.5806 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=compress, level=better | 0.1998 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=compress, level=default | 0.0076 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=compress, level=fastest | 0.0327 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=decompress, level=best, source=c\_stream | 0.0632 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=decompress, level=best, source=rust\_stream | 0.7322 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=decompress, level=better, source=c\_stream | 0.0623 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=decompress, level=better, source=rust\_stream | 0.7162 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=decompress, level=default, source=c\_stream | 0.0627 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=decompress, level=default, source=rust\_stream | 0.7054 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=decompress, level=fastest, source=c\_stream | 0.0634 | rust_slower | 0.99 | 1.05 | -| small-10k-random + stage=decompress, level=fastest, source=rust\_stream | 0.7163 | rust_slower | 0.99 | 1.05 | -| small-1k-random + stage=compress, level=best | 1.3540 | rust_faster | 0.99 | 1.05 | -| small-1k-random + stage=compress, level=better | 0.6029 | rust_slower | 0.99 | 1.05 | -| small-1k-random + stage=compress, level=default | 0.0070 | rust_slower | 0.99 | 1.05 | -| small-1k-random + stage=compress, level=fastest | 0.1216 | rust_slower | 0.99 | 1.05 | -| small-1k-random + stage=decompress, level=best, source=c\_stream | 0.0255 | rust_slower | 0.99 | 1.05 | -| small-1k-random + stage=decompress, level=best, source=rust\_stream | 0.6895 | rust_slower | 0.99 | 1.05 | -| small-1k-random + stage=decompress, level=better, source=c\_stream | 0.0249 | rust_slower | 0.99 | 1.05 | -| small-1k-random + stage=decompress, level=better, source=rust\_stream | 0.6825 | rust_slower | 0.99 | 1.05 | -| small-1k-random + stage=decompress, level=default, source=c\_stream | 0.0255 | rust_slower | 0.99 | 1.05 | -| small-1k-random + stage=decompress, level=default, source=rust\_stream | 0.6895 | rust_slower | 0.99 | 1.05 | -| small-1k-random + stage=decompress, level=fastest, source=c\_stream | 0.0251 | rust_slower | 0.99 | 1.05 | -| small-1k-random + stage=decompress, level=fastest, source=rust\_stream | 0.6842 | rust_slower | 0.99 | 1.05 | -| small-4k-log-lines + stage=compress, level=best | 1.3712 | rust_faster | 0.99 | 1.05 | -| small-4k-log-lines + stage=compress, level=better | 0.6146 | rust_slower | 0.99 | 1.05 | -| small-4k-log-lines + stage=compress, level=default | 0.0090 | rust_slower | 0.99 | 1.05 | -| small-4k-log-lines + stage=compress, level=fastest | 0.2184 | rust_slower | 0.99 | 1.05 | -| small-4k-log-lines + stage=decompress, level=best, source=c\_stream | 0.4805 | rust_slower | 0.99 | 1.05 | -| small-4k-log-lines + stage=decompress, level=best, source=rust\_stream | 0.3297 | rust_slower | 0.99 | 1.05 | -| small-4k-log-lines + stage=decompress, level=better, source=c\_stream | 0.5049 | rust_slower | 0.99 | 1.05 | -| small-4k-log-lines + stage=decompress, level=better, source=rust\_stream | 0.3324 | rust_slower | 0.99 | 1.05 | -| small-4k-log-lines + stage=decompress, level=default, source=c\_stream | 0.4959 | rust_slower | 0.99 | 1.05 | -| small-4k-log-lines + stage=decompress, level=default, source=rust\_stream | 0.3287 | rust_slower | 0.99 | 1.05 | -| small-4k-log-lines + stage=decompress, level=fastest, source=c\_stream | 0.5048 | rust_slower | 0.99 | 1.05 | -| small-4k-log-lines + stage=decompress, level=fastest, source=rust\_stream | 0.3405 | rust_slower | 0.99 | 1.05 | From b28df12f7a762b7e68d311082a0bda421ee05543 Mon Sep 17 00:00:00 2001 From: Dmitry Prudnikov Date: Sun, 5 Apr 2026 17:15:55 +0300 Subject: [PATCH 3/7] perf(bench): drop threshold coefficients from rust/ffi delta - Remove threshold/status classification from delta artifacts - Keep direct same-run Rust vs FFI delta values only - Update benchmark docs to reflect raw relative comparison --- .github/scripts/run-benchmarks.sh | 45 +++++-------------------------- BENCHMARKS.md | 7 +++-- README.md | 4 ++- 3 files changed, 12 insertions(+), 44 deletions(-) diff --git a/.github/scripts/run-benchmarks.sh b/.github/scripts/run-benchmarks.sh index 1878ca9b..54e298d4 100755 --- a/.github/scripts/run-benchmarks.sh +++ b/.github/scripts/run-benchmarks.sh @@ -75,9 +75,6 @@ timing_rows = [] scenario_input_bytes = {} raw_path = os.environ["BENCH_RAW_FILE"] -REF_LOW = 0.99 -REF_HIGH = 1.05 - def parse_benchmark_name(name): parts = name.split("/") if len(parts) == 5 and parts[0] == "compress" and parts[3] == "matrix": @@ -131,24 +128,6 @@ def normalize_impl(impl): return "ffi" return impl -def classify_ratio_delta(delta): - if delta is None: - return "insufficient-data" - if delta < REF_LOW: - return "rust_better_smaller" - if delta <= REF_HIGH: - return "near_parity" - return "rust_worse_larger" - -def classify_speed_delta(delta): - if delta is None: - return "insufficient-data" - if delta < REF_LOW: - return "rust_slower" - if delta <= REF_HIGH: - return "near_parity" - return "rust_faster" - with open(raw_path) as f: for raw_line in f: line = raw_line.strip() @@ -271,7 +250,6 @@ for row in ratios: "rust_ratio": row["rust_ratio"], "ffi_ratio": row["ffi_ratio"], "delta": ratio_delta, - "status": classify_ratio_delta(ratio_delta), } speed_index = defaultdict(dict) @@ -326,7 +304,6 @@ for key in all_keys: "rust_ratio": None, "ffi_ratio": None, "delta": None, - "status": "insufficient-data", }, ) @@ -351,9 +328,6 @@ for key in all_keys: "rust": ratio_pack["rust_ratio"], "ffi": ratio_pack["ffi_ratio"], "delta_rust_over_ffi": ratio_pack["delta"], - "status": ratio_pack["status"], - "reference_low": REF_LOW, - "reference_high": REF_HIGH, "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger", }, "speed": { @@ -363,9 +337,6 @@ for key in all_keys: "rust_bytes_per_sec": rust_bps, "ffi_bytes_per_sec": ffi_bps, "delta_rust_over_ffi": speed_delta, - "status": classify_speed_delta(speed_delta), - "reference_low": REF_LOW, - "reference_high": REF_HIGH, "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower", }, } @@ -438,8 +409,6 @@ delta_lines = [ "", "Generated by `.github/scripts/run-benchmarks.sh` from `cargo bench --bench compare_ffi`.", "", - "Reference bands for deltas: `0.99` and `1.05`.", - "", "## Ratio pack", "", "Interpretation: lower ratio is better (smaller compressed output).", @@ -482,8 +451,8 @@ delta_lines.extend( "", "### Rust/FFI ratio delta", "", - "| Key | Delta | Status | Ref low | Ref high |", - "| --- | ---: | --- | ---: | ---: |", + "| Key | Delta |", + "| --- | ---: |", ] ) @@ -492,8 +461,7 @@ for row in delta_rows: delta = row["ratio"]["delta_rust_over_ffi"] if delta is None: continue - status = row["ratio"]["status"] - delta_lines.append(f"| {key} | {delta:.4f} | {status} | {REF_LOW:.2f} | {REF_HIGH:.2f} |") + delta_lines.append(f"| {key} | {delta:.4f} |") delta_lines.extend( [ @@ -540,8 +508,8 @@ delta_lines.extend( "", "### Rust/FFI speed delta", "", - "| Key | Delta | Status | Ref low | Ref high |", - "| --- | ---: | --- | ---: | ---: |", + "| Key | Delta |", + "| --- | ---: |", ] ) @@ -550,8 +518,7 @@ for row in delta_rows: delta = row["speed"]["delta_rust_over_ffi"] if delta is None: continue - status = row["speed"]["status"] - delta_lines.append(f"| {key} | {delta:.4f} | {status} | {REF_LOW:.2f} | {REF_HIGH:.2f} |") + delta_lines.append(f"| {key} | {delta:.4f} |") with open("benchmark-delta.md", "w") as f: f.write("\n".join(delta_lines) + "\n") diff --git a/BENCHMARKS.md b/BENCHMARKS.md index 1ccc5552..2b09cc15 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -89,14 +89,13 @@ bash scripts/bench-flamegraph.sh decompress/default/decodecorpus-z000033/rust_st - `benchmark-delta.json` with canonical `(scenario + params)` rows including: - raw Rust/FFI ratio values and `rust/ffi` ratio delta - raw Rust/FFI speed values (`bytes/sec`) and `rust/ffi` speed delta - - reference thresholds `0.99` and `1.05` plus per-row status labels - `benchmark-delta.md` with two packs: - Ratio pack: Rust ratio, FFI ratio, Rust/FFI ratio delta - Speed pack: Rust speed, FFI speed, Rust/FFI speed delta -Delta interpretation: +Delta interpretation (direct same-run comparison on the same environment): -- **Ratio delta** (`rust_ratio / ffi_ratio`): lower is better for Rust (`< 0.99` better, `0.99..=1.05` parity, `> 1.05` worse) -- **Speed delta** (`rust_bytes_per_sec / ffi_bytes_per_sec`): higher is better for Rust (`> 1.05` faster, `0.99..=1.05` parity, `< 0.99` slower) +- **Ratio delta** (`rust_ratio / ffi_ratio`): lower is better for Rust +- **Speed delta** (`rust_bytes_per_sec / ffi_bytes_per_sec`): higher is better for Rust Criterion also writes its usual detailed estimates under `target/criterion/`. diff --git a/README.md b/README.md index 8dcad430..606164d9 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,9 @@ When the `dict_builder` feature is enabled, the `dictionary` module can create r ## Benchmarking -Performance tracking lives in [BENCHMARKS.md](BENCHMARKS.md). The suite compares `structured-zstd` against the C reference across small payloads, entropy extremes, a `100 MiB` large-stream scenario, repository corpus fixtures, and optional local Silesia corpora. Reports now include compression ratios, input+output buffer size estimates, and C FFI dictionary compression (with/without dictionary) for small and corpus scenarios. +Performance tracking lives in [BENCHMARKS.md](BENCHMARKS.md). The suite compares `structured-zstd` against the C reference across small payloads, entropy extremes, a `100 MiB` large-stream scenario, repository corpus fixtures, and optional local Silesia corpora. Reports include compression ratios, input+output buffer size estimates, and C FFI dictionary compression (with/without dictionary) for small and corpus scenarios, plus Rust-vs-FFI delta packs (`benchmark-delta.json`, `benchmark-delta.md`) grouped by canonical `(scenario + params)` keys. + +Benchmark report files are generated by `.github/scripts/run-benchmarks.sh` and are kept as ignored local/CI artifacts rather than tracked files in this repository. ## Usage From 6d0182fef1eeac40453d3ad4f0055354a9eae37f Mon Sep 17 00:00:00 2001 From: Dmitry Prudnikov Date: Sun, 5 Apr 2026 17:19:05 +0300 Subject: [PATCH 4/7] perf(bench): restore parity status without env coefficients - Reintroduce faster/slower/parity labels from raw same-run deltas - Keep rust/ffi delta values as source of truth - Document that no calibration/pre-test coefficients are applied --- .github/scripts/run-benchmarks.sh | 39 ++++++++++++++++++++++++++----- BENCHMARKS.md | 6 +++++ 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/.github/scripts/run-benchmarks.sh b/.github/scripts/run-benchmarks.sh index 54e298d4..4864be89 100755 --- a/.github/scripts/run-benchmarks.sh +++ b/.github/scripts/run-benchmarks.sh @@ -75,6 +75,9 @@ timing_rows = [] scenario_input_bytes = {} raw_path = os.environ["BENCH_RAW_FILE"] +DELTA_LOW = 0.99 +DELTA_HIGH = 1.05 + def parse_benchmark_name(name): parts = name.split("/") if len(parts) == 5 and parts[0] == "compress" and parts[3] == "matrix": @@ -128,6 +131,24 @@ def normalize_impl(impl): return "ffi" return impl +def classify_ratio_delta(delta): + if delta is None: + return "insufficient-data" + if delta < DELTA_LOW: + return "rust_better_smaller" + if delta <= DELTA_HIGH: + return "near_parity" + return "rust_worse_larger" + +def classify_speed_delta(delta): + if delta is None: + return "insufficient-data" + if delta < DELTA_LOW: + return "rust_slower" + if delta <= DELTA_HIGH: + return "near_parity" + return "rust_faster" + with open(raw_path) as f: for raw_line in f: line = raw_line.strip() @@ -250,6 +271,7 @@ for row in ratios: "rust_ratio": row["rust_ratio"], "ffi_ratio": row["ffi_ratio"], "delta": ratio_delta, + "status": classify_ratio_delta(ratio_delta), } speed_index = defaultdict(dict) @@ -304,6 +326,7 @@ for key in all_keys: "rust_ratio": None, "ffi_ratio": None, "delta": None, + "status": "insufficient-data", }, ) @@ -328,6 +351,7 @@ for key in all_keys: "rust": ratio_pack["rust_ratio"], "ffi": ratio_pack["ffi_ratio"], "delta_rust_over_ffi": ratio_pack["delta"], + "status": ratio_pack["status"], "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger", }, "speed": { @@ -337,6 +361,7 @@ for key in all_keys: "rust_bytes_per_sec": rust_bps, "ffi_bytes_per_sec": ffi_bps, "delta_rust_over_ffi": speed_delta, + "status": classify_speed_delta(speed_delta), "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower", }, } @@ -451,8 +476,8 @@ delta_lines.extend( "", "### Rust/FFI ratio delta", "", - "| Key | Delta |", - "| --- | ---: |", + "| Key | Delta | Status |", + "| --- | ---: | --- |", ] ) @@ -461,7 +486,8 @@ for row in delta_rows: delta = row["ratio"]["delta_rust_over_ffi"] if delta is None: continue - delta_lines.append(f"| {key} | {delta:.4f} |") + status = row["ratio"]["status"] + delta_lines.append(f"| {key} | {delta:.4f} | {status} |") delta_lines.extend( [ @@ -508,8 +534,8 @@ delta_lines.extend( "", "### Rust/FFI speed delta", "", - "| Key | Delta |", - "| --- | ---: |", + "| Key | Delta | Status |", + "| --- | ---: | --- |", ] ) @@ -518,7 +544,8 @@ for row in delta_rows: delta = row["speed"]["delta_rust_over_ffi"] if delta is None: continue - delta_lines.append(f"| {key} | {delta:.4f} |") + status = row["speed"]["status"] + delta_lines.append(f"| {key} | {delta:.4f} | {status} |") with open("benchmark-delta.md", "w") as f: f.write("\n".join(delta_lines) + "\n") diff --git a/BENCHMARKS.md b/BENCHMARKS.md index 2b09cc15..cd6a6093 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -98,4 +98,10 @@ Delta interpretation (direct same-run comparison on the same environment): - **Ratio delta** (`rust_ratio / ffi_ratio`): lower is better for Rust - **Speed delta** (`rust_bytes_per_sec / ffi_bytes_per_sec`): higher is better for Rust +Status labels in `benchmark-delta` are derived directly from the same-run deltas (no environment +calibration/pre-test coefficients): + +- **ratio status**: `rust_better_smaller` when `< 0.99`, `near_parity` when `0.99..=1.05`, `rust_worse_larger` when `> 1.05` +- **speed status**: `rust_faster` when `> 1.05`, `near_parity` when `0.99..=1.05`, `rust_slower` when `< 0.99` + Criterion also writes its usual detailed estimates under `target/criterion/`. From c3f5b98bd481d278a106a80592494360ee8e1c1b Mon Sep 17 00:00:00 2001 From: Dmitry Prudnikov Date: Sun, 5 Apr 2026 17:46:49 +0300 Subject: [PATCH 5/7] fix(bench): address benchmark delta review feedback - Fail fast on unsupported benchmark name shapes - Preserve ratio metadata in delta row param fallback - Use explicit None checks for speed delta math - Clarify interpretation strings as delta semantics - Upload benchmark-delta artifacts in CI benchmark job --- .github/scripts/run-benchmarks.sh | 52 +++++++++++++++---------------- .github/workflows/ci.yml | 9 ++++++ 2 files changed, 34 insertions(+), 27 deletions(-) diff --git a/.github/scripts/run-benchmarks.sh b/.github/scripts/run-benchmarks.sh index 4864be89..8d43f188 100755 --- a/.github/scripts/run-benchmarks.sh +++ b/.github/scripts/run-benchmarks.sh @@ -104,19 +104,7 @@ def parse_benchmark_name(name): "source": None, "implementation": parts[4], } - # Fallback for future benchmark name variants. - stage = parts[0] if len(parts) > 0 else "unknown" - level = parts[1] if len(parts) > 1 else "unknown" - scenario = parts[2] if len(parts) > 2 else name - source = None - implementation = parts[-1] - return { - "stage": stage, - "level": level, - "scenario": scenario, - "source": source, - "implementation": implementation, - } + raise ValueError(f"Unsupported benchmark name format: {name} (parts={parts})") def canonical_key(stage, scenario, level, source): params = [f"stage={stage}", f"level={level}"] @@ -268,6 +256,12 @@ for row in ratios: if row["ffi_ratio"] > 0.0: ratio_delta = row["rust_ratio"] / row["ffi_ratio"] ratio_index[key] = { + "meta": { + "stage": "compress", + "scenario": row["scenario"], + "level": row["level"], + "source": None, + }, "rust_ratio": row["rust_ratio"], "ffi_ratio": row["ffi_ratio"], "delta": ratio_delta, @@ -293,7 +287,17 @@ for row in timing_rows: delta_rows = [] all_keys = sorted(set(key_meta.keys()) | set(ratio_index.keys())) for key in all_keys: - meta = key_meta.get(key) + ratio_pack = ratio_index.get( + key, + { + "meta": None, + "rust_ratio": None, + "ffi_ratio": None, + "delta": None, + "status": "insufficient-data", + }, + ) + meta = key_meta.get(key) or ratio_pack["meta"] stage = meta["stage"] if meta else "compress" scenario = meta["scenario"] if meta else key.split(" + ")[0] level = meta["level"] if meta else "unknown" @@ -304,7 +308,7 @@ for key in all_keys: for impl_name, impl_row in speed_index.get(key, {}).items(): ms_value = impl_row["ms_per_iter"] bps_value = None - if input_bytes and ms_value and ms_value > 0.0: + if input_bytes is not None and ms_value is not None and ms_value > 0.0: bps_value = input_bytes / (ms_value / 1000.0) speed_series[impl_name] = { "benchmark_name": impl_row["name"], @@ -318,16 +322,10 @@ for key in all_keys: ffi_ms = ffi_timing["ms_per_iter"] if ffi_timing else None rust_bps = rust_timing["bytes_per_sec"] if rust_timing else None ffi_bps = ffi_timing["bytes_per_sec"] if ffi_timing else None - speed_delta = (rust_bps / ffi_bps) if (rust_bps and ffi_bps and ffi_bps > 0.0) else None - - ratio_pack = ratio_index.get( - key, - { - "rust_ratio": None, - "ffi_ratio": None, - "delta": None, - "status": "insufficient-data", - }, + speed_delta = ( + rust_bps / ffi_bps + if (rust_bps is not None and ffi_bps is not None and ffi_bps > 0.0) + else None ) has_comparable_ratio = ( @@ -352,7 +350,7 @@ for key in all_keys: "ffi": ratio_pack["ffi_ratio"], "delta_rust_over_ffi": ratio_pack["delta"], "status": ratio_pack["status"], - "interpretation": "ratio<1 means Rust compressed output smaller than FFI; ratio>1 means larger", + "interpretation": "delta<1 means Rust compressed output smaller than FFI; delta>1 means larger", }, "speed": { "series": speed_series, @@ -362,7 +360,7 @@ for key in all_keys: "ffi_bytes_per_sec": ffi_bps, "delta_rust_over_ffi": speed_delta, "status": classify_speed_delta(speed_delta), - "interpretation": "speed>1 means Rust faster than FFI; speed<1 means slower", + "interpretation": "delta>1 means Rust faster than FFI; delta<1 means slower", }, } ) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dcfbc6d8..db351195 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -133,6 +133,15 @@ jobs: - name: Run benchmarks run: bash .github/scripts/run-benchmarks.sh + - name: Upload benchmark delta artifacts + uses: actions/upload-artifact@v4 + with: + name: benchmark-delta + path: | + benchmark-delta.json + benchmark-delta.md + if-no-files-found: error + - name: Store benchmark results if: steps.bot-token.outputs.token != '' uses: benchmark-action/github-action-benchmark@v1 From 6ba8518fd4372afd8efcd5fdfb0a8f0bdb9ee5db Mon Sep 17 00:00:00 2001 From: Dmitry Prudnikov Date: Sun, 5 Apr 2026 18:05:57 +0300 Subject: [PATCH 6/7] fix(bench): render parity reference band in delta markdown MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add explicit 0.99–1.05 guide text to ratio delta section - Add explicit 0.99–1.05 guide text to speed delta section --- .github/scripts/run-benchmarks.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/scripts/run-benchmarks.sh b/.github/scripts/run-benchmarks.sh index 8d43f188..1da0e3e5 100755 --- a/.github/scripts/run-benchmarks.sh +++ b/.github/scripts/run-benchmarks.sh @@ -474,6 +474,8 @@ delta_lines.extend( "", "### Rust/FFI ratio delta", "", + f"Reference band: `{DELTA_LOW:.2f}–{DELTA_HIGH:.2f}` (near parity).", + "", "| Key | Delta | Status |", "| --- | ---: | --- |", ] @@ -532,6 +534,8 @@ delta_lines.extend( "", "### Rust/FFI speed delta", "", + f"Reference band: `{DELTA_LOW:.2f}–{DELTA_HIGH:.2f}` (near parity).", + "", "| Key | Delta | Status |", "| --- | ---: | --- |", ] From f1ae198b3ed3cc87e35f5f8ee16bdc2ce28c6a6e Mon Sep 17 00:00:00 2001 From: Dmitry Prudnikov Date: Sun, 5 Apr 2026 18:31:55 +0300 Subject: [PATCH 7/7] chore(bench): export delta reference band to json --- .github/scripts/run-benchmarks.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/scripts/run-benchmarks.sh b/.github/scripts/run-benchmarks.sh index 1da0e3e5..a467b2a1 100755 --- a/.github/scripts/run-benchmarks.sh +++ b/.github/scripts/run-benchmarks.sh @@ -350,6 +350,10 @@ for key in all_keys: "ffi": ratio_pack["ffi_ratio"], "delta_rust_over_ffi": ratio_pack["delta"], "status": ratio_pack["status"], + "reference_band": { + "delta_low": DELTA_LOW, + "delta_high": DELTA_HIGH, + }, "interpretation": "delta<1 means Rust compressed output smaller than FFI; delta>1 means larger", }, "speed": { @@ -360,6 +364,10 @@ for key in all_keys: "ffi_bytes_per_sec": ffi_bps, "delta_rust_over_ffi": speed_delta, "status": classify_speed_delta(speed_delta), + "reference_band": { + "delta_low": DELTA_LOW, + "delta_high": DELTA_HIGH, + }, "interpretation": "delta>1 means Rust faster than FFI; delta<1 means slower", }, }