diff --git a/CLAUDE.md b/CLAUDE.md index 43513d37e..c15a2dc1d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -32,7 +32,12 @@ The [#841 manual shape sweep](docs/benchmarks/841-shape-sweeps/README.md) records native sort/window, set, UUID, recursive-control and sustained-reader experiments, including rejected inputs, capped attempts and attribution limits. Its standalone harness and disposable diagnostic probes do not change the -library test inventory, production code or nightly routes. +library test inventory, production code or nightly routes. #863 qualified its +nightly candidates ([evidence](docs/benchmarks/863-nightly-candidates/README.md)): +Criterion cases in `benches/minigraf_bench/nightly_candidates.rs` (fixtures in +`benches/helpers/shape.rs`) and ignored `test-hooks` acceptance tests in +`tests/nightly_candidates_acceptance_test.rs` (`minigraf::__path_events`, +`Cursor::__memory_peak`). ## Core Philosophy - CRITICAL @@ -245,7 +250,7 @@ Auto-migrates v7 → v8 on open (spec §9, with a backup meta page). v1–v6 are ## Test Coverage -**2104 tests** (2083 active, 21 ignored; unit + integration + doc). Engine answers once checked by the executor are frozen in `tests/answers/` (#551). +**2108 tests** (2087 active, 21 ignored; unit + integration + doc). Engine answers once checked by the executor are frozen in `tests/answers/` (#551). See `docs/TEST_COVERAGE.md` for the full per-file breakdown. The #760 deterministic storage suite adds three native unit tests in a separate `--cfg minigraf_shuttle` build, outside the default count. Run only `graph::storage::deterministic::` with that cfg; ordinary unit tests do not enter its scheduler. `deterministic-schedules.yml` runs relevant v3 PRs on Linux/macOS/Windows plus Linux MSRV, and larger nightly/manual searches with replay artifacts. The identical main workflow activates the v3 schedule after both PRs merge. See `docs/testing/deterministic-schedules.md` for scope, controls and findings. diff --git a/benches/helpers/mod.rs b/benches/helpers/mod.rs index 582aadffb..74759a378 100644 --- a/benches/helpers/mod.rs +++ b/benches/helpers/mod.rs @@ -517,3 +517,4 @@ fn insert_val_facts(db: &Minigraf, n: usize) { db.execute(&cmd).unwrap(); } } +pub mod shape; diff --git a/benches/helpers/shape.rs b/benches/helpers/shape.rs new file mode 100644 index 000000000..620e555d3 --- /dev/null +++ b/benches/helpers/shape.rs @@ -0,0 +1,345 @@ +//! The #841 shape-sweep fixtures, queries and oracles for the #863 nightly +//! candidates: a trimmed port of `scripts/shape-sweep/native/src/main.rs` +//! (`records`, `query`, `Digest`, `oracle`), which stays authoritative for the +//! sweep. Entity UUIDs, records and query text are the harness's, so answers +//! are the #841 answers. +//! +//! Shared by `benches/minigraf_bench/nightly_candidates.rs` and +//! `tests/nightly_candidates_acceptance_test.rs` (`#[path]`). +#![allow(dead_code)] + +use minigraf::{FactRecord, LogWriter, Minigraf, OpenOptions, Value, ValueSet}; +use std::path::Path; +use uuid::Uuid; + +/// One #841 case, by family. +#[derive(Clone, Copy, Debug)] +pub enum Shape { + /// `n` rows (`2n` facts), 90% in partition 0, the rest over 99 more; + /// running `sum` partitioned by part, ordered by value. + WindowSkewSum { n: usize }, + /// `n` entities with `k`-element sets, 90% sharing `0..k`; six + /// membership predicates per entity. + SetMembership { n: usize, k: usize }, + /// `n` integers inserted in a permuted order; `:order-by` with offset + /// and limit. + Sort { + n: usize, + desc: bool, + offset: usize, + limit: Option, + }, + /// A width-10 tree of `edges` parent edges; the ancestors of one leaf + /// (`k == 1`, a literal call) or of the last `k` leaves (demanded). + Ancestors { edges: usize, k: usize }, +} + +pub fn entity(i: usize) -> Uuid { + Uuid::from_u128(0x84100000000000000000000000000000 + i as u128) +} + +fn integer(i: usize) -> Value { + Value::Integer(i.try_into().unwrap()) +} + +fn skew_part(n: usize, i: usize) -> usize { + if i < n * 9 / 10 { + 0 + } else { + 1 + (i - n * 9 / 10) % 99 + } +} + +fn skew_members(n: usize, k: usize, i: usize) -> ValueSet { + let base = if i < n * 9 / 10 { 0 } else { (i + 1) * k }; + ValueSet::new((base..base + k).map(integer)).unwrap() +} + +impl Shape { + /// Every fact of the fixture, in the harness's order. + pub fn records(&self, mut emit: impl FnMut(Uuid, &str, Value)) { + match *self { + Shape::WindowSkewSum { n } => { + for i in 0..n { + emit(entity(i), ":s/value", integer(i)); + emit(entity(i), ":s/part", integer(skew_part(n, i))); + } + } + Shape::SetMembership { n, k } => { + for i in 0..n { + emit(entity(i), ":s/id", integer(i)); + emit(entity(i), ":s/set", Value::Set(skew_members(n, k, i))); + } + } + Shape::Sort { n, .. } => { + for j in 0..n { + let i = (j * 37) % n; + emit(entity(i), ":s/value", integer(i)); + } + } + Shape::Ancestors { edges, k } => { + for i in 1..=edges { + emit(entity(i), ":s/parent", Value::Ref(entity((i - 1) / 10))); + } + for i in edges + 1 - k..=edges { + emit(entity(i), ":s/demand", Value::Boolean(true)); + } + } + } + } + + pub fn query(&self) -> String { + let body = match *self { + Shape::WindowSkewSum { .. } => { + ":find ?i ?p (sum ?i :over (:partition-by ?p :order-by ?i)) \ + :where [?e :s/part ?p] [?e :s/value ?i]" + .to_string() + } + Shape::SetMembership { .. } => { + ":find ?i ?a ?b ?c ?d ?f ?g :where [?e :s/id ?i] [?e :s/set ?s] \ + [(in? 0 ?s) ?a] [(not-in? 0 ?s) ?b] [(all-in? #{} ?s) ?c] \ + [(any-in? ?s #{0}) ?d] [(none-in? ?s #{0}) ?f] [(in? -1 ?s) ?g]" + .to_string() + } + Shape::Sort { + desc, + offset, + limit, + .. + } => { + let mut q = format!( + ":find ?v :where [?e :s/value ?v] :order-by [?v :{}]", + if desc { "desc" } else { "asc" } + ); + if offset > 0 { + q.push_str(&format!(" :offset {offset}")); + } + if let Some(l) = limit { + q.push_str(&format!(" :limit {l}")); + } + q + } + Shape::Ancestors { edges, k: 1 } => { + format!(":find ?a :where (anc #uuid \"{}\" ?a)", entity(edges)) + } + Shape::Ancestors { .. } => { + ":find ?leaf ?a :where [?leaf :s/demand true] (anc ?leaf ?a)".to_string() + } + }; + format!("(query [{body}])") + } + + /// Whether the answer's order is part of it. + pub fn ordered(&self) -> bool { + matches!(self, Shape::Sort { .. }) + } + + /// Rows the answer has. + pub fn rows(&self) -> usize { + self.oracle().rows as usize + } + + /// The answer, computed without the database. + pub fn oracle(&self) -> Digest { + let mut out = Digest::default(); + match *self { + Shape::WindowSkewSum { n } => { + for i in 0..n { + let p = skew_part(n, i); + let (first, stride) = if p == 0 { + (0, 1) + } else { + (n * 9 / 10 + p - 1, 99) + }; + let rank = (i - first) / stride + 1; + let sum = (first + i) * rank / 2; + out.add(&[integer(i), integer(p), integer(sum)], false); + } + } + Shape::SetMembership { n, k } => { + for i in 0..n { + let hit = skew_members(n, k, i).iter().any(|v| *v == integer(0)); + out.add( + &[ + integer(i), + Value::Boolean(hit), + Value::Boolean(!hit), + Value::Boolean(true), + Value::Boolean(hit), + Value::Boolean(!hit), + Value::Boolean(false), + ], + false, + ); + } + } + Shape::Sort { + n, + desc, + offset, + limit, + } => { + let end = n.min(offset.saturating_add(limit.unwrap_or(n))); + for j in offset..end { + let i = if desc { n - 1 - j } else { j }; + out.add(&[integer(i)], true); + } + } + Shape::Ancestors { edges, k } => { + for leaf in edges + 1 - k..=edges { + let mut i = leaf; + while i > 0 { + i = (i - 1) / 10; + let mut row = Vec::new(); + if k > 1 { + row.push(Value::Ref(entity(leaf))); + } + row.push(Value::Ref(entity(i))); + out.add(&row, false); + } + } + } + } + out + } + + /// Build the fixture at `path`: committed (`LogWriter`, fixed + /// timestamps, 1,000 facts per transaction) or pending (1,000-fact + /// `transact`s left in the WAL). Then open it, with the `anc` rules for + /// an ancestor shape. + pub fn build(&self, path: &Path, pending: bool) -> Minigraf { + if pending { + let db = self.open(path); + let mut command = String::from("(transact ["); + let mut count = 0usize; + self.records(|e, a, v| { + command.push_str(&format!("[#uuid \"{e}\" {a} {}]", edn(&v))); + count += 1; + if count % 1000 == 0 { + command.push_str("])"); + db.execute(&command).unwrap(); + command = String::from("(transact ["); + } + }); + if count % 1000 != 0 { + command.push_str("])"); + db.execute(&command).unwrap(); + } + db + } else { + let mut writer = LogWriter::create(path, OpenOptions::new()).unwrap(); + let mut count = 0usize; + self.records(|e, a, v| { + writer + .append(&FactRecord { + entity: e, + attribute: a.into(), + value: v, + tx_count: (count / 1000 + 1) as u64, + tx_id: 1_700_000_000_000 + (count / 1000) as u64, + valid_from: 0, + valid_to: i64::MAX, + asserted: true, + }) + .unwrap(); + count += 1; + }); + writer.finish().unwrap(); + self.open(path) + } + } + + /// Open `path` without checkpoints (a pending fixture stays pending, + /// also on drop), with the `anc` rules for an ancestor shape. + pub fn open(&self, path: &Path) -> Minigraf { + let db = OpenOptions::new() + .wal_checkpoint_threshold(usize::MAX) + .path(path) + .open() + .unwrap(); + if matches!(self, Shape::Ancestors { .. }) { + db.execute("(rule [(anc ?x ?a) [?x :s/parent ?a]])") + .unwrap(); + db.execute("(rule [(anc ?x ?a) [?x :s/parent ?p] (anc ?p ?a)])") + .unwrap(); + } + db + } +} + +fn edn(v: &Value) -> String { + match v { + Value::Integer(n) => n.to_string(), + Value::Boolean(b) => b.to_string(), + Value::Ref(u) => format!("#uuid \"{u}\""), + Value::Set(s) => format!("#{{{}}}", s.iter().map(edn).collect::>().join(" ")), + _ => panic!("unexpected fixture value"), + } +} + +/// An order-insensitive digest of an answer (row count, wrapping sum and +/// rotated xor of row hashes), plus an order-sensitive fold for ordered +/// answers: the harness's `Digest`. +#[derive(Default, PartialEq, Eq, Debug, Clone, Copy)] +pub struct Digest { + pub rows: u64, + pub sum: u64, + pub xor: u64, + pub ordered: u64, +} + +fn mix(h: &mut u64, bytes: &[u8]) { + for b in bytes { + *h = (*h ^ u64::from(*b)).wrapping_mul(0x100000001b3); + } +} + +fn hash_value(h: &mut u64, value: &Value) { + match value { + Value::Integer(n) => { + mix(h, &[1]); + mix(h, &n.to_le_bytes()); + } + Value::Boolean(b) => mix(h, &[2, u8::from(*b)]), + Value::Ref(u) => { + mix(h, &[3]); + mix(h, u.as_bytes()); + } + Value::Set(s) => { + mix(h, &[4]); + mix(h, &(s.len() as u64).to_le_bytes()); + for v in s.iter() { + hash_value(h, v); + } + } + _ => panic!("unexpected result type in oracle"), + } +} + +impl Digest { + pub fn add(&mut self, row: &[Value], ordered: bool) { + let mut h = 0xcbf29ce484222325; + mix(&mut h, &(row.len() as u64).to_le_bytes()); + for v in row { + hash_value(&mut h, v); + } + self.rows += 1; + self.sum = self.sum.wrapping_add(h); + self.xor ^= h.rotate_left((h % 64) as u32); + if ordered { + self.ordered = self.ordered.wrapping_mul(0x100000001b3) ^ h; + } + } +} + +/// Drain `query` and digest its rows. +pub fn drain(db: &Minigraf, query: &str, ordered: bool) -> Digest { + let mut cursor = db.query(query).unwrap(); + let mut digest = Digest::default(); + while let Some(batch) = cursor.next_batch(1000).unwrap() { + for row in batch.rows() { + digest.add(row, ordered); + } + } + digest +} diff --git a/benches/minigraf_bench.rs b/benches/minigraf_bench.rs index 3f4679fc4..0e3b06c9a 100644 --- a/benches/minigraf_bench.rs +++ b/benches/minigraf_bench.rs @@ -32,6 +32,8 @@ mod history; mod keyword_equality; #[path = "minigraf_bench/memory_meter.rs"] mod memory_meter; +#[path = "minigraf_bench/nightly_candidates.rs"] +mod nightly_candidates; #[path = "minigraf_bench/pagination.rs"] mod pagination; @@ -2118,6 +2120,7 @@ criterion_group!( pagination::bench_pagination, operator_paths::bench_operator_paths, cursor_lifecycle::bench_cursor_lifecycle, + nightly_candidates::bench_nightly_candidates, bench_input_order, bench_ordered_groups, bench_partition_windows, diff --git a/benches/minigraf_bench/nightly_candidates.rs b/benches/minigraf_bench/nightly_candidates.rs new file mode 100644 index 000000000..f5c5197b7 --- /dev/null +++ b/benches/minigraf_bench/nightly_candidates.rs @@ -0,0 +1,123 @@ +//! #863: the #841 shape-sweep candidates qualified for nightly timing, under +//! the existing `^window/`, `^query/` and `^recursion/` routes. +//! +//! Fixtures, queries and oracles are `helpers::shape` (the #841 harness's). +//! Each fixture is built lazily inside its selected callback, outside `iter`, +//! and the answer digest is checked once before timing. As in #841, the timed +//! body opens the query, drains its cursor and digests every row. Path, +//! answer and memory are pinned separately, by +//! `tests/nightly_candidates_acceptance_test.rs` (nightly, `test-hooks`): a +//! path regression fails there, while time here can only raise an alert. +//! Run once, untimed: cargo bench --bench minigraf_bench -- --test 'nightly_candidates/' + +use crate::helpers::shape::{Shape, drain}; +use criterion::{BenchmarkId, Criterion}; +use std::hint::black_box; +use tempfile::TempDir; + +struct Case { + group: &'static str, + name: &'static str, + size: &'static str, + shape: Shape, + pending: bool, + /// An operator name the cursor's `Debug` view must (true) or must not + /// (false) show: checked before timing, without formatting any row. + plan: Option<(&'static str, bool)>, +} + +const CASES: &[Case] = &[ + Case { + group: "window/nightly_candidates", + name: "skew_running_sum", + size: "100k", + shape: Shape::WindowSkewSum { n: 50_000 }, + pending: false, + plan: Some(("WindowPartitioned", true)), + }, + Case { + group: "query/nightly_candidates", + name: "set_membership_k256", + size: "10k", + shape: Shape::SetMembership { n: 10_000, k: 256 }, + pending: false, + plan: None, + }, + Case { + group: "query/nightly_candidates", + name: "sort_offset_desc", + size: "100k", + shape: Shape::Sort { + n: 100_000, + desc: true, + offset: 50_000, + limit: Some(1000), + }, + pending: false, + plan: Some(("Sort", true)), + }, + Case { + group: "query/nightly_candidates", + name: "sort_offset_asc", + size: "100k", + shape: Shape::Sort { + n: 100_000, + desc: false, + offset: 50_000, + limit: Some(1000), + }, + pending: false, + plan: Some(("Sort", false)), + }, + Case { + group: "recursion/nightly_candidates", + name: "tree_ancestors_k1_pending", + size: "1110", + shape: Shape::Ancestors { edges: 1110, k: 1 }, + pending: true, + plan: None, + }, + Case { + group: "recursion/nightly_candidates", + name: "tree_ancestors_k16_committed", + size: "1110", + shape: Shape::Ancestors { edges: 1110, k: 16 }, + pending: false, + plan: None, + }, +]; + +pub fn bench_nightly_candidates(c: &mut Criterion) { + for group_name in [ + "window/nightly_candidates", + "query/nightly_candidates", + "recursion/nightly_candidates", + ] { + let mut group = c.benchmark_group(group_name); + group.sample_size(10); + for case in CASES.iter().filter(|c| c.group == group_name) { + group.bench_function(BenchmarkId::new(case.name, case.size), |b| { + let dir = TempDir::new().unwrap(); + let db = case + .shape + .build(&dir.path().join("candidate.graph"), case.pending); + let query = case.shape.query(); + if let Some((op, present)) = case.plan { + let cursor = db.query(&query).unwrap(); + assert_eq!( + format!("{cursor:?}").contains(op), + present, + "candidate plan" + ); + } + assert!( + drain(&db, &query, case.shape.ordered()) == case.shape.oracle(), + "candidate answer matches the #841 oracle" + ); + b.iter(|| black_box(drain(&db, black_box(&query), case.shape.ordered()))); + drop(db); + }); + } + group.finish(); + } +} diff --git a/docs/TEST_COVERAGE.md b/docs/TEST_COVERAGE.md index 36900d4df..c6433b995 100644 --- a/docs/TEST_COVERAGE.md +++ b/docs/TEST_COVERAGE.md @@ -4,12 +4,20 @@ | | Default features | With `--features test-hooks` | |---|---|---| -| **Active** | 2,083 | 2,118 | -| **Ignored** | 21 | 24 | -| **Total** | 2,104 | 2,142 | +| **Active** | 2,087 | 2,125 | +| **Ignored** | 21 | 30 | +| **Total** | 2,108 | 2,155 | Counts above are the current Cargo test inventory (active versus ignored), -including #777, #789, #781, #794, #795, #837, #865, #869, #870 and #861 (Linux). Verification results below identify which suites ran. +including #777, #789, #781, #794, #795, #837, #865, #869, #870, #861 and #863 (Linux). Verification results below identify which suites ran. + +**#863 nightly candidates**: four engine unit tests check the `test-hooks` +path events and memory peaks (both builds). With `test-hooks` only, +`path_events_test.rs` adds two integration tests and +`nightly_candidates_acceptance_test.rs` adds one active fixture-port check and +six ignored nightly acceptance tests, one per qualified #841 candidate +([evidence](benchmarks/863-nightly-candidates/README.md)). Full default and +`test-hooks` suites passed on the alternate bench machine (2026-11-06). **#838 manual migration verification**: the [manual sweep](benchmarks/838-migration/README.md) checks every fixture value and cursor snapshot before accepting timings, including diff --git a/docs/bench-coverage-v3.md b/docs/bench-coverage-v3.md index f72573ff4..577ff94c4 100644 --- a/docs/bench-coverage-v3.md +++ b/docs/bench-coverage-v3.md @@ -25,6 +25,20 @@ for X02 below; those rows retain the historical audit context. Activation on the default-branch schedule requires v3 PR #848 followed by main PR #849. This adds no Bencher memory metric and does not resolve the other manual exclusions. +**#863 follow-up (2026-11-07):** [the qualification report](benchmarks/863-nightly-candidates/README.md) +resolves the six #841 nightly proposals; all qualify. Six Criterion IDs join +existing routes: `window/nightly_candidates/skew_running_sum/100k` +(`^window/`); `query/nightly_candidates/{set_membership_k256/10k, +sort_offset_desc/100k, sort_offset_asc/100k}` (`^query/`); +`recursion/nightly_candidates/{tree_ancestors_k1_pending, +tree_ancestors_k16_committed}/1110` (`^recursion/`). The `nightly-candidates` +v3 acceptance suite (`tests/nightly_candidates_acceptance_test.rs`, six named +tests, `test-hooks`) pins answers, path events (`ancestor_alternative_selected`, +`bound_value_avet_range`), plan operators and charged query memory, and the +held-cursor churn has no timed case. Spread was judged after normalizing each +runner's overall speed; raw runner-to-runner shifts reach 1.46× within one CPU +model. The selected native ID count grows from 427 to 433 once the routes run. + ## Revisions and method | Input | Revision | diff --git a/docs/benchmarks/841-shape-sweeps/README.md b/docs/benchmarks/841-shape-sweeps/README.md index c6893f01f..3eb5e4d24 100644 --- a/docs/benchmarks/841-shape-sweeps/README.md +++ b/docs/benchmarks/841-shape-sweeps/README.md @@ -545,6 +545,10 @@ quarantined pages become reusable. ## Nightly candidates (proposals only) +Resolved by [#863](../863-nightly-candidates/README.md): each candidate below was +qualified on the GitHub runner or rejected there, with its cost and spread. The +table is kept as proposed. + No sweep case is added to nightly CI by this change. The following small representatives each exercise one behavior this sweep found, at a cost that looks compatible with a nightly route. Times are this host's warmed medians; diff --git a/docs/benchmarks/863-nightly-candidates/README.md b/docs/benchmarks/863-nightly-candidates/README.md new file mode 100644 index 000000000..2feb7ca68 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/README.md @@ -0,0 +1,101 @@ +# #863: qualifying the #841 nightly candidates + +This report qualifies the six small representatives that the +[#841 shape sweep](../841-shape-sweeps/README.md#nightly-candidates-proposals-only) +proposed for nightly CI +([issue #863](https://github.com/project-minigraf/minigraf/issues/863); +[design](../../superpowers/specs/2026-11-06-863-nightly-candidates-design.md), +[plan](../../superpowers/plans/2026-11-06-863-nightly-candidates.md)). All six +qualify. Each one now runs nightly in two parts: + +- **Time:** a Criterion case under an existing route (`^window/`, `^query/`, + `^recursion/`), with Bencher latency and t-test alerts. N6 has no + Criterion case. +- **Answer, path and memory:** an ignored `test-hooks` test in + `tests/nightly_candidates_acceptance_test.rs`, run by `smoke.yml`'s v3 + acceptance matrix. A path regression fails this job; a slower runner can + only raise a Bencher alert. + +A nightly route detects a regression in one representative. It does not +re-establish the #841 envelope. Criterion uses the bench profile (opt-level +z), so its times are not comparable with the #841 opt-level 3 medians. + +## Candidates and routes + +| ID | Candidate | Criterion ID | Acceptance test: what it pins | +| --- | --- | --- | --- | +| N1 | 50,000 rows (100k facts), 90%-skewed partitions, running `sum`, committed | `window/nightly_candidates/skew_running_sum/100k` | `n1_skew_running_sum_streams_by_partition`: answer; `WindowPartitioned` in the plan; Window peak in [0.85, 0.95] of a full-input control (`__input_order(false)`) | +| N2 | 10k entities, `K=256` skewed sets, six membership predicates, committed | `query/nightly_candidates/set_membership_k256/10k` | `n2_set_membership_k256`: answer only (no event identifies the long value-page path) | +| N3 | 100k facts, `:offset 50000 :limit 1000`, committed | `query/nightly_candidates/sort_offset_desc/100k`, `…/sort_offset_asc/100k` | `n3_sort_heap_holds_offset_plus_limit`: answers; descending has `Sort`, ascending none; heap peak ≤ 0.6 of a full Sort | +| N4 | 1,110-edge width-10 tree, one leaf's ancestors, pending | `recursion/nightly_candidates/tree_ancestors_k1_pending/1110` | `n4_small_tree_takes_ancestor_alternative`: answer; `ancestor_alternative_selected` event | +| N5 | The same tree, 16 demanded leaves, committed | `recursion/nightly_candidates/tree_ancestors_k16_committed/1110` | `n5_committed_tree_uses_bound_value_probes`: answer; `bound_value_avet_range` event, no alternative | +| N6 | 10k facts, one cursor held across 256 of 544 churn checkpoints | none (acceptance only) | `n6_held_cursor_quarantine_and_reuse`: held answer unchanged; file grows while held and stops growing after release (growth ratio ≤ 0.5); `verify()` clean | + +Fixtures, queries and oracles are those of the #841 harness, ported to +`benches/helpers/shape.rs`. `shape_port_matches_the_database`, which is not +ignored, checks the port against the database at small sizes on every +`test-hooks` test run. The path events and `Cursor::__memory_peak` exist only +in test and `test-hooks` builds. The `dist` binary is byte-for-byte the same +size as its base, `921b3935`. + +## Protocol + +A temporary workflow (`qualify-863.yml`, removed before merge) ran each +Criterion case on its own and then each acceptance test, on separate +`ubuntu-latest` runners: three jobs at `ad326585` (the PR merge commit of head `b6b864a2` into v3) on 2026-11-06 (attempt 1), +and three more on 2026-11-07 (GitHub attempt 3; attempt 2 was cancelled). The +measured source is the same in all six. `scripts/qualify_863.py` produces the +table and [`summary.json`](summary.json) from the six artifacts: + +```sh +sha256sum -c SHA256SUMS +python3 -I ../../../scripts/qualify_863.py . attempt-1/qualify-863-run-{1,2,3} attempt-2/qualify-863-run-{1,2,3} +``` + +**The bar** (design D3, amended): a candidate is rejected if its fixture +construction, warm-up and measurement, plus its acceptance test, take more than +600 s (10 job-minutes), or if its spread is over 25%. Spread is +`(max − min) / min` of the Criterion medians, measured **after dividing each +run by its speed factor**: the geometric mean of all timed cases in that run. + +The six runs landed on three CPU models. Within one model a runner can also be +about 1.46× slower on every case at once: of the four EPYC 9V74 runs, run 6 +measured N1 at 1,424 ms against 972–981 ms. This is the same whole-runner +effect the existing nightly suites have (#678), and Bencher's t-test over the +last 30 runs absorbs it. Raw same-model and cross-model spreads (43–52% and +83–103%) are reported for that reason, but they are not the bar. The first bar, +raw spread over three runs, then raw spread within one CPU model, rejected +every timed candidate for this reason alone (user decisions 2026-11-06 and +2026-11-07). + +## Results + +| Candidate | Max cost (s) | Criterion medians (ms), runs 1–6 | Normalized spread | Same-model spread | Cross-model spread | Verdict | +| --- | ---: | --- | ---: | ---: | ---: | --- | +| N1 | 204.1 | `skew_running_sum/100k`: 704.780 / 973.084 / 980.904 / 1153.193 / 972.050 / 1423.700 | 3.5% | 46.5% | 102.0% | qualified | +| N2 | 96.1 | `set_membership_k256/10k`: 785.832 / 946.438 / 1024.328 / 1192.207 / 971.735 / 1440.915 | 10.7% | 52.2% | 83.4% | qualified | +| N3 | 113.4 | `sort_offset_desc/100k`: 56.792 / 78.097 / 82.022 / 86.982 / 80.991 / 115.462
`sort_offset_asc/100k`: 11.111 / 15.133 / 14.845 / 18.629 / 14.631 / 21.557 | 13.1% | 47.8% | 103.3% | qualified | +| N4 | 49.8 | `tree_ancestors_k1_pending/1110`: 0.103 / 0.133 / 0.133 / 0.178 / 0.134 / 0.200 | 12.3% | 50.9% | 93.8% | qualified | +| N5 | 44.8 | `tree_ancestors_k16_committed/1110`: 54.733 / 77.000 / 75.848 / 91.329 / 75.514 / 108.398 | 5.5% | 43.5% | 98.0% | qualified | +| N6 | 2.5 | acceptance only | — | — | — | qualified | + +Runs: 1: AMD EPYC 9V45 96-Core Processor (speed factor 35.43 ms), 2: AMD EPYC 9V74 80-Core Processor (speed factor 47.25 ms), 3: AMD EPYC 9V74 80-Core Processor (speed factor 48.06 ms), 4: AMD EPYC 7763 64-Core Processor (speed factor 57.54 ms), 5: AMD EPYC 9V74 80-Core Processor (speed factor 47.38 ms), 6: AMD EPYC 9V74 80-Core Processor (speed factor 69.31 ms). + +The shared compile step is not counted per candidate. Criterion's +fixture-plus-measurement time per run, all five timed cases together, was +315–439 s. The six acceptance tests took 37–57 s together. Every acceptance +run measured the same values: N1 9,073,864 / 10,000,032 bytes (0.907), N3 +2,856,056 / 5,600,000 bytes (0.51), N6 10,280,960 bytes of growth while held +and 0 after release. On the alternate bench host the six acceptance tests take +6 s, and the five Criterion cases 146 s. + +## Limits + +- N2 pins only the answer: no counter separates the long value-page set path + from another plan. +- The memory bounds are the query meter's charged bytes, not RSS, and they + hold only for these fixtures. +- Normalizing by run speed removes changes that slow every case at once, + including a real regression shared by all five. The bar keeps out + candidates whose times are unstable on their own; the existing alert path + handles shared shifts. diff --git a/docs/benchmarks/863-nightly-candidates/SHA256SUMS b/docs/benchmarks/863-nightly-candidates/SHA256SUMS new file mode 100644 index 000000000..179f0c82f --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/SHA256SUMS @@ -0,0 +1,97 @@ +8c614e43e329c18ee1eb2d143af81b554c1e889daad1102e39f607e94a5313af attempt-1/qualify-863-run-1/acceptance.txt +ae547dbbe7d27ac336155fa5ea013ff6e1ab867151456b3e1a17f81e5aef05a3 attempt-1/qualify-863-run-1/criterion.txt +c3ffbced99b441dd0895f14b56b8d7e5d277d4e8417da01dca27709950d850cc attempt-1/qualify-863-run-1/estimates/1-benchmark.json +bee1aa99b3ad17d5e4aad2f15febd7959a617400367c8eb9c987ce71dfca611c attempt-1/qualify-863-run-1/estimates/1-estimates.json +b66568576f5e0e602658adf10a2e396f88849b90be03f511fd8dc9c6fbb488f5 attempt-1/qualify-863-run-1/estimates/2-benchmark.json +07ffa909b46effe44524384734a7d917b70e63b9df89c1cc426f30615911bda9 attempt-1/qualify-863-run-1/estimates/2-estimates.json +5637d12615de0bdf80e18e57484ed8b49106aae2b0fe573d9f4fca9b8335f054 attempt-1/qualify-863-run-1/estimates/3-benchmark.json +8691220c1eff750d16e80b54efece2a9e35d61b5a70a8bbf4abc94cb87b115be attempt-1/qualify-863-run-1/estimates/3-estimates.json +67cf34e69cd947b081433e654a934f5f6f754ffef9c709f329a6ee5a708259f5 attempt-1/qualify-863-run-1/estimates/4-benchmark.json +23748d96a75af6a014f188d291e578f2b41899a505f6cef51e2aac0bc53878b9 attempt-1/qualify-863-run-1/estimates/4-estimates.json +24e09446ef28fcf851cdb58c92723cc203655e0b630b52e28d0c1c5c3a67e728 attempt-1/qualify-863-run-1/estimates/5-benchmark.json +2ec7026cb6e36db7e08415aafc242375474d5de05cb72ff880551ddfe6a857ba attempt-1/qualify-863-run-1/estimates/5-estimates.json +29850422a68c53df6581529161bd52222520a3db65e71156567dab2298bc2b33 attempt-1/qualify-863-run-1/estimates/6-benchmark.json +d8b771ddc33825fd86e436bc5ea7d5372cf9a69e7b49d6214c130887f39ab99e attempt-1/qualify-863-run-1/estimates/6-estimates.json +64996befd7b9e3bc77e1273a4a0b9eaf182522bf0d05f01318286c105fddbdae attempt-1/qualify-863-run-1/runner.txt +244b0eff28b46157a153469e5a13ef3747cda09d96a68b63540bb5c8cfcac60e attempt-1/qualify-863-run-1/timings.jsonl +b13d2158141f97ad18d350bccd8b524af63b5b21de3f7fe1dc9d00eacd8ec3b2 attempt-1/qualify-863-run-2/acceptance.txt +97125a78cd6375edfe23b0d625d5e5908910dbb9f326cb2805cc4e208d03d827 attempt-1/qualify-863-run-2/criterion.txt +c3ffbced99b441dd0895f14b56b8d7e5d277d4e8417da01dca27709950d850cc attempt-1/qualify-863-run-2/estimates/1-benchmark.json +bf0f0c42940380af8243290c7cad4726f0f484eb2062769cfa65ab6691ca741a attempt-1/qualify-863-run-2/estimates/1-estimates.json +b66568576f5e0e602658adf10a2e396f88849b90be03f511fd8dc9c6fbb488f5 attempt-1/qualify-863-run-2/estimates/2-benchmark.json +25db047f0bc78d9c8db6041cd937f096cc1c1268950c3a6364250d29350df835 attempt-1/qualify-863-run-2/estimates/2-estimates.json +5637d12615de0bdf80e18e57484ed8b49106aae2b0fe573d9f4fca9b8335f054 attempt-1/qualify-863-run-2/estimates/3-benchmark.json +f86fcbe3b7aef948ed4f49b9467298b524143faea027facf8495884efa31d95f attempt-1/qualify-863-run-2/estimates/3-estimates.json +67cf34e69cd947b081433e654a934f5f6f754ffef9c709f329a6ee5a708259f5 attempt-1/qualify-863-run-2/estimates/4-benchmark.json +414678f1a7b3597f144994b12bdfb19a750ebd33a17ad0e22fa3970b4aef603e attempt-1/qualify-863-run-2/estimates/4-estimates.json +24e09446ef28fcf851cdb58c92723cc203655e0b630b52e28d0c1c5c3a67e728 attempt-1/qualify-863-run-2/estimates/5-benchmark.json +60d8dade906f4e381557982922b46fd36c41ff49f90e6a6d3ac01cbc97ebb6f0 attempt-1/qualify-863-run-2/estimates/5-estimates.json +29850422a68c53df6581529161bd52222520a3db65e71156567dab2298bc2b33 attempt-1/qualify-863-run-2/estimates/6-benchmark.json +f860ce2567499d253565b45cf38b0ea20a31d7f252010dd66bd2703c6323b4f3 attempt-1/qualify-863-run-2/estimates/6-estimates.json +2aab0a4f49e08b2b856a51f4ecb03d5bb8e2197df859edfdd9693b3832561b4a attempt-1/qualify-863-run-2/runner.txt +da90bb102dd0b045f9c927d3daef78b454f8e13bdfa5e7b75b2235d07d797d45 attempt-1/qualify-863-run-2/timings.jsonl +c9310cde1f52b840ca33ed09e05cd49ce5e24a447cb7763e28143b675d937f6d attempt-1/qualify-863-run-3/acceptance.txt +3a2d957f2f845e157a7d1182aaf942b0c007004f2571b609b15665df95572408 attempt-1/qualify-863-run-3/criterion.txt +c3ffbced99b441dd0895f14b56b8d7e5d277d4e8417da01dca27709950d850cc attempt-1/qualify-863-run-3/estimates/1-benchmark.json +2d0aa29fd30c3153070f44bea94f11ab9e8b95739af280b4eeffb4e35aaf93b5 attempt-1/qualify-863-run-3/estimates/1-estimates.json +b66568576f5e0e602658adf10a2e396f88849b90be03f511fd8dc9c6fbb488f5 attempt-1/qualify-863-run-3/estimates/2-benchmark.json +b980d689aa6e2a3af21cd7f4121f464383be961b3d93d7c81f6bbfec4cce96f7 attempt-1/qualify-863-run-3/estimates/2-estimates.json +5637d12615de0bdf80e18e57484ed8b49106aae2b0fe573d9f4fca9b8335f054 attempt-1/qualify-863-run-3/estimates/3-benchmark.json +1a5bee90c4f7d01d20266bc7353b084b730f3f8417693272263501511db78fa4 attempt-1/qualify-863-run-3/estimates/3-estimates.json +67cf34e69cd947b081433e654a934f5f6f754ffef9c709f329a6ee5a708259f5 attempt-1/qualify-863-run-3/estimates/4-benchmark.json +2a479c5c01a693c99c2c90ca65de4be354ca0343903f1263d3a0dc432e945ec3 attempt-1/qualify-863-run-3/estimates/4-estimates.json +24e09446ef28fcf851cdb58c92723cc203655e0b630b52e28d0c1c5c3a67e728 attempt-1/qualify-863-run-3/estimates/5-benchmark.json +19229ec9b41003182cb3b10a7cbba2beba9fc36dfa6c5a7f204764e4d1e4e470 attempt-1/qualify-863-run-3/estimates/5-estimates.json +29850422a68c53df6581529161bd52222520a3db65e71156567dab2298bc2b33 attempt-1/qualify-863-run-3/estimates/6-benchmark.json +aa0d5a5eeab84658b0661f102e189d3ac575743ba9acb5df05b63789425bcb10 attempt-1/qualify-863-run-3/estimates/6-estimates.json +f2d44deb49d9a75b715e2d51ca3465561bd9602b97cc558e004a0afc673381d0 attempt-1/qualify-863-run-3/runner.txt +173719b8490cbf826fe0d5b500ea14f5c3f41afb6bccce3e44c4ffb02916524b attempt-1/qualify-863-run-3/timings.jsonl +ad1d45bd8bd086a70d6fccc93892e5b16409d23293cc52ce3ce1729a2060a89d attempt-2/qualify-863-run-1/acceptance.txt +bf97f7e021896c9c7c1d49da3a4f92b8867bb00a970112796c4fa154f295741a attempt-2/qualify-863-run-1/criterion.txt +c3ffbced99b441dd0895f14b56b8d7e5d277d4e8417da01dca27709950d850cc attempt-2/qualify-863-run-1/estimates/1-benchmark.json +30a575410033fac5ccf87b3890608411008ee1908ed1d09c6f17be05001860de attempt-2/qualify-863-run-1/estimates/1-estimates.json +b66568576f5e0e602658adf10a2e396f88849b90be03f511fd8dc9c6fbb488f5 attempt-2/qualify-863-run-1/estimates/2-benchmark.json +b472a0cc9d89e7ab685c784691a48ccd9170269366709d00d2e095fd9f67b5ad attempt-2/qualify-863-run-1/estimates/2-estimates.json +5637d12615de0bdf80e18e57484ed8b49106aae2b0fe573d9f4fca9b8335f054 attempt-2/qualify-863-run-1/estimates/3-benchmark.json +9fedb92076ae7eb42306fa74ba1151023905db4dbf691f7ac5273982aeb712a8 attempt-2/qualify-863-run-1/estimates/3-estimates.json +67cf34e69cd947b081433e654a934f5f6f754ffef9c709f329a6ee5a708259f5 attempt-2/qualify-863-run-1/estimates/4-benchmark.json +91f2251bf628f94b17e67d4fe9bc0769d4d43f50ceb6062b179197aae5e772bb attempt-2/qualify-863-run-1/estimates/4-estimates.json +24e09446ef28fcf851cdb58c92723cc203655e0b630b52e28d0c1c5c3a67e728 attempt-2/qualify-863-run-1/estimates/5-benchmark.json +0dabac01b7d400c715265f75b41752b68d01c4695f24d6b72dd40b363c0db3f3 attempt-2/qualify-863-run-1/estimates/5-estimates.json +29850422a68c53df6581529161bd52222520a3db65e71156567dab2298bc2b33 attempt-2/qualify-863-run-1/estimates/6-benchmark.json +b3fb3c9aa988faea0a7c507809f8ffa2eb0ce12f0b415241e6cba5d5945c4319 attempt-2/qualify-863-run-1/estimates/6-estimates.json +227550568ccb964e27374f0bd614be2e75d04ec2f7e80cd3d8791be74945716b attempt-2/qualify-863-run-1/runner.txt +955e0c783c3dad223e6d04f3d5791926e9b7c8d423de239db99e4d6d03e4c890 attempt-2/qualify-863-run-1/timings.jsonl +30af9c800eb891c7ad9d6e56901f4e46bc9e796722b5e26529aa80f633a245a3 attempt-2/qualify-863-run-2/acceptance.txt +3093c36f3466beef11a05623791c24d3076a4d829a56809623d03248e3ad541e attempt-2/qualify-863-run-2/criterion.txt +c3ffbced99b441dd0895f14b56b8d7e5d277d4e8417da01dca27709950d850cc attempt-2/qualify-863-run-2/estimates/1-benchmark.json +b3d1c8c392034885b182d8d89caf5cfbe94518ec5807c3ad552f821418f2a1cc attempt-2/qualify-863-run-2/estimates/1-estimates.json +b66568576f5e0e602658adf10a2e396f88849b90be03f511fd8dc9c6fbb488f5 attempt-2/qualify-863-run-2/estimates/2-benchmark.json +37b510bd4cee2d64bc263dac9991e7d6de2bffa946e80e2bd2604cb107843366 attempt-2/qualify-863-run-2/estimates/2-estimates.json +5637d12615de0bdf80e18e57484ed8b49106aae2b0fe573d9f4fca9b8335f054 attempt-2/qualify-863-run-2/estimates/3-benchmark.json +80239981dce55aef547db1c8b071b12775a2e92d6fd349319deba835e96575fa attempt-2/qualify-863-run-2/estimates/3-estimates.json +67cf34e69cd947b081433e654a934f5f6f754ffef9c709f329a6ee5a708259f5 attempt-2/qualify-863-run-2/estimates/4-benchmark.json +1582776e90bab230f37030624f0d08b9b42169d95a47fa9f1563f69a7f8a731d attempt-2/qualify-863-run-2/estimates/4-estimates.json +24e09446ef28fcf851cdb58c92723cc203655e0b630b52e28d0c1c5c3a67e728 attempt-2/qualify-863-run-2/estimates/5-benchmark.json +a6158c836b0777009f045862bab3919ea1fd0c8c6d9a7d8de14b10c321762500 attempt-2/qualify-863-run-2/estimates/5-estimates.json +29850422a68c53df6581529161bd52222520a3db65e71156567dab2298bc2b33 attempt-2/qualify-863-run-2/estimates/6-benchmark.json +81389ca8899ca8e605fbe6f10f13c9c29f085c0deb2e904fae030e956505f7f5 attempt-2/qualify-863-run-2/estimates/6-estimates.json +19652dadd4b12b1203c58fe03e398dd4490a71b4bb17e9f61c167d0c52b0a669 attempt-2/qualify-863-run-2/runner.txt +2755ce28eef6429c5b2a9614ce93a5accb24c525b1ed8f9c3a6129e45037274a attempt-2/qualify-863-run-2/timings.jsonl +6b346c76367499fc3f597008f78c9c4ad8bcebbcebbb53642ccc08921377f8ac attempt-2/qualify-863-run-3/acceptance.txt +a8fc37c923791be24df2df7711ed6118637bd87ac23e54bce1c2e01e9f2f2b1c attempt-2/qualify-863-run-3/criterion.txt +c3ffbced99b441dd0895f14b56b8d7e5d277d4e8417da01dca27709950d850cc attempt-2/qualify-863-run-3/estimates/1-benchmark.json +a6257cda5c07fb284e11db3c5e3598c60104b5af7317bc229847e3f802a95456 attempt-2/qualify-863-run-3/estimates/1-estimates.json +b66568576f5e0e602658adf10a2e396f88849b90be03f511fd8dc9c6fbb488f5 attempt-2/qualify-863-run-3/estimates/2-benchmark.json +7c7cc4409d5324d0ffa70d94a1f3516a22439aa74338560bb5ba278fb84854dd attempt-2/qualify-863-run-3/estimates/2-estimates.json +5637d12615de0bdf80e18e57484ed8b49106aae2b0fe573d9f4fca9b8335f054 attempt-2/qualify-863-run-3/estimates/3-benchmark.json +19b59a6eaf672306e69fba0e810fbd47a827c504f3c81501e52bcd593cdfb36f attempt-2/qualify-863-run-3/estimates/3-estimates.json +67cf34e69cd947b081433e654a934f5f6f754ffef9c709f329a6ee5a708259f5 attempt-2/qualify-863-run-3/estimates/4-benchmark.json +57a3ef674967e09f862a0b0713113c153f1f0f68b1988fbdfa7805fe7b87ff15 attempt-2/qualify-863-run-3/estimates/4-estimates.json +24e09446ef28fcf851cdb58c92723cc203655e0b630b52e28d0c1c5c3a67e728 attempt-2/qualify-863-run-3/estimates/5-benchmark.json +8772a890e4289cd1ca8de1d12b0c2aa8b7a8237746be538c3d7a3fa82666c5af attempt-2/qualify-863-run-3/estimates/5-estimates.json +29850422a68c53df6581529161bd52222520a3db65e71156567dab2298bc2b33 attempt-2/qualify-863-run-3/estimates/6-benchmark.json +041c706989249381f8a4bfa0235244bae7643ba151b1e6e8d74062800dc6fd27 attempt-2/qualify-863-run-3/estimates/6-estimates.json +0729cd953a688c107aa4f21718251e47b62e14fa459bea03f7c645b9fd3f9d63 attempt-2/qualify-863-run-3/runner.txt +2bef40c1780686750cf253654152e1fb6714d68392b22b70340fd0e27f8a42c9 attempt-2/qualify-863-run-3/timings.jsonl +ff7f2a15fa87d3492ec30c40a0e9b3921ced72c265d670776d17bed8446535d1 summary.json diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/acceptance.txt b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/acceptance.txt new file mode 100644 index 000000000..463480f5b --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/acceptance.txt @@ -0,0 +1,64 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) + Finished `bench` profile [optimized + debuginfo] target(s) in 29.75s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n1_skew_running_sum_streams_by_partition ... PEAK_CHECK n1 partitioned_bytes=9073864 full_bytes=10000032 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 2.03s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.04s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n2_set_membership_k256 ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 2.55s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n3_sort_heap_holds_offset_plus_limit ... PEAK_CHECK n3 heap_bytes=2856056 full_bytes=5600000 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.82s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n4_small_tree_takes_ancestor_alternative ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n5_committed_tree_uses_bound_value_probes ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.07s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n6_held_cursor_quarantine_and_reuse ... CHURN_CHECK n6 held_growth_bytes=10280960 after_growth_bytes=0 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 1.75s + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/criterion.txt b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/criterion.txt new file mode 100644 index 000000000..701e40c26 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/criterion.txt @@ -0,0 +1,872 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 56.77s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking window/nightly_candidates/skew_running_sum/100k +Benchmarking window/nightly_candidates/skew_running_sum/100k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 7.0s. +Benchmarking window/nightly_candidates/skew_running_sum/100k: Collecting 10 samples in estimated 7.0205 s (10 iterations) +Benchmarking window/nightly_candidates/skew_running_sum/100k: Analyzing +window/nightly_candidates/skew_running_sum/100k + time: [703.81 ms 714.57 ms 726.89 ms] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.04s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/set_membership_k256/10k +Benchmarking query/nightly_candidates/set_membership_k256/10k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 8.3s. +Benchmarking query/nightly_candidates/set_membership_k256/10k: Collecting 10 samples in estimated 8.3456 s (10 iterations) +Benchmarking query/nightly_candidates/set_membership_k256/10k: Analyzing +query/nightly_candidates/set_membership_k256/10k + time: [761.09 ms 791.01 ms 825.35 ms] +Found 2 outliers among 10 measurements (20.00%) + 2 (20.00%) high mild + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.04s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_desc/100k +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Warming up for 3.0000 s +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Collecting 10 samples in estimated 6.2271 s (110 iterations) +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Analyzing +query/nightly_candidates/sort_offset_desc/100k + time: [56.382 ms 58.103 ms 60.184 ms] +Found 2 outliers among 10 measurements (20.00%) + 1 (10.00%) high mild + 1 (10.00%) high severe + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.04s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_asc/100k +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Warming up for 3.0000 s +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Collecting 10 samples in estimated 5.4439 s (495 iterations) +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Analyzing +query/nightly_candidates/sort_offset_asc/100k + time: [11.015 ms 11.098 ms 11.156 ms] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.04s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Warming up for 3.0000 s +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Collecting 10 samples in estimated 5.0014 s (47k iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k1_pending/1110 + time: [102.75 µs 103.05 µs 103.58 µs] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high severe + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.04s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Warming up for 3.0000 s +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Collecting 10 samples in estimated 5.9311 s (110 iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k16_committed/1110 + time: [54.057 ms 54.663 ms 55.566 ms] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high mild + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/1-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/1-benchmark.json new file mode 100644 index 000000000..478311832 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/1-benchmark.json @@ -0,0 +1 @@ +{"group_id":"window/nightly_candidates","function_id":"skew_running_sum","value_str":"100k","throughput":null,"full_id":"window/nightly_candidates/skew_running_sum/100k","directory_name":"window_nightly_candidates/skew_running_sum/100k","title":"window/nightly_candidates/skew_running_sum/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/1-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/1-estimates.json new file mode 100644 index 000000000..acd08cc76 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/1-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":703814210.9,"upper_bound":726886442.5},"point_estimate":714570075.0,"standard_error":5957142.642460678},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":700740681.5,"upper_bound":729880220.0},"point_estimate":704780390.5,"standard_error":8159299.690771173},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1537857.2159975767,"upper_bound":30577238.226145506},"point_estimate":8960928.38601172,"standard_error":7903808.125420474},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5639457.290766042,"upper_bound":23998043.535908185},"point_estimate":19811773.29843756,"standard_error":4180286.319343268}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/2-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/2-benchmark.json new file mode 100644 index 000000000..fb5ae2e85 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/2-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"set_membership_k256","value_str":"10k","throughput":null,"full_id":"query/nightly_candidates/set_membership_k256/10k","directory_name":"query_nightly_candidates/set_membership_k256/10k","title":"query/nightly_candidates/set_membership_k256/10k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/2-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/2-estimates.json new file mode 100644 index 000000000..058cf8819 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/2-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":761085370.1325,"upper_bound":825349452.3},"point_estimate":791005238.8,"standard_error":16549338.210449664},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":749367459.5,"upper_bound":837458570.5},"point_estimate":785831977.0,"standard_error":17376270.395344637},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1975433.996129036,"upper_bound":86874949.93286133},"point_estimate":39529577.16920972,"standard_error":22453036.58506932},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21716678.78662551,"upper_bound":69928824.08218327},"point_estimate":55230718.69658094,"standard_error":12383168.696176123}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/3-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/3-benchmark.json new file mode 100644 index 000000000..f49505392 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/3-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_asc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_asc/100k","directory_name":"query_nightly_candidates/sort_offset_asc/100k","title":"query/nightly_candidates/sort_offset_asc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/3-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/3-estimates.json new file mode 100644 index 000000000..ce0fdb59c --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/3-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10946983.159907408,"upper_bound":11131934.744876545},"point_estimate":11042094.540895063,"standard_error":47710.63220324987},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10873606.283333333,"upper_bound":11183391.543209877},"point_estimate":11111449.70972222,"standard_error":98782.59031088435},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":18489.751371740374,"upper_bound":251807.94835822048},"point_estimate":128313.42472948253,"standard_error":66878.71109921514},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11014614.739879414,"upper_bound":11155669.718725719},"point_estimate":11098424.178354979,"standard_error":35388.98700531431},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":97807.69355268283,"upper_bound":177718.46429158773},"point_estimate":158789.56087585588,"standard_error":19933.655652318328}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/4-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/4-benchmark.json new file mode 100644 index 000000000..b633b0168 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/4-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_desc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_desc/100k","directory_name":"query_nightly_candidates/sort_offset_desc/100k","title":"query/nightly_candidates/sort_offset_desc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/4-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/4-estimates.json new file mode 100644 index 000000000..532238894 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/4-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56473321.963174604,"upper_bound":60061871.68650794},"point_estimate":58083658.41144842,"standard_error":924970.6742268922},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56095380.98611111,"upper_bound":59992606.13571429},"point_estimate":56792005.38333333,"standard_error":915168.6695586878},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":258449.0616074502,"upper_bound":4457037.593756767},"point_estimate":1668822.181647486,"standard_error":1044423.8122266493},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56381975.03517588,"upper_bound":60183965.275459096},"point_estimate":58103329.20779221,"standard_error":1083277.047491936},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":904929.121803505,"upper_bound":4189303.208521689},"point_estimate":3101811.99630305,"standard_error":884512.4833398901}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/5-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/5-benchmark.json new file mode 100644 index 000000000..104262441 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/5-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k16_committed","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k16_committed/1110","title":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/5-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/5-estimates.json new file mode 100644 index 000000000..e3744420e --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/5-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":54291310.182500005,"upper_bound":55595053.052976176},"point_estimate":54900390.72630952,"standard_error":334394.4772470888},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":54037451.571428575,"upper_bound":55617747.3125},"point_estimate":54733283.66666667,"standard_error":412811.9664951496},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":171954.29239719923,"upper_bound":1784666.9926658291},"point_estimate":906442.7913574193,"standard_error":418720.61561912537},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":54057303.10185185,"upper_bound":55565547.67852814},"point_estimate":54663337.69090909,"standard_error":385966.80358942377},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":511792.4335927306,"upper_bound":1470108.216648336},"point_estimate":1109641.6258496926,"standard_error":255950.32691730684}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/6-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/6-benchmark.json new file mode 100644 index 000000000..08c9b8c96 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/6-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k1_pending","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k1_pending/1110","title":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/6-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/6-estimates.json new file mode 100644 index 000000000..4f5a822d3 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/estimates/6-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":103080.61831531682,"upper_bound":104569.83887951104},"point_estimate":103720.7377688619,"standard_error":388.50031576193726},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":102960.17182770664,"upper_bound":104185.90439464492},"point_estimate":103316.7686124508,"standard_error":305.5763068656847},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":122.29746938000437,"upper_bound":1590.3155002848976},"point_estimate":560.9329921601955,"standard_error":394.42574416603765},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":102746.5650456018,"upper_bound":103581.76391414109},"point_estimate":103047.98103805391,"standard_error":215.45198740742887},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":328.89619563725495,"upper_bound":1825.608661841731},"point_estimate":1287.1210444748774,"standard_error":421.11518892046246}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/runner.txt b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/runner.txt new file mode 100644 index 000000000..74901091f --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/runner.txt @@ -0,0 +1,7 @@ +run=1 +sha=ad3265851a8933e1de78c2b193f41067b1a34209 +image=ubuntu26 20261101.186.1 +nproc=4 +model name : AMD EPYC 9V45 96-Core Processor +Mem: 15983 1031 14125 41 1168 14951 +rustc 1.99.1 (58cf8f9c3 2026-10-13) diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/timings.jsonl b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/timings.jsonl new file mode 100644 index 000000000..3b1169b86 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-1/timings.jsonl @@ -0,0 +1,12 @@ +{"kind":"criterion","id":"window/nightly_candidates/skew_running_sum/100k","seconds":108.497} +{"kind":"criterion","id":"query/nightly_candidates/set_membership_k256/10k","seconds":61.063} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_desc/100k","seconds":40.281} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_asc/100k","seconds":42.42} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","seconds":30.49} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","seconds":32.717} +{"kind":"acceptance","test":"n1_skew_running_sum_streams_by_partition","seconds":31.808} +{"kind":"acceptance","test":"n2_set_membership_k256","seconds":2.614} +{"kind":"acceptance","test":"n3_sort_heap_holds_offset_plus_limit","seconds":0.89} +{"kind":"acceptance","test":"n4_small_tree_takes_ancestor_alternative","seconds":0.081} +{"kind":"acceptance","test":"n5_committed_tree_uses_bound_value_probes","seconds":0.144} +{"kind":"acceptance","test":"n6_held_cursor_quarantine_and_reuse","seconds":1.817} diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/acceptance.txt b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/acceptance.txt new file mode 100644 index 000000000..985b9a046 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/acceptance.txt @@ -0,0 +1,64 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) + Finished `bench` profile [optimized + debuginfo] target(s) in 32.80s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n1_skew_running_sum_streams_by_partition ... PEAK_CHECK n1 partitioned_bytes=9073864 full_bytes=10000032 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 2.50s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n2_set_membership_k256 ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 2.95s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n3_sort_heap_holds_offset_plus_limit ... PEAK_CHECK n3 heap_bytes=2856056 full_bytes=5600000 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.83s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n4_small_tree_takes_ancestor_alternative ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n5_committed_tree_uses_bound_value_probes ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.08s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n6_held_cursor_quarantine_and_reuse ... CHURN_CHECK n6 held_growth_bytes=10280960 after_growth_bytes=0 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 1.93s + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/criterion.txt b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/criterion.txt new file mode 100644 index 000000000..eb9a33719 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/criterion.txt @@ -0,0 +1,875 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 1m 00s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking window/nightly_candidates/skew_running_sum/100k +Benchmarking window/nightly_candidates/skew_running_sum/100k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 9.8s. +Benchmarking window/nightly_candidates/skew_running_sum/100k: Collecting 10 samples in estimated 9.8238 s (10 iterations) +Benchmarking window/nightly_candidates/skew_running_sum/100k: Analyzing +window/nightly_candidates/skew_running_sum/100k + time: [970.63 ms 977.98 ms 987.37 ms] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high mild + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/set_membership_k256/10k +Benchmarking query/nightly_candidates/set_membership_k256/10k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 9.6s. +Benchmarking query/nightly_candidates/set_membership_k256/10k: Collecting 10 samples in estimated 9.6123 s (10 iterations) +Benchmarking query/nightly_candidates/set_membership_k256/10k: Analyzing +query/nightly_candidates/set_membership_k256/10k + time: [939.44 ms 952.05 ms 966.21 ms] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_desc/100k +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Warming up for 3.0000 s +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Collecting 10 samples in estimated 8.6113 s (110 iterations) +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Analyzing +query/nightly_candidates/sort_offset_desc/100k + time: [77.788 ms 78.887 ms 80.113 ms] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high mild + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_asc/100k +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Warming up for 3.0000 s +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Collecting 10 samples in estimated 5.8333 s (385 iterations) +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Analyzing +query/nightly_candidates/sort_offset_asc/100k + time: [15.105 ms 15.133 ms 15.158 ms] +Found 3 outliers among 10 measurements (30.00%) + 1 (10.00%) low severe + 1 (10.00%) low mild + 1 (10.00%) high mild + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Warming up for 3.0000 s +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Collecting 10 samples in estimated 5.0055 s (38k iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k1_pending/1110 + time: [132.58 µs 132.80 µs 133.02 µs] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) low mild + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Warming up for 3.0000 s +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Collecting 10 samples in estimated 8.4394 s (110 iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k16_committed/1110 + time: [76.866 ms 77.028 ms 77.224 ms] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high mild + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/1-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/1-benchmark.json new file mode 100644 index 000000000..478311832 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/1-benchmark.json @@ -0,0 +1 @@ +{"group_id":"window/nightly_candidates","function_id":"skew_running_sum","value_str":"100k","throughput":null,"full_id":"window/nightly_candidates/skew_running_sum/100k","directory_name":"window_nightly_candidates/skew_running_sum/100k","title":"window/nightly_candidates/skew_running_sum/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/1-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/1-estimates.json new file mode 100644 index 000000000..bdc2e3036 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/1-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":970633895.6,"upper_bound":987372027.5},"point_estimate":977984587.2,"standard_error":4347484.480944373},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":968275418.0,"upper_bound":985402959.0},"point_estimate":973083548.0,"standard_error":4266932.952545516},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1948127.4698138237,"upper_bound":19833782.856979966},"point_estimate":7970952.646887302,"standard_error":4580652.640235835},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4836610.170028726,"upper_bound":20510606.67459241},"point_estimate":14507138.948418196,"standard_error":4474079.509891748}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/2-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/2-benchmark.json new file mode 100644 index 000000000..fb5ae2e85 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/2-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"set_membership_k256","value_str":"10k","throughput":null,"full_id":"query/nightly_candidates/set_membership_k256/10k","directory_name":"query_nightly_candidates/set_membership_k256/10k","title":"query/nightly_candidates/set_membership_k256/10k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/2-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/2-estimates.json new file mode 100644 index 000000000..77ac0835d --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/2-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":939440734.5,"upper_bound":966209127.8175},"point_estimate":952045247.5,"standard_error":6851187.179781412},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":932983745.0,"upper_bound":971782280.5},"point_estimate":946437540.5,"standard_error":10268780.974093024},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3857135.056722164,"upper_bound":39019628.75396311},"point_estimate":21020388.417613506,"standard_error":10032092.821639022},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11394631.833837356,"upper_bound":28291793.537067164},"point_estimate":22811196.29860113,"standard_error":4359952.558369338}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/3-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/3-benchmark.json new file mode 100644 index 000000000..f49505392 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/3-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_asc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_asc/100k","directory_name":"query_nightly_candidates/sort_offset_asc/100k","title":"query/nightly_candidates/sort_offset_asc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/3-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/3-estimates.json new file mode 100644 index 000000000..d275ce9c9 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/3-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":15094850.76142857,"upper_bound":15150344.36047619},"point_estimate":15124750.602380952,"standard_error":14241.523712638762},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":15101701.5,"upper_bound":15150112.547619049},"point_estimate":15132978.05,"standard_error":9973.380787636104},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4744.457585769119,"upper_bound":78201.18644165192},"point_estimate":19089.76664108921,"standard_error":18583.3151636626},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":15104966.0722135,"upper_bound":15157839.851179536},"point_estimate":15133192.675695732,"standard_error":13394.12061533028},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":16766.728986771242,"upper_bound":65747.10523446878},"point_estimate":47445.6796775029,"standard_error":12984.969629669162}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/4-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/4-benchmark.json new file mode 100644 index 000000000..b633b0168 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/4-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_desc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_desc/100k","directory_name":"query_nightly_candidates/sort_offset_desc/100k","title":"query/nightly_candidates/sort_offset_desc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/4-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/4-estimates.json new file mode 100644 index 000000000..ac0c9428c --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/4-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":77579567.51380952,"upper_bound":79081209.18714288},"point_estimate":78268803.10603175,"standard_error":385167.4509162757},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":77353635.625,"upper_bound":78846506.75},"point_estimate":78097379.86666667,"standard_error":377807.74292198865},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":142941.7347622764,"upper_bound":1833965.6621606085},"point_estimate":907364.5808293776,"standard_error":438900.21171040955},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":77787985.69964664,"upper_bound":80112787.99275362},"point_estimate":78887091.1025974,"standard_error":660485.5568441764},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":498753.0337379105,"upper_bound":1799047.5901881896},"point_estimate":1282791.9747891384,"standard_error":362457.9877846358}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/5-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/5-benchmark.json new file mode 100644 index 000000000..104262441 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/5-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k16_committed","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k16_committed/1110","title":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/5-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/5-estimates.json new file mode 100644 index 000000000..1a4de7481 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/5-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":76873669.17065576,"upper_bound":77455012.23801985},"point_estimate":77128378.7528373,"standard_error":150386.11147296068},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":76721892.07142857,"upper_bound":77327242.08333333},"point_estimate":76999813.1388889,"standard_error":160022.10744517914},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":43578.47285965833,"upper_bound":696779.9342984186},"point_estimate":418708.37743312365,"standard_error":152587.65516821784},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":76865673.34407216,"upper_bound":77223550.09523809},"point_estimate":77027831.29220779,"standard_error":91098.91671638246},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":194593.83107912025,"upper_bound":715383.0579694186},"point_estimate":499946.98401296145,"standard_error":158606.14964483603}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/6-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/6-benchmark.json new file mode 100644 index 000000000..08c9b8c96 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/6-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k1_pending","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k1_pending/1110","title":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/6-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/6-estimates.json new file mode 100644 index 000000000..5c5966f15 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/estimates/6-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":132531.64567552734,"upper_bound":133019.65884435},"point_estimate":132787.36692931078,"standard_error":125.07050932724387},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":132550.31049652272,"upper_bound":133067.542654398},"point_estimate":132799.90033270948,"standard_error":117.6022458080818},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64.35482767845173,"upper_bound":700.1633166914138},"point_estimate":254.28572283267786,"standard_error":166.70825764087527},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":132581.08903775355,"upper_bound":133015.85734564663},"point_estimate":132797.5273332199,"standard_error":111.12089818316936},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":188.53659305451166,"upper_bound":561.5142998183941},"point_estimate":417.83041872594106,"standard_error":99.09344248714177}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/runner.txt b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/runner.txt new file mode 100644 index 000000000..4c4258c73 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/runner.txt @@ -0,0 +1,7 @@ +run=2 +sha=ad3265851a8933e1de78c2b193f41067b1a34209 +image=ubuntu26 20261101.186.1 +nproc=4 +model name : AMD EPYC 9V74 80-Core Processor +Mem: 15983 1089 14063 45 1177 14893 +rustc 1.99.1 (58cf8f9c3 2026-10-13) diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/timings.jsonl b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/timings.jsonl new file mode 100644 index 000000000..543121768 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-2/timings.jsonl @@ -0,0 +1,12 @@ +{"kind":"criterion","id":"window/nightly_candidates/skew_running_sum/100k","seconds":122.195} +{"kind":"criterion","id":"query/nightly_candidates/set_membership_k256/10k","seconds":72.741} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_desc/100k","seconds":48.829} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_asc/100k","seconds":45.204} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","seconds":34.556} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","seconds":39.532} +{"kind":"acceptance","test":"n1_skew_running_sum_streams_by_partition","seconds":35.325} +{"kind":"acceptance","test":"n2_set_membership_k256","seconds":3.026} +{"kind":"acceptance","test":"n3_sort_heap_holds_offset_plus_limit","seconds":0.908} +{"kind":"acceptance","test":"n4_small_tree_takes_ancestor_alternative","seconds":0.087} +{"kind":"acceptance","test":"n5_committed_tree_uses_bound_value_probes","seconds":0.161} +{"kind":"acceptance","test":"n6_held_cursor_quarantine_and_reuse","seconds":2.009} diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/acceptance.txt b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/acceptance.txt new file mode 100644 index 000000000..698ed73f7 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/acceptance.txt @@ -0,0 +1,64 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) + Finished `bench` profile [optimized + debuginfo] target(s) in 34.17s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n1_skew_running_sum_streams_by_partition ... PEAK_CHECK n1 partitioned_bytes=9073864 full_bytes=10000032 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 2.49s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n2_set_membership_k256 ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 2.97s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n3_sort_heap_holds_offset_plus_limit ... PEAK_CHECK n3 heap_bytes=2856056 full_bytes=5600000 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.95s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n4_small_tree_takes_ancestor_alternative ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n5_committed_tree_uses_bound_value_probes ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.08s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-df9e97076cb284e8) + +running 1 test +test n6_held_cursor_quarantine_and_reuse ... CHURN_CHECK n6 held_growth_bytes=10280960 after_growth_bytes=0 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 1.77s + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/criterion.txt b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/criterion.txt new file mode 100644 index 000000000..191775403 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/criterion.txt @@ -0,0 +1,872 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 1m 04s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking window/nightly_candidates/skew_running_sum/100k +Benchmarking window/nightly_candidates/skew_running_sum/100k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 9.8s. +Benchmarking window/nightly_candidates/skew_running_sum/100k: Collecting 10 samples in estimated 9.8109 s (10 iterations) +Benchmarking window/nightly_candidates/skew_running_sum/100k: Analyzing +window/nightly_candidates/skew_running_sum/100k + time: [978.84 ms 989.17 ms 1.0040 s] +Found 2 outliers among 10 measurements (20.00%) + 1 (10.00%) high mild + 1 (10.00%) high severe + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/set_membership_k256/10k +Benchmarking query/nightly_candidates/set_membership_k256/10k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 10.6s. +Benchmarking query/nightly_candidates/set_membership_k256/10k: Collecting 10 samples in estimated 10.614 s (10 iterations) +Benchmarking query/nightly_candidates/set_membership_k256/10k: Analyzing +query/nightly_candidates/set_membership_k256/10k + time: [996.65 ms 1.0158 s 1.0342 s] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.12s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_desc/100k +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Warming up for 3.0000 s +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Collecting 10 samples in estimated 9.3090 s (110 iterations) +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Analyzing +query/nightly_candidates/sort_offset_desc/100k + time: [81.810 ms 84.017 ms 85.934 ms] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_asc/100k +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Warming up for 3.0000 s +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Collecting 10 samples in estimated 5.7251 s (385 iterations) +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Analyzing +query/nightly_candidates/sort_offset_asc/100k + time: [14.824 ms 14.867 ms 14.929 ms] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high mild + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Warming up for 3.0000 s +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Collecting 10 samples in estimated 5.0067 s (38k iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k1_pending/1110 + time: [132.61 µs 133.09 µs 133.70 µs] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high severe + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-b1bb1439ad4d5c66) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Warming up for 3.0000 s +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Collecting 10 samples in estimated 8.3478 s (110 iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k16_committed/1110 + time: [75.667 ms 76.014 ms 76.376 ms] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high severe + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/1-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/1-benchmark.json new file mode 100644 index 000000000..478311832 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/1-benchmark.json @@ -0,0 +1 @@ +{"group_id":"window/nightly_candidates","function_id":"skew_running_sum","value_str":"100k","throughput":null,"full_id":"window/nightly_candidates/skew_running_sum/100k","directory_name":"window_nightly_candidates/skew_running_sum/100k","title":"window/nightly_candidates/skew_running_sum/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/1-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/1-estimates.json new file mode 100644 index 000000000..451a2c519 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/1-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":978838535.9,"upper_bound":1004025081.3},"point_estimate":989171463.1,"standard_error":6657859.115318985},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":977015645.0,"upper_bound":995289893.5},"point_estimate":980904279.5,"standard_error":4272567.674807728},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":824535.3732615709,"upper_bound":21533885.435897112},"point_estimate":10097969.888225198,"standard_error":5347557.367386306},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4646108.412558789,"upper_bound":32826736.56228629},"point_estimate":22183851.066328455,"standard_error":8621218.849385059}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/2-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/2-benchmark.json new file mode 100644 index 000000000..fb5ae2e85 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/2-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"set_membership_k256","value_str":"10k","throughput":null,"full_id":"query/nightly_candidates/set_membership_k256/10k","directory_name":"query_nightly_candidates/set_membership_k256/10k","title":"query/nightly_candidates/set_membership_k256/10k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/2-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/2-estimates.json new file mode 100644 index 000000000..d2fa00c0e --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/2-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":996651698.3,"upper_bound":1034235214.0724999},"point_estimate":1015826728.9,"standard_error":9687844.204835655},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":985140760.5,"upper_bound":1047626401.0},"point_estimate":1024328286.0,"standard_error":19326046.42938096},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1187745.680013299,"upper_bound":53958379.47744727},"point_estimate":35729530.365774035,"standard_error":14713506.331166968},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":20781769.526902035,"upper_bound":37684314.74400887},"point_estimate":32338485.726471297,"standard_error":4344853.036922708}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/3-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/3-benchmark.json new file mode 100644 index 000000000..f49505392 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/3-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_asc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_asc/100k","directory_name":"query_nightly_candidates/sort_offset_asc/100k","title":"query/nightly_candidates/sort_offset_asc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/3-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/3-estimates.json new file mode 100644 index 000000000..b3e13b561 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/3-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14825753.257414967,"upper_bound":14980664.689999998},"point_estimate":14894042.39312925,"standard_error":40059.73484188991},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14806481.2,"upper_bound":14953577.13095238},"point_estimate":14845053.044217687,"standard_error":42619.196630935585},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":16417.530465672873,"upper_bound":176854.39625306262},"point_estimate":97997.08721020339,"standard_error":42144.55987734548},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14823611.420288343,"upper_bound":14928810.685232047},"point_estimate":14867478.443784786,"standard_error":27147.471235867488},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":50209.5160590346,"upper_bound":190547.53983189326},"point_estimate":134243.79006407285,"standard_error":41787.847507428756}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/4-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/4-benchmark.json new file mode 100644 index 000000000..b633b0168 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/4-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_desc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_desc/100k","directory_name":"query_nightly_candidates/sort_offset_desc/100k","title":"query/nightly_candidates/sort_offset_desc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/4-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/4-estimates.json new file mode 100644 index 000000000..001658cb5 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/4-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":81254532.68892857,"upper_bound":84183140.35809125},"point_estimate":82641568.87503967,"standard_error":749862.3098552627},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":81103648.58333334,"upper_bound":84113199.47222221},"point_estimate":82022115.00714286,"standard_error":873270.6972990179},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":332194.3770773783,"upper_bound":4207474.515977408},"point_estimate":1857827.0209086388,"standard_error":985275.0052627466},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":81810237.76984127,"upper_bound":85934374.01669893},"point_estimate":84016518.84025975,"standard_error":1108701.2856521858},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1158542.025931172,"upper_bound":3374353.022895536},"point_estimate":2497052.511231135,"standard_error":589904.6360824115}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/5-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/5-benchmark.json new file mode 100644 index 000000000..104262441 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/5-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k16_committed","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k16_committed/1110","title":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/5-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/5-estimates.json new file mode 100644 index 000000000..3003c12a7 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/5-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":75710834.26904762,"upper_bound":76482193.53210317},"point_estimate":76034716.12001984,"standard_error":203087.21306545034},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":75629366.69444445,"upper_bound":76204265.73333333},"point_estimate":75848494.65625,"standard_error":143340.07860370315},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":83558.16079156083,"upper_bound":701576.7704645174},"point_estimate":350788.3852322587,"standard_error":167680.12853279352},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":75667076.04110567,"upper_bound":76376113.40022676},"point_estimate":76013840.66363636,"standard_error":184408.91218165573},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":174955.09712885722,"upper_bound":997674.8860116826},"point_estimate":680460.3066648255,"standard_error":249422.0251584679}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/6-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/6-benchmark.json new file mode 100644 index 000000000..08c9b8c96 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/6-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k1_pending","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k1_pending/1110","title":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/6-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/6-estimates.json new file mode 100644 index 000000000..4db58b500 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/estimates/6-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":132439.51974667778,"upper_bound":133222.56962250834},"point_estimate":132797.29974413992,"standard_error":201.57441884643274},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":132343.27156007753,"upper_bound":133073.68691860465},"point_estimate":132730.25290697673,"standard_error":167.31179362864725},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":88.77677909250059,"upper_bound":953.9378295903788},"point_estimate":374.30664749717124,"standard_error":238.38238458902782},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":132610.91015793514,"upper_bound":133703.40872495907},"point_estimate":133090.28424947147,"standard_error":298.05173031850694},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":263.12413047469596,"upper_bound":939.872463905705},"point_estimate":672.4825449410994,"standard_error":193.07489743657223}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/runner.txt b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/runner.txt new file mode 100644 index 000000000..42a56c2f6 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/runner.txt @@ -0,0 +1,7 @@ +run=3 +sha=ad3265851a8933e1de78c2b193f41067b1a34209 +image=ubuntu26 20261101.186.1 +nproc=4 +model name : AMD EPYC 9V74 80-Core Processor +Mem: 15983 980 14172 45 1177 15003 +rustc 1.99.1 (58cf8f9c3 2026-10-13) diff --git a/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/timings.jsonl b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/timings.jsonl new file mode 100644 index 000000000..4a91db6c9 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-1/qualify-863-run-3/timings.jsonl @@ -0,0 +1,12 @@ +{"kind":"criterion","id":"window/nightly_candidates/skew_running_sum/100k","seconds":148.759} +{"kind":"criterion","id":"query/nightly_candidates/set_membership_k256/10k","seconds":83.284} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_desc/100k","seconds":61.801} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_asc/100k","seconds":50.55} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","seconds":49.703} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","seconds":44.645} +{"kind":"acceptance","test":"n1_skew_running_sum_streams_by_partition","seconds":36.69} +{"kind":"acceptance","test":"n2_set_membership_k256","seconds":3.042} +{"kind":"acceptance","test":"n3_sort_heap_holds_offset_plus_limit","seconds":1.026} +{"kind":"acceptance","test":"n4_small_tree_takes_ancestor_alternative","seconds":0.085} +{"kind":"acceptance","test":"n5_committed_tree_uses_bound_value_probes","seconds":0.162} +{"kind":"acceptance","test":"n6_held_cursor_quarantine_and_reuse","seconds":1.843} diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/acceptance.txt b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/acceptance.txt new file mode 100644 index 000000000..058c91f8f --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/acceptance.txt @@ -0,0 +1,64 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) + Finished `bench` profile [optimized + debuginfo] target(s) in 37.17s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n1_skew_running_sum_streams_by_partition ... PEAK_CHECK n1 partitioned_bytes=9073864 full_bytes=10000032 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 3.08s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n2_set_membership_k256 ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 3.43s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n3_sort_heap_holds_offset_plus_limit ... PEAK_CHECK n3 heap_bytes=2856056 full_bytes=5600000 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.87s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n4_small_tree_takes_ancestor_alternative ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n5_committed_tree_uses_bound_value_probes ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.10s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n6_held_cursor_quarantine_and_reuse ... CHURN_CHECK n6 held_growth_bytes=10280960 after_growth_bytes=0 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 2.18s + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/criterion.txt b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/criterion.txt new file mode 100644 index 000000000..9ad8527a8 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/criterion.txt @@ -0,0 +1,869 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 1m 06s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking window/nightly_candidates/skew_running_sum/100k +Benchmarking window/nightly_candidates/skew_running_sum/100k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 11.6s. +Benchmarking window/nightly_candidates/skew_running_sum/100k: Collecting 10 samples in estimated 11.593 s (10 iterations) +Benchmarking window/nightly_candidates/skew_running_sum/100k: Analyzing +window/nightly_candidates/skew_running_sum/100k + time: [1.1495 s 1.1552 s 1.1617 s] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.08s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/set_membership_k256/10k +Benchmarking query/nightly_candidates/set_membership_k256/10k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 11.7s. +Benchmarking query/nightly_candidates/set_membership_k256/10k: Collecting 10 samples in estimated 11.682 s (10 iterations) +Benchmarking query/nightly_candidates/set_membership_k256/10k: Analyzing +query/nightly_candidates/set_membership_k256/10k + time: [1.1797 s 1.1890 s 1.1986 s] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.07s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_desc/100k +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Warming up for 3.0000 s +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Collecting 10 samples in estimated 9.5334 s (110 iterations) +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Analyzing +query/nightly_candidates/sort_offset_desc/100k + time: [86.967 ms 87.172 ms 87.537 ms] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high severe + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_asc/100k +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Warming up for 3.0000 s +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Collecting 10 samples in estimated 5.1116 s (275 iterations) +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Analyzing +query/nightly_candidates/sort_offset_asc/100k + time: [18.597 ms 18.638 ms 18.676 ms] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high mild + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Warming up for 3.0000 s +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Collecting 10 samples in estimated 5.0080 s (28k iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k1_pending/1110 + time: [178.06 µs 178.36 µs 178.62 µs] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 5.0s or enable flat sampling. +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Collecting 10 samples in estimated 5.0140 s (55 iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k16_committed/1110 + time: [91.243 ms 91.529 ms 91.885 ms] + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/1-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/1-benchmark.json new file mode 100644 index 000000000..478311832 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/1-benchmark.json @@ -0,0 +1 @@ +{"group_id":"window/nightly_candidates","function_id":"skew_running_sum","value_str":"100k","throughput":null,"full_id":"window/nightly_candidates/skew_running_sum/100k","directory_name":"window_nightly_candidates/skew_running_sum/100k","title":"window/nightly_candidates/skew_running_sum/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/1-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/1-estimates.json new file mode 100644 index 000000000..ee3061bb2 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/1-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1149490451.1775,"upper_bound":1161720690.1325},"point_estimate":1155232247.2,"standard_error":3128427.0781759433},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1145556853.0,"upper_bound":1162569123.0},"point_estimate":1153193291.5,"standard_error":4083303.3764164136},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2164074.8276799917,"upper_bound":17989091.939529777},"point_estimate":11491417.418986559,"standard_error":3836990.140294077},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5272996.95112792,"upper_bound":13727294.895949496},"point_estimate":10380000.18637786,"standard_error":2309807.874903111}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/2-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/2-benchmark.json new file mode 100644 index 000000000..fb5ae2e85 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/2-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"set_membership_k256","value_str":"10k","throughput":null,"full_id":"query/nightly_candidates/set_membership_k256/10k","directory_name":"query_nightly_candidates/set_membership_k256/10k","title":"query/nightly_candidates/set_membership_k256/10k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/2-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/2-estimates.json new file mode 100644 index 000000000..4607dcdd5 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/2-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1179733635.9075,"upper_bound":1198591364.325},"point_estimate":1188978435.0,"standard_error":4821390.662349929},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1173067103.0,"upper_bound":1199561393.0},"point_estimate":1192206824.0,"standard_error":7192870.1542131575},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1263255.2379727364,"upper_bound":28965328.10666263},"point_estimate":21282036.919668317,"standard_error":7085794.749926642},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9662181.593226751,"upper_bound":20115547.09824709},"point_estimate":16077932.085452897,"standard_error":2749339.2951594493}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/3-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/3-benchmark.json new file mode 100644 index 000000000..f49505392 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/3-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_asc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_asc/100k","directory_name":"query_nightly_candidates/sort_offset_asc/100k","title":"query/nightly_candidates/sort_offset_asc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/3-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/3-estimates.json new file mode 100644 index 000000000..1ef7cf3a3 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/3-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":18565363.320857145,"upper_bound":18740674.936499998},"point_estimate":18646775.884912696,"standard_error":44762.89605865683},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":18541737.6625,"upper_bound":18719398.344444446},"point_estimate":18629467.934285715,"standard_error":44777.875350505434},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33057.602213108796,"upper_bound":238570.5076494771},"point_estimate":104824.11767900045,"standard_error":50760.650313097605},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":18596745.538197424,"upper_bound":18675937.429850746},"point_estimate":18638288.445194807,"standard_error":19807.469416521955},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":64441.02230399688,"upper_bound":203655.97021837367},"point_estimate":149349.75719832565,"standard_error":38140.288491948864}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/4-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/4-benchmark.json new file mode 100644 index 000000000..b633b0168 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/4-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_desc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_desc/100k","directory_name":"query_nightly_candidates/sort_offset_desc/100k","title":"query/nightly_candidates/sort_offset_desc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/4-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/4-estimates.json new file mode 100644 index 000000000..59ebcf150 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/4-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":86937854.96555558,"upper_bound":87322069.6160893},"point_estimate":87091374.35269842,"standard_error":103526.4694649722},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":86906417.44444445,"upper_bound":87150445.07142857},"point_estimate":86982076.94999999,"standard_error":56839.29149142438},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3716.663980673363,"upper_bound":262554.2753287134},"point_estimate":141884.19973105562,"standard_error":79335.02577676899},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":86966539.39787799,"upper_bound":87537483.70972222},"point_estimate":87171865.55324675,"standard_error":161795.9752158082},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":74622.79472139088,"upper_bound":521825.02693242853},"point_estimate":344946.31041919667,"standard_error":146663.14573633336}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/5-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/5-benchmark.json new file mode 100644 index 000000000..104262441 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/5-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k16_committed","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k16_committed/1110","title":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/5-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/5-estimates.json new file mode 100644 index 000000000..1abcff33a --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/5-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":91184144.53540176,"upper_bound":91724301.52837302},"point_estimate":91444038.97781746,"standard_error":139011.0591930955},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":91077728.36666667,"upper_bound":91786514.5},"point_estimate":91328565.85714287,"standard_error":166033.64876042257},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":22708.31662684237,"upper_bound":753528.594972197},"point_estimate":380869.17026823247,"standard_error":211909.02958049858},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":91243167.77826087,"upper_bound":91884800.91650486},"point_estimate":91529126.35064936,"standard_error":174088.04984904474},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":217865.01457455085,"upper_bound":576703.6382666891},"point_estimate":463885.89188970416,"standard_error":87817.55848158657}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/6-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/6-benchmark.json new file mode 100644 index 000000000..08c9b8c96 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/6-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k1_pending","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k1_pending/1110","title":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/6-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/6-estimates.json new file mode 100644 index 000000000..8b3120675 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/estimates/6-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":178120.77911613343,"upper_bound":178723.3023691716},"point_estimate":178412.738453156,"standard_error":153.81960357297714},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":178010.47265625,"upper_bound":178731.822265625},"point_estimate":178397.92844742065,"standard_error":225.5676395110084},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":76.76639154728899,"upper_bound":922.8258211165667},"point_estimate":505.6551558730722,"standard_error":207.62595462978533},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":178060.98998009003,"upper_bound":178622.66654866535},"point_estimate":178361.53487723213,"standard_error":146.50908981898647},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":283.6218535081058,"upper_bound":671.1643721680857},"point_estimate":514.6403257326017,"standard_error":103.60001584834868}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/runner.txt b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/runner.txt new file mode 100644 index 000000000..0473693a0 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/runner.txt @@ -0,0 +1,7 @@ +run=1 +sha=ad3265851a8933e1de78c2b193f41067b1a34209 +image=ubuntu26 20261101.186.1 +nproc=4 +model name : AMD EPYC 7763 64-Core Processor +Mem: 15983 966 14187 42 1173 15016 +rustc 1.99.1 (58cf8f9c3 2026-10-13) diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/timings.jsonl b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/timings.jsonl new file mode 100644 index 000000000..709ef4aef --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-1/timings.jsonl @@ -0,0 +1,12 @@ +{"kind":"criterion","id":"window/nightly_candidates/skew_running_sum/100k","seconds":127.309} +{"kind":"criterion","id":"query/nightly_candidates/set_membership_k256/10k","seconds":75.725} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_desc/100k","seconds":50.908} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_asc/100k","seconds":45.528} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","seconds":36.266} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","seconds":37.589} +{"kind":"acceptance","test":"n1_skew_running_sum_streams_by_partition","seconds":40.282} +{"kind":"acceptance","test":"n2_set_membership_k256","seconds":3.519} +{"kind":"acceptance","test":"n3_sort_heap_holds_offset_plus_limit","seconds":0.96} +{"kind":"acceptance","test":"n4_small_tree_takes_ancestor_alternative","seconds":0.098} +{"kind":"acceptance","test":"n5_committed_tree_uses_bound_value_probes","seconds":0.185} +{"kind":"acceptance","test":"n6_held_cursor_quarantine_and_reuse","seconds":2.268} diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/acceptance.txt b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/acceptance.txt new file mode 100644 index 000000000..095e259d6 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/acceptance.txt @@ -0,0 +1,64 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) + Finished `bench` profile [optimized + debuginfo] target(s) in 34.00s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n1_skew_running_sum_streams_by_partition ... PEAK_CHECK n1 partitioned_bytes=9073864 full_bytes=10000032 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 2.51s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n2_set_membership_k256 ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 2.89s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n3_sort_heap_holds_offset_plus_limit ... PEAK_CHECK n3 heap_bytes=2856056 full_bytes=5600000 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.96s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n4_small_tree_takes_ancestor_alternative ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n5_committed_tree_uses_bound_value_probes ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.08s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n6_held_cursor_quarantine_and_reuse ... CHURN_CHECK n6 held_growth_bytes=10280960 after_growth_bytes=0 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 1.95s + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/criterion.txt b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/criterion.txt new file mode 100644 index 000000000..17b3b389a --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/criterion.txt @@ -0,0 +1,867 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 1m 03s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking window/nightly_candidates/skew_running_sum/100k +Benchmarking window/nightly_candidates/skew_running_sum/100k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 9.8s. +Benchmarking window/nightly_candidates/skew_running_sum/100k: Collecting 10 samples in estimated 9.7616 s (10 iterations) +Benchmarking window/nightly_candidates/skew_running_sum/100k: Analyzing +window/nightly_candidates/skew_running_sum/100k + time: [967.62 ms 972.74 ms 978.64 ms] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high mild + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/set_membership_k256/10k +Benchmarking query/nightly_candidates/set_membership_k256/10k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 10.2s. +Benchmarking query/nightly_candidates/set_membership_k256/10k: Collecting 10 samples in estimated 10.169 s (10 iterations) +Benchmarking query/nightly_candidates/set_membership_k256/10k: Analyzing +query/nightly_candidates/set_membership_k256/10k + time: [960.73 ms 983.86 ms 1.0078 s] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.08s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_desc/100k +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Warming up for 3.0000 s +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Collecting 10 samples in estimated 8.7289 s (110 iterations) +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Analyzing +query/nightly_candidates/sort_offset_desc/100k + time: [79.961 ms 80.893 ms 82.125 ms] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_asc/100k +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Warming up for 3.0000 s +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Collecting 10 samples in estimated 5.6316 s (385 iterations) +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Analyzing +query/nightly_candidates/sort_offset_asc/100k + time: [14.612 ms 14.634 ms 14.654 ms] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high severe + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.05s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Warming up for 3.0000 s +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Collecting 10 samples in estimated 5.0054 s (38k iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k1_pending/1110 + time: [133.65 µs 133.89 µs 134.11 µs] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.06s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Warming up for 3.0000 s +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Collecting 10 samples in estimated 8.2638 s (110 iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k16_committed/1110 + time: [75.399 ms 75.526 ms 75.600 ms] + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/1-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/1-benchmark.json new file mode 100644 index 000000000..478311832 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/1-benchmark.json @@ -0,0 +1 @@ +{"group_id":"window/nightly_candidates","function_id":"skew_running_sum","value_str":"100k","throughput":null,"full_id":"window/nightly_candidates/skew_running_sum/100k","directory_name":"window_nightly_candidates/skew_running_sum/100k","title":"window/nightly_candidates/skew_running_sum/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/1-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/1-estimates.json new file mode 100644 index 000000000..5f9f13f70 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/1-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":967622166.6,"upper_bound":978642952.695},"point_estimate":972740028.2,"standard_error":2814444.308286651},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":966101910.5,"upper_bound":977204910.5},"point_estimate":972050000.5,"standard_error":2855470.7997293803},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2489117.080709338,"upper_bound":14303085.243469477},"point_estimate":6513343.37836504,"standard_error":3057557.0975821954},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3987703.9815182653,"upper_bound":13023761.675749859},"point_estimate":9392163.10467731,"standard_error":2522568.131353895}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/2-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/2-benchmark.json new file mode 100644 index 000000000..fb5ae2e85 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/2-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"set_membership_k256","value_str":"10k","throughput":null,"full_id":"query/nightly_candidates/set_membership_k256/10k","directory_name":"query_nightly_candidates/set_membership_k256/10k","title":"query/nightly_candidates/set_membership_k256/10k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/2-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/2-estimates.json new file mode 100644 index 000000000..02d238f87 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/2-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":960728816.4,"upper_bound":1007782905.5825},"point_estimate":983861732.7,"standard_error":12058708.646808224},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":953293387.0,"upper_bound":1032184786.0},"point_estimate":971734955.0,"standard_error":17927106.899568435},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2348008.404314518,"upper_bound":66498927.63320804},"point_estimate":32852391.667753458,"standard_error":17392199.957416628},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21216779.903015036,"upper_bound":48249312.730755635},"point_estimate":40091742.68421338,"standard_error":6486422.2027506335}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/3-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/3-benchmark.json new file mode 100644 index 000000000..f49505392 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/3-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_asc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_asc/100k","directory_name":"query_nightly_candidates/sort_offset_asc/100k","title":"query/nightly_candidates/sort_offset_asc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/3-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/3-estimates.json new file mode 100644 index 000000000..bc8929491 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/3-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14618546.141065758,"upper_bound":14722224.640249435},"point_estimate":14658725.791678002,"standard_error":28541.497430486263},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14612032.257142857,"upper_bound":14658059.015873015},"point_estimate":14631186.535714287,"standard_error":12666.752493906442},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5941.148744523525,"upper_bound":58808.66683451114},"point_estimate":27406.84891343163,"standard_error":14480.460070745803},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14612098.03555579,"upper_bound":14653536.209044607},"point_estimate":14634329.367717996,"standard_error":10475.77642493052},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":16293.452393634298,"upper_bound":145739.3431378077},"point_estimate":95473.34848442292,"standard_error":43692.75710044046}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/4-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/4-benchmark.json new file mode 100644 index 000000000..b633b0168 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/4-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_desc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_desc/100k","directory_name":"query_nightly_candidates/sort_offset_desc/100k","title":"query/nightly_candidates/sort_offset_desc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/4-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/4-estimates.json new file mode 100644 index 000000000..58efa8511 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/4-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":79842839.72714284,"upper_bound":83358907.80880456},"point_estimate":81535253.03575398,"standard_error":895834.9785459959},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":79261272.7625,"upper_bound":83770077.57142857},"point_estimate":80990682.68055555,"standard_error":1063589.6664953544},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":591279.2908076898,"upper_bound":4897033.931743607},"point_estimate":3052977.5912038055,"standard_error":1207494.329183866},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":79960836.22653061,"upper_bound":82125011.02945788},"point_estimate":80893354.47792208,"standard_error":553120.7431336205},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1525027.8519327226,"upper_bound":3841052.7974200593},"point_estimate":2982166.6073149843,"standard_error":602090.4724107828}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/5-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/5-benchmark.json new file mode 100644 index 000000000..104262441 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/5-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k16_committed","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k16_committed/1110","title":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/5-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/5-estimates.json new file mode 100644 index 000000000..ae45f613f --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/5-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":75320922.74851191,"upper_bound":75600347.70295635},"point_estimate":75463644.99295634,"standard_error":71737.69983535446},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":75253587.08333333,"upper_bound":75641784.6875},"point_estimate":75514281.55,"standard_error":112125.92476714938},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21946.75679369964,"upper_bound":386533.3093276487},"point_estimate":239680.2357948268,"standard_error":97860.73058147164},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":75398856.23019177,"upper_bound":75600026.66566265},"point_estimate":75525776.91948052,"standard_error":51141.945707036735},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":138723.94732181187,"upper_bound":303770.263712593},"point_estimate":239565.27588952443,"standard_error":43143.70293160773}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/6-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/6-benchmark.json new file mode 100644 index 000000000..08c9b8c96 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/6-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k1_pending","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k1_pending/1110","title":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/6-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/6-estimates.json new file mode 100644 index 000000000..280f2671e --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/estimates/6-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":133451.51486615845,"upper_bound":134061.0405492319},"point_estimate":133763.86323198042,"standard_error":157.0715994672741},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":133421.22155214427,"upper_bound":134296.65285899935},"point_estimate":133795.26639254385,"standard_error":203.25125394797172},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":61.435507352286194,"upper_bound":943.6648433038296},"point_estimate":615.9943778833419,"standard_error":221.02159024765604},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":133653.1316407331,"upper_bound":134110.398288499},"point_estimate":133886.95805802385,"standard_error":117.06952809218552},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":292.6798912545735,"upper_bound":678.997997407579},"point_estimate":525.9376231442725,"standard_error":102.78964444927706}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/runner.txt b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/runner.txt new file mode 100644 index 000000000..8b1e82511 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/runner.txt @@ -0,0 +1,7 @@ +run=2 +sha=ad3265851a8933e1de78c2b193f41067b1a34209 +image=ubuntu26 20261101.186.1 +nproc=4 +model name : AMD EPYC 9V74 80-Core Processor +Mem: 15983 1018 14133 46 1179 14964 +rustc 1.99.1 (58cf8f9c3 2026-10-13) diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/timings.jsonl b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/timings.jsonl new file mode 100644 index 000000000..8d8481def --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-2/timings.jsonl @@ -0,0 +1,12 @@ +{"kind":"criterion","id":"window/nightly_candidates/skew_running_sum/100k","seconds":125.155} +{"kind":"criterion","id":"query/nightly_candidates/set_membership_k256/10k","seconds":72.727} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_desc/100k","seconds":61.062} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_asc/100k","seconds":49.221} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","seconds":37.174} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","seconds":42.009} +{"kind":"acceptance","test":"n1_skew_running_sum_streams_by_partition","seconds":36.536} +{"kind":"acceptance","test":"n2_set_membership_k256","seconds":2.971} +{"kind":"acceptance","test":"n3_sort_heap_holds_offset_plus_limit","seconds":1.041} +{"kind":"acceptance","test":"n4_small_tree_takes_ancestor_alternative","seconds":0.085} +{"kind":"acceptance","test":"n5_committed_tree_uses_bound_value_probes","seconds":0.161} +{"kind":"acceptance","test":"n6_held_cursor_quarantine_and_reuse","seconds":2.025} diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/acceptance.txt b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/acceptance.txt new file mode 100644 index 000000000..66ae01808 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/acceptance.txt @@ -0,0 +1,64 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) + Finished `bench` profile [optimized + debuginfo] target(s) in 45.26s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n1_skew_running_sum_streams_by_partition ... PEAK_CHECK n1 partitioned_bytes=9073864 full_bytes=10000032 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 3.61s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.08s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n2_set_membership_k256 ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 4.18s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.08s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n3_sort_heap_holds_offset_plus_limit ... PEAK_CHECK n3 heap_bytes=2856056 full_bytes=5600000 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 1.12s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.08s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n4_small_tree_takes_ancestor_alternative ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.07s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n5_committed_tree_uses_bound_value_probes ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.12s + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Finished `bench` profile [optimized + debuginfo] target(s) in 0.07s + Running tests/nightly_candidates_acceptance_test.rs (target/release/deps/nightly_candidates_acceptance_test-1a5cb55a4ca16d75) + +running 1 test +test n6_held_cursor_quarantine_and_reuse ... CHURN_CHECK n6 held_growth_bytes=10280960 after_growth_bytes=0 +ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 2.37s + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/criterion.txt b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/criterion.txt new file mode 100644 index 000000000..93390b073 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/criterion.txt @@ -0,0 +1,871 @@ +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning + Compiling minigraf v2.0.5 (/home/runner/work/minigraf/minigraf) +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 1m 20s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking window/nightly_candidates/skew_running_sum/100k +Benchmarking window/nightly_candidates/skew_running_sum/100k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 14.3s. +Benchmarking window/nightly_candidates/skew_running_sum/100k: Collecting 10 samples in estimated 14.295 s (10 iterations) +Benchmarking window/nightly_candidates/skew_running_sum/100k: Analyzing +window/nightly_candidates/skew_running_sum/100k + time: [1.4203 s 1.4236 s 1.4268 s] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.08s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/set_membership_k256/10k +Benchmarking query/nightly_candidates/set_membership_k256/10k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 14.6s. +Benchmarking query/nightly_candidates/set_membership_k256/10k: Collecting 10 samples in estimated 14.632 s (10 iterations) +Benchmarking query/nightly_candidates/set_membership_k256/10k: Analyzing +query/nightly_candidates/set_membership_k256/10k + time: [1.4265 s 1.4418 s 1.4563 s] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.08s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_desc/100k +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 6.4s or enable flat sampling. +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Collecting 10 samples in estimated 6.3593 s (55 iterations) +Benchmarking query/nightly_candidates/sort_offset_desc/100k: Analyzing +query/nightly_candidates/sort_offset_desc/100k + time: [114.89 ms 115.69 ms 116.30 ms] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.08s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking query/nightly_candidates/sort_offset_asc/100k +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Warming up for 3.0000 s +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Collecting 10 samples in estimated 5.9152 s (275 iterations) +Benchmarking query/nightly_candidates/sort_offset_asc/100k: Analyzing +query/nightly_candidates/sort_offset_asc/100k + time: [21.465 ms 21.535 ms 21.601 ms] +Found 1 outliers among 10 measurements (10.00%) + 1 (10.00%) high mild + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.08s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Warming up for 3.0000 s +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Collecting 10 samples in estimated 5.0020 s (25k iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k1_pending/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k1_pending/1110 + time: [199.73 µs 199.92 µs 200.28 µs] + +warning: Cargo.toml: `panic` setting is ignored for `bench` profile +warning: `minigraf` (manifest) generated 1 warning +warning: unused import: `super::*` + --> benches/simd_helpers.rs:120:9 + | +120 | use super::*; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:64:53 + | +64 | use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group}; + | ^^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:327:21 + | +327 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:372:21 + | +372 | black_box(rows) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:419:21 + | +419 | black_box(results) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:35 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:1642:56 + | +1642 | b.iter(|| black_box(db.execute(black_box(&query)).expect("window query"))); + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:53 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2035:70 + | +2035 | .filter(|&(&vf, &vt)| vf <= black_box(ts) && black_box(ts) < vt) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2043:25 + | +2043 | black_box(&valid_from), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2044:25 + | +2044 | black_box(&valid_to), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2045:25 + | +2045 | black_box(ts), + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2071:46 + | +2071 | .filter(|&&tc| tc <= black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:53 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2078:76 + | +2078 | simd_helpers::as_of_filter_simd(black_box(&tx_counts), black_box(threshold)) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2099:27 + | +2099 | b.iter(|| black_box(&values).iter().copied().sum::()) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench.rs:2103:54 + | +2103 | b.iter(|| simd_helpers::sum_simd_i64(black_box(&values))) + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:1:41 + | +1 | use criterion::{BenchmarkId, Criterion, black_box}; + | ^^^^^^^^^ + +warning: use of deprecated function `criterion::black_box`: use `std::hint::black_box()` instead + --> benches/minigraf_bench/history.rs:70:27 + | +70 | b.iter(|| black_box(db.execute(q).unwrap())); + | ^^^^^^^^^ + +warning: use of deprecated trait `wide::CmpGt`: use the inherent function `simd_gt` instead + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: unused import: `CmpGt` + --> benches/simd_helpers.rs:19:12 + | +19 | use wide::{CmpGt, i64x4, u64x4}; + | ^^^^^ + +warning: `minigraf` (bench "minigraf_bench") generated 21 warnings (run `cargo fix --bench "minigraf_bench" -p minigraf` to apply 1 suggestion) + Finished `bench` profile [optimized + debuginfo] target(s) in 0.08s + Running benches/minigraf_bench.rs (target/release/deps/minigraf_bench-83cc2342ae53671b) +Gnuplot not found, using plotters backend +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110 +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Warming up for 3.0000 s + +Warning: Unable to complete 10 samples in 5.0s. You may wish to increase target time to 6.0s or enable flat sampling. +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Collecting 10 samples in estimated 5.9691 s (55 iterations) +Benchmarking recursion/nightly_candidates/tree_ancestors_k16_committed/1110: Analyzing +recursion/nightly_candidates/tree_ancestors_k16_committed/1110 + time: [108.09 ms 108.38 ms 108.62 ms] +Found 2 outliers among 10 measurements (20.00%) + 2 (20.00%) high mild + diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/1-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/1-benchmark.json new file mode 100644 index 000000000..478311832 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/1-benchmark.json @@ -0,0 +1 @@ +{"group_id":"window/nightly_candidates","function_id":"skew_running_sum","value_str":"100k","throughput":null,"full_id":"window/nightly_candidates/skew_running_sum/100k","directory_name":"window_nightly_candidates/skew_running_sum/100k","title":"window/nightly_candidates/skew_running_sum/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/1-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/1-estimates.json new file mode 100644 index 000000000..7a78f8062 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/1-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1420341523.81,"upper_bound":1426797777.2575002},"point_estimate":1423601337.0,"standard_error":1649699.1609738483},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1419727051.0,"upper_bound":1427626249.0},"point_estimate":1423699820.0,"standard_error":2153648.8826992703},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1327484.4340324402,"upper_bound":9391726.71906352},"point_estimate":5293689.18171823,"standard_error":2063915.9852223282},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2911099.1494011716,"upper_bound":7256024.837342889},"point_estimate":5520452.556012354,"standard_error":1117180.056646236}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/2-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/2-benchmark.json new file mode 100644 index 000000000..fb5ae2e85 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/2-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"set_membership_k256","value_str":"10k","throughput":null,"full_id":"query/nightly_candidates/set_membership_k256/10k","directory_name":"query_nightly_candidates/set_membership_k256/10k","title":"query/nightly_candidates/set_membership_k256/10k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/2-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/2-estimates.json new file mode 100644 index 000000000..e4f16cb5e --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/2-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1426529228.6,"upper_bound":1456330464.3300002},"point_estimate":1441846576.2,"standard_error":7594005.323900345},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1422798956.5,"upper_bound":1462133036.0},"point_estimate":1440914877.0,"standard_error":8529428.464447772},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3310031.944835186,"upper_bound":47825351.16173029},"point_estimate":20687555.843022466,"standard_error":11314488.372613734},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":13322349.820042443,"upper_bound":31915802.642942652},"point_estimate":25172584.028575122,"standard_error":4809948.969782485}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/3-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/3-benchmark.json new file mode 100644 index 000000000..f49505392 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/3-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_asc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_asc/100k","directory_name":"query_nightly_candidates/sort_offset_asc/100k","title":"query/nightly_candidates/sort_offset_asc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/3-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/3-estimates.json new file mode 100644 index 000000000..80a8ed6eb --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/3-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21505306.298445236,"upper_bound":21666470.923285715},"point_estimate":21581106.938785713,"standard_error":41547.913836024134},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21473591.4,"upper_bound":21693882.525},"point_estimate":21557456.820833333,"standard_error":47267.7849235387},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24458.943141765838,"upper_bound":231661.78339818033},"point_estimate":101996.27973670521,"standard_error":52756.904588720645},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21464891.385185186,"upper_bound":21600792.24862745},"point_estimate":21535376.472207792,"standard_error":35543.85004202016},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":57348.91903085054,"upper_bound":176293.596033055},"point_estimate":138146.04673814974,"standard_error":30274.391559046166}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/4-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/4-benchmark.json new file mode 100644 index 000000000..b633b0168 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/4-benchmark.json @@ -0,0 +1 @@ +{"group_id":"query/nightly_candidates","function_id":"sort_offset_desc","value_str":"100k","throughput":null,"full_id":"query/nightly_candidates/sort_offset_desc/100k","directory_name":"query_nightly_candidates/sort_offset_desc/100k","title":"query/nightly_candidates/sort_offset_desc/100k"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/4-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/4-estimates.json new file mode 100644 index 000000000..55054bdfb --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/4-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":114457099.30428572,"upper_bound":116021767.14809524},"point_estimate":115272554.44178572,"standard_error":398818.19520132366},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":114353763.0,"upper_bound":116414236.375},"point_estimate":115461510.27142859,"standard_error":515354.1378189129},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":347744.1203463122,"upper_bound":2181700.1614920795},"point_estimate":1340034.3648221344,"standard_error":486546.5009911135},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":114893116.81818181,"upper_bound":116299365.11991666},"point_estimate":115693861.34545454,"standard_error":355613.1447612916},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":661449.8859302043,"upper_bound":1687424.931888047},"point_estimate":1320085.5087969713,"standard_error":264590.29844317917}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/5-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/5-benchmark.json new file mode 100644 index 000000000..104262441 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/5-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k16_committed","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k16_committed/1110","title":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/5-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/5-estimates.json new file mode 100644 index 000000000..d927b2baf --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/5-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":108169080.44088988,"upper_bound":109150634.30821428},"point_estimate":108614976.43154761,"standard_error":253125.27671205535},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":108013427.625,"upper_bound":109244870.33333333},"point_estimate":108398312.92857143,"standard_error":248577.8897056249},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":137619.3032267734,"upper_bound":1223143.848684857},"point_estimate":486101.7398274734,"standard_error":272001.3188485558},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":108091217.52980132,"upper_bound":108622665.73026316},"point_estimate":108378911.01038961,"standard_error":136183.98438177482},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":265558.7385430344,"upper_bound":1076854.0699908605},"point_estimate":844210.1080074536,"standard_error":213015.53801344955}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/6-benchmark.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/6-benchmark.json new file mode 100644 index 000000000..08c9b8c96 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/6-benchmark.json @@ -0,0 +1 @@ +{"group_id":"recursion/nightly_candidates","function_id":"tree_ancestors_k1_pending","value_str":"1110","throughput":null,"full_id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","directory_name":"recursion_nightly_candidates/tree_ancestors_k1_pending/1110","title":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110"} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/6-estimates.json b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/6-estimates.json new file mode 100644 index 000000000..af2c925a9 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/estimates/6-estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":199980.5987529588,"upper_bound":200704.9929020468},"point_estimate":200327.17889915765,"standard_error":185.14741699207337},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":199777.24829434697,"upper_bound":200765.23859649122},"point_estimate":200264.5808662281,"standard_error":255.90235867547173},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":123.53211557001346,"upper_bound":1059.4902267129403},"point_estimate":677.381581263537,"standard_error":238.3533393267718},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":199728.41384130646,"upper_bound":200277.80709586467},"point_estimate":199923.9448051948,"standard_error":141.0850282181275},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":320.5887232997178,"upper_bound":776.7679447362434},"point_estimate":621.0972888347013,"standard_error":115.13081621018202}} \ No newline at end of file diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/runner.txt b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/runner.txt new file mode 100644 index 000000000..70d3c9327 --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/runner.txt @@ -0,0 +1,7 @@ +run=3 +sha=ad3265851a8933e1de78c2b193f41067b1a34209 +image=ubuntu26 20261101.186.1 +nproc=4 +model name : AMD EPYC 9V74 80-Core Processor +Mem: 15983 994 14156 42 1176 14988 +rustc 1.99.1 (58cf8f9c3 2026-10-13) diff --git a/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/timings.jsonl b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/timings.jsonl new file mode 100644 index 000000000..b5d92aeaa --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/attempt-2/qualify-863-run-3/timings.jsonl @@ -0,0 +1,12 @@ +{"kind":"criterion","id":"window/nightly_candidates/skew_running_sum/100k","seconds":155.234} +{"kind":"criterion","id":"query/nightly_candidates/set_membership_k256/10k","seconds":91.83} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_desc/100k","seconds":53.522} +{"kind":"criterion","id":"query/nightly_candidates/sort_offset_asc/100k","seconds":55.487} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k1_pending/1110","seconds":39.411} +{"kind":"criterion","id":"recursion/nightly_candidates/tree_ancestors_k16_committed/1110","seconds":41.875} +{"kind":"acceptance","test":"n1_skew_running_sum_streams_by_partition","seconds":48.902} +{"kind":"acceptance","test":"n2_set_membership_k256","seconds":4.289} +{"kind":"acceptance","test":"n3_sort_heap_holds_offset_plus_limit","seconds":1.223} +{"kind":"acceptance","test":"n4_small_tree_takes_ancestor_alternative","seconds":0.119} +{"kind":"acceptance","test":"n5_committed_tree_uses_bound_value_probes","seconds":0.224} +{"kind":"acceptance","test":"n6_held_cursor_quarantine_and_reuse","seconds":2.476} diff --git a/docs/benchmarks/863-nightly-candidates/summary.json b/docs/benchmarks/863-nightly-candidates/summary.json new file mode 100644 index 000000000..602e3193c --- /dev/null +++ b/docs/benchmarks/863-nightly-candidates/summary.json @@ -0,0 +1,225 @@ +{ + "runs": [ + "AMD EPYC 9V45 96-Core Processor", + "AMD EPYC 9V74 80-Core Processor", + "AMD EPYC 9V74 80-Core Processor", + "AMD EPYC 7763 64-Core Processor", + "AMD EPYC 9V74 80-Core Processor", + "AMD EPYC 9V74 80-Core Processor" + ], + "speed_factor_ms": [ + 35.42506258176116, + 47.251441536573786, + 48.0561786404889, + 57.54135219891703, + 47.377282524908566, + 69.30847831222255 + ], + "candidates": { + "N1": { + "criterion_ids": [ + "window/nightly_candidates/skew_running_sum/100k" + ], + "acceptance_test": "n1_skew_running_sum_streams_by_partition", + "cost_seconds_per_run": [ + 140.305, + 157.51999999999998, + 185.44899999999998, + 167.591, + 161.691, + 204.13600000000002 + ], + "median_ms_per_run": { + "window/nightly_candidates/skew_running_sum/100k": [ + 704.7803905, + 973.083548, + 980.9042795, + 1153.1932915, + 972.0500005, + 1423.69982 + ] + }, + "normalized_spread": { + "window/nightly_candidates/skew_running_sum/100k": 0.03512281698711682 + }, + "same_model_spread": { + "window/nightly_candidates/skew_running_sum/100k": 0.46463640683882707 + }, + "cross_model_spread": { + "window/nightly_candidates/skew_running_sum/100k": 1.0200616237207867 + }, + "verdict": "qualified", + "reasons": [] + }, + "N2": { + "criterion_ids": [ + "query/nightly_candidates/set_membership_k256/10k" + ], + "acceptance_test": "n2_set_membership_k256", + "cost_seconds_per_run": [ + 63.677, + 75.767, + 86.32600000000001, + 79.244, + 75.69800000000001, + 96.119 + ], + "median_ms_per_run": { + "query/nightly_candidates/set_membership_k256/10k": [ + 785.831977, + 946.4375405, + 1024.328286, + 1192.206824, + 971.734955, + 1440.914877 + ] + }, + "normalized_spread": { + "query/nightly_candidates/set_membership_k256/10k": 0.10749602233451472 + }, + "same_model_spread": { + "query/nightly_candidates/set_membership_k256/10k": 0.5224616684570322 + }, + "cross_model_spread": { + "query/nightly_candidates/set_membership_k256/10k": 0.8336170061453224 + }, + "verdict": "qualified", + "reasons": [] + }, + "N3": { + "criterion_ids": [ + "query/nightly_candidates/sort_offset_desc/100k", + "query/nightly_candidates/sort_offset_asc/100k" + ], + "acceptance_test": "n3_sort_heap_holds_offset_plus_limit", + "cost_seconds_per_run": [ + 83.591, + 94.941, + 113.377, + 97.396, + 111.32399999999998, + 110.232 + ], + "median_ms_per_run": { + "query/nightly_candidates/sort_offset_desc/100k": [ + 56.79200538333333, + 78.09737986666667, + 82.02211500714286, + 86.98207694999999, + 80.99068268055555, + 115.46151027142858 + ], + "query/nightly_candidates/sort_offset_asc/100k": [ + 11.111449709722221, + 15.13297805, + 14.845053044217687, + 18.629467934285714, + 14.631186535714287, + 21.557456820833334 + ] + }, + "normalized_spread": { + "query/nightly_candidates/sort_offset_desc/100k": 0.1308765611853359, + "query/nightly_candidates/sort_offset_asc/100k": 0.04836131647401104 + }, + "same_model_spread": { + "query/nightly_candidates/sort_offset_desc/100k": 0.4784300122302768, + "query/nightly_candidates/sort_offset_asc/100k": 0.4733908810616439 + }, + "cross_model_spread": { + "query/nightly_candidates/sort_offset_desc/100k": 1.0330592218409829, + "query/nightly_candidates/sort_offset_asc/100k": 0.9401119911446961 + }, + "verdict": "qualified", + "reasons": [] + }, + "N4": { + "criterion_ids": [ + "recursion/nightly_candidates/tree_ancestors_k1_pending/1110" + ], + "acceptance_test": "n4_small_tree_takes_ancestor_alternative", + "cost_seconds_per_run": [ + 30.570999999999998, + 34.643, + 49.788000000000004, + 36.364, + 37.259, + 39.53 + ], + "median_ms_per_run": { + "recursion/nightly_candidates/tree_ancestors_k1_pending/1110": [ + 0.1033167686124508, + 0.13279990033270947, + 0.13273025290697674, + 0.17839792844742064, + 0.13379526639254385, + 0.2002645808662281 + ] + }, + "normalized_spread": { + "recursion/nightly_candidates/tree_ancestors_k1_pending/1110": 0.12250699254617622 + }, + "same_model_spread": { + "recursion/nightly_candidates/tree_ancestors_k1_pending/1110": 0.5088088546518661 + }, + "cross_model_spread": { + "recursion/nightly_candidates/tree_ancestors_k1_pending/1110": 0.9383550565488167 + }, + "verdict": "qualified", + "reasons": [] + }, + "N5": { + "criterion_ids": [ + "recursion/nightly_candidates/tree_ancestors_k16_committed/1110" + ], + "acceptance_test": "n5_committed_tree_uses_bound_value_probes", + "cost_seconds_per_run": [ + 32.861, + 39.693, + 44.807, + 37.774, + 42.17, + 42.099 + ], + "median_ms_per_run": { + "recursion/nightly_candidates/tree_ancestors_k16_committed/1110": [ + 54.73328366666667, + 76.9998131388889, + 75.84849465625, + 91.32856585714286, + 75.51428154999999, + 108.39831292857143 + ] + }, + "normalized_spread": { + "recursion/nightly_candidates/tree_ancestors_k16_committed/1110": 0.054711620592318086 + }, + "same_model_spread": { + "recursion/nightly_candidates/tree_ancestors_k16_committed/1110": 0.4354677115851 + }, + "cross_model_spread": { + "recursion/nightly_candidates/tree_ancestors_k16_committed/1110": 0.9804825449306543 + }, + "verdict": "qualified", + "reasons": [] + }, + "N6": { + "criterion_ids": [], + "acceptance_test": "n6_held_cursor_quarantine_and_reuse", + "cost_seconds_per_run": [ + 1.817, + 2.009, + 1.843, + 2.268, + 2.025, + 2.476 + ], + "median_ms_per_run": {}, + "normalized_spread": {}, + "same_model_spread": {}, + "cross_model_spread": {}, + "verdict": "qualified", + "reasons": [] + } + } +} diff --git a/docs/superpowers/plans/2026-11-06-863-nightly-candidates.md b/docs/superpowers/plans/2026-11-06-863-nightly-candidates.md new file mode 100644 index 000000000..1ef38bf56 --- /dev/null +++ b/docs/superpowers/plans/2026-11-06-863-nightly-candidates.md @@ -0,0 +1,258 @@ +# #863 plan: qualify the #841 nightly candidates + +Spec: `docs/superpowers/specs/2026-11-06-863-nightly-candidates-design.md` (5f222758). +Branch `test/863-nightly-candidates` off `v3` at `921b3935`, worktree +`.worktrees/863-nightly-candidates`. Three PRs: + +1. **v3 PR** (this branch): hooks, shared fixtures, Criterion cases, acceptance + test, temporary qualification workflow (removed before merge), evidence, docs. + Body: `Refs #863`. Closing keywords do not fire on `v3`; close #863 by hand + after PRs 2 and 3 merge and the first scheduled run is green. +2. **v3 workflow PR** and 3. **main workflow PR**: identical `smoke.yml` and + `.github/acceptance/` changes, after PR 1 merges. + +Tests, coverage and timings run on the bench machine first (alt bench if busy). +Release size is measured on the laptop with its own `CARGO_TARGET_DIR`. + +## Facts the plan relies on (checked at 921b3935) + +- `Cursor`'s `Debug` prints the stream's operator counters (`operator_paths.rs` + uses it). Operator names: `WindowPartitioned` / `Window` (`window.rs:96`), + `Sort`, `Limit`, `HashJoin` / `IndexNestedLoopJoin` (`join.rs:103`; `Probe` and + `ProbeValue` both print `IndexNestedLoopJoin`, hence the AVET event). +- `Cursor` drops its stream on the pull **after** the last rows + (`cursor.rs:89`). Peaks must be read once the expected row count has been + pulled, before the call that returns `None`. +- `Stream::meter` and `Meter::peak`/`peak_for` are `#[cfg(test)]`. `peak_for` + tracks only `Window`, `Aggregate` and `IdSpace`; Sort has no per-operator peak, + so N3 uses the query's total peak. +- Event sites: `recursive.rs:270` (`Ok(alternative)`), `scan.rs:241` + (`ranges.push((Index::Avet, …))`). +- The #723 alternative needs an empty committed dictionary (pending fixture); + the #721 AVET path needs a committed generation. +- `bench.yml` selects IDs by regex over `--list`; no ID inventory to update. + New IDs under `^window/`, `^query/`, `^recursion/` run nightly on both + branches' v3 schedule automatically. + +## Step 1: hooks (TDD) + +Files: `src/query/engine/mod.rs`, `recursive.rs`, `scan.rs`, `meter.rs`, +`src/cursor.rs`, `src/lib.rs`. + +1. Test first (`src/query/engine/tests.rs`, unit): a pending width-10 tree with a + single-leaf ancestor query records `ancestor_alternative_selected`; the same + fixture checkpointed with 16 demanded leaves records `bound_value_avet_range` + and not the alternative. A query with neither records nothing. Each test + calls `take_path_events()` first to clear the thread's map. +2. `mod.rs`: + ```rust + #[cfg(any(test, feature = "test-hooks"))] + thread_local! { + static PATH_EVENTS: RefCell> = const { RefCell::new(BTreeMap::new()) }; + } + #[inline] + pub(crate) fn path_event(_name: &'static str) { + #[cfg(any(test, feature = "test-hooks"))] + PATH_EVENTS.with(|m| *m.borrow_mut().entry(_name).or_default() += 1); + } + #[cfg(any(test, feature = "test-hooks"))] + pub(crate) fn take_path_events() -> BTreeMap<&'static str, u64> { PATH_EVENTS.with(|m| m.take()) } + ``` + A no-op `#[inline]` call compiles out of release builds. +3. Call `path_event("ancestor_alternative_selected")` before `Ok(alternative)` + and `path_event("bound_value_avet_range")` after the AVET `ranges.push`. + `entity_probe_cache_hit` is not added (spec §3: only events in use). +4. `Stream::meter`: `#[cfg(any(test, feature = "test-hooks"))]`; same for + `Meter::peak`, `tracked`, `peak_for`. Add + `Stream::memory_peak(&self, op: Option<&str>) -> usize` (total or `peak_for`). +5. `cursor.rs`: under `test-hooks` only, + `#[doc(hidden)] pub fn __memory_peak(&self, op: Option<&str>) -> Option` + (`None` once the stream is gone or for an answer computed at open). +6. `lib.rs`: `#[cfg(feature = "test-hooks")] #[doc(hidden)] pub fn __path_events() + -> BTreeMap<&'static str, u64>` with a doc comment like `__input_order`'s. +7. Integration test `tests/path_events_test.rs` (`#![cfg(feature = "test-hooks")]`, + not wasm32): the public `__path_events` and `__memory_peak` give the same + result as step 1 through the public API, and `__memory_peak` is `None` after + the stream ends. +8. Check: `cargo build --profile dist` size unchanged vs `921b3935` (laptop, own + target dirs); `cargo clippy --all-targets --features test-hooks`; plain and + hooks test runs. + +## Step 2: shared shape fixtures + +One source for benches and tests: `benches/helpers/shape.rs`, included by the +acceptance test with `#[path = "../benches/helpers/shape.rs"] mod shape;`. + +Port from `scripts/shape-sweep/native/src/main.rs`, trimmed to the six +candidates: `entity`, `integer`, `part` (skew), `members` (skew), `records` +(window, set, scalar, recursion), `query`, the `Digest` (`mix`, `hash_value`, +`add`) and `oracle`, plus `build_committed` (LogWriter, fixed timestamps, +1,000 facts per tx) and `build_pending` (1,000-fact transacts, +`wal_checkpoint_threshold(usize::MAX)`) into a `TempDir`, and the two rules for +`anc`. Keep the harness's UUID base `0x8410…` and query text, so answers are the +#841 answers. The port drops the harness's `Case`/serde plumbing (plain +functions with explicit parameters), so it needs no new dev-dependency. + +Unit-check the port in the acceptance file (step 4) by comparing each candidate's +drained digest with `oracle`. + +## Step 3: Criterion cases + +New `benches/minigraf_bench/nightly_candidates.rs`, registered in +`minigraf_bench.rs` (`criterion_group!`). One function per route group: + +| ID | Group | Notes | +| --- | --- | --- | +| `window/nightly_candidates/skew_running_sum/100k` | `window/nightly_candidates` | n = 50,000 rows | +| `query/nightly_candidates/set_membership_k256/10k` | `query/nightly_candidates` | | +| `query/nightly_candidates/sort_offset_desc/100k`, `…/sort_offset_asc/100k` | same | `:offset 50000 :limit 1000` | +| `recursion/nightly_candidates/tree_ancestors_k1_pending/1110` | `recursion/nightly_candidates` | pending fixture | +| `recursion/nightly_candidates/tree_ancestors_k16_committed/1110` | same | committed | + +As in `operator_paths.rs`: the fixture is built lazily inside the selected +`bench_function` closure (so `--list` and unselected filters pay nothing), the +answer digest is checked once against `oracle` before `b.iter`, and the timed +body opens the query and drains it with `next_batch(1000)`. `sample_size(10)`, +`measurement_time` sized after a local run so each case stays under ~60 s. +Path checks are not repeated here (they need `test-hooks`; the acceptance job +owns them), except the `Debug` operator-name checks, which are free. + +N6 gets no Criterion case unless step 5 shows a need (spec §3). + +Untimed check: `cargo bench --bench minigraf_bench -- --test 'nightly_candidates'`. + +## Step 4: acceptance test + +`tests/nightly_candidates_acceptance_test.rs`, +`#![cfg(all(feature = "test-hooks", not(target_arch = "wasm32")))]`, one +`#[test] #[ignore = "nightly acceptance (#863)"]` per candidate: + +- `n1_skew_running_sum_streams_by_partition`: `Debug` has `WindowPartitioned`; + digest = oracle; `__memory_peak(Some("Window"))` read after 50,000 rows. Control + under `__input_order(false)`: `Debug` has `Window`, same digest. Assert + partitioned peak ≤ control peak and ≥ 0.8 × control peak (the largest + partition holds 90% of rows). Print `PEAK_CHECK n1 partitioned=… full=…`. +- `n2_set_membership_k256`: digest = oracle (row count 10,000). +- `n3_sort_heap_holds_offset_plus_limit`: descending `Debug` has `Sort`; total + peak read after 1,000 rows; control without `:offset/:limit` (total peak after + 100,000 rows). Assert limited peak ≤ 0.6 × control (51% of rows plus fixed + costs). Ascending: no `Sort` in `Debug`, digest = oracle. Print `PEAK_CHECK n3 …`. +- `n4_small_tree_takes_ancestor_alternative`: events cleared, query drained; + `ancestor_alternative_selected ≥ 1`; digest = oracle. +- `n5_committed_tree_uses_bound_value_probes`: `bound_value_avet_range ≥ 1`, + `ancestor_alternative_selected` absent, no `HashJoin` in `Debug` at open; + digest = oracle. +- `n6_held_cursor_quarantine_and_reuse`: 10k-fact LogWriter fixture, file + database, schedule 32 / 256 / 256 checkpoints, each retracting and asserting + 100 entities' `:pin/value`. The cursor opened at round 32 is read once at the + end and must return the original 10,000 rows. File length (`fs::metadata`) + must grow during the held phase, and stay constant over the last 128 rounds + after release. `verify()` clean at the end. + +Bounds 0.8 and 0.6 are first guesses: run each test once on the bench, record +the measured ratios in the plan's deviations, and keep a bound only if the +measured ratio has at least 25% margin from it; else derive a bound from the +measured value and say why in the test comment. No `{:?}` of values in assert +messages. + +Command (also the smoke.yml one): +`cargo test --profile bench --features test-hooks --test nightly_candidates_acceptance_test -- --ignored --nocapture --test-threads=1`. + +## Step 5: qualification (temporary) + +1. `.github/workflows/qualify-863.yml` on the branch only: + `pull_request` with `paths: [.github/workflows/qualify-863.yml]` plus + `workflow_dispatch` (not usable from a branch, documentation only); matrix + `run: [1, 2, 3]`, `ubuntu-latest`, `timeout-minutes: 60`. Steps (each with + `date +%s` stamps written to `timings.txt`): checkout, stable Rust, cache-less + `cargo bench --bench minigraf_bench --no-run`, then per candidate filter + `cargo bench --bench minigraf_bench -- ''`, then the + acceptance command per test (`--exact`). Upload `target/criterion/**/new/estimates.json`, + `timings.txt`, `uname -a`, `nproc`, runner image version. +2. Push, open PR 1 as draft. Wait for all three runs. If a run fails, fix and + rerun the whole matrix (all three runs must come from one commit). +3. `scripts/qualify_863.py` (stdlib only, kept in the PR) reads the three + downloaded artifacts and writes `docs/benchmarks/863-nightly-candidates/summary.json` + and the table in its `README.md`: per candidate, cost = Criterion step + seconds + acceptance test seconds (max over runs), point estimates, spread + `(max − min) / min`, verdict by spec D3 (≤ 600 s, ≤ 25%). +4. Commit the artifacts (`estimates.json` per ID per run, `timings.txt`) with a + `SHA256SUMS`. +5. Rejected candidates: delete their Criterion case and acceptance test; keep + the reason in the README. If N6's numbers suggest a Criterion case would add + coverage beyond `query/cursor_lifecycle/held_checkpoint_*`, add it and rerun + step 5 for it; otherwise record why not. +6. Last commit removes `qualify-863.yml`. + +## Step 6: docs + +- `docs/benchmarks/863-nightly-candidates/README.md`: protocol (spec §4), runner + facts, the table, verdicts, limits (N2 has no path counter; a nightly route + detects one representative's regression and does not re-establish the #841 + envelope; bench profile is opt-level z). +- `docs/bench-coverage-v3.md`: a dated follow-up paragraph at the top, like the + #837/#840 ones, listing the new IDs with their suites and the acceptance suite; + the #841 proposals resolved. +- `docs/benchmarks/841-shape-sweeps/README.md`: one line under "Nightly + candidates" pointing to the #863 README. +- `CLAUDE.md` (counts, the #841 paragraph mentions #863), `docs/TEST_COVERAGE.md` + (new files and counts, plain and hooks). +- `scripts/shape-sweep/README.md`: note that `benches/helpers/shape.rs` is a + trimmed port; the harness stays authoritative for the sweep. + +## Step 7: verification before PR 1 leaves draft + +- Bench machine: `cargo test` plain and `--features test-hooks` (record counts); + acceptance command; `cargo bench -- --test 'nightly_candidates'`. +- Coverage gates (`scripts/coverage_gates.py`) on the bench with the hooks build + if the new `cfg` lines enter a gated file's branch counts. +- Laptop: `cargo build --profile dist` size equal to base; `cargo fmt --check`; + clippy with and without `test-hooks`; `cargo doc` (doc-hidden items). +- CI green on PR 1 (semver check failing on v3 is expected). +- Codex review skipped while the quota is out (back 2026-11-11), noted in the PR. + +## Step 8: workflow PRs (after PR 1 merges) + +Branch `ci/863-acceptance` off `v3` and `ci/863-acceptance-main` off `main`, same +diff: + +- `smoke.yml`: matrix entry `nightly-candidates` (timeout from step 5's max + acceptance time × 2, at least 20 minutes) with the step 4 command; add + `nightly_candidates` to the availability loop's file list. +- `.github/acceptance/verify.py`: `'nightly-candidates': ([], [])`; `test_verify.py`: a passing and a missing-test case. +- Merge v3 first (merge commit), then main (squash). Dispatch `smoke.yml` on main + with `ref: v3`; the `nightly-candidates` job and its verifier must pass. Then + check the next scheduled v3 nightly bench run selects and uploads the new IDs. + +## Deviations + +(Recorded during implementation.) + +1. **Peak reads.** A cursor drops its stream on any pull that reaches past + the last row (a `next_batch(n)` larger than the rows left refills, gets + `None`, and drops it), not only on the pull after the last rows. Tests read + `__memory_peak` after requesting exactly the rows left. +2. **Event fixtures use UUID refs**, as the #841 fixtures do. With keyword + entities the committed tree takes no bound-value AVET probe (#721 needs the + keyword naming the entity in the query). +3. **N5 has no `HashJoin` check.** A rule query evaluates its strata at open; + those joins are not in the cursor's operator tree, so `Debug` cannot show + them. The events cover the path. +4. **Bounds.** Charged bytes and file sizes are deterministic, so the + step-4 "25% margin" rule does not apply. Measured on the alt bench + (2026-11-06): N1 partitioned/full Window peak 0.907 (9,073,864 / + 10,000,032 B); N3 heap/full total peak 0.51 (2,856,056 / 5,600,000 B); N6 + growth over the last 128 held rounds 10,280,960 B, over the last 128 after + release 0 B. N1's planned `≤ full` would pass a whole-input regression + (1.0); it is a band [0.85, 0.95] instead. N3 keeps ≤ 0.6, N6 keeps ≤ 0.5. +5. **Port check.** `shape_port_matches_the_database` (not ignored) checks + every shape against the database at small sizes on every hooks test run. +6. **Qualification bar amended** (user, 2026-11-06 and 2026-11-07): the + first three runs failed the raw 25% spread only because their CPU models + differed; three more runs showed a 1.46× whole-runner shift within one model + (#678). The verdict uses the spread after dividing each run by its speed + factor (the geometric mean of its timed cases), over six runs at + `ad326585`; all six candidates qualify (3.5–13.1%). The rerun reused the + workflow run (GitHub attempt 3; attempt 2 was cancelled), so the evidence + directories are `attempt-1/` and `attempt-2/`. diff --git a/docs/superpowers/specs/2026-11-06-863-nightly-candidates-design.md b/docs/superpowers/specs/2026-11-06-863-nightly-candidates-design.md new file mode 100644 index 000000000..ecfa1b050 --- /dev/null +++ b/docs/superpowers/specs/2026-11-06-863-nightly-candidates-design.md @@ -0,0 +1,142 @@ +# #863: qualify the #841 shape-sweep nightly candidates + +Issue: [#863](https://github.com/project-minigraf/minigraf/issues/863), a follow-up of +#841. Base: `v3` at `921b3935`. No production behavior, API, file format or +release-binary change. + +## 1. Goal + +The [#841 report](../../benchmarks/841-shape-sweeps/README.md#nightly-candidates-proposals-only) +proposed six small representatives, each guarding one behavior the sweep found. +For each, this work either: + +- **qualifies** it on the GitHub runner and runs it nightly, asserting its answer, + its path and (where that is the behavior) its charged query memory, as well as + its time; or +- **rejects** it with a recorded reason (cost, variance, or a fixture too large + for the runner). + +A nightly route detects a regression in one representative. It does not +re-establish the #841 envelope, and the report says so. + +## 2. Decisions (user, 2026-11-06) + +| # | Decision | +| --- | --- | +| D1 | **Path evidence:** read the cursor's existing `Debug` operator counters (operator names, rows, bytes held) wherever they distinguish the path. Add thread-local event counters only for the events `Debug` cannot show, under the `test-hooks` feature (`cfg(any(test, feature = "test-hooks"))`). The default and `dist` builds do not change. | +| D2 | **Route:** split. Time goes in a Criterion case selected by an existing nightly `bench.yml` filter (Bencher latency, t-test alerts, bench profile). Answer, path and memory go in a named, ignored acceptance test in `smoke.yml`'s v3 acceptance matrix, built with `--features test-hooks`. A path regression fails the acceptance job. A slower runner can only raise a Bencher alert. | +| D3 | **Qualification bar:** at least 3 runs on separate `ubuntu-latest` runners. A candidate is rejected if fixture construction plus measurement takes more than **10 job-minutes**, or its run-to-run spread is over **25%**: `(max − min) / min` of the per-run Criterion point estimates. | +| D3a | **Amended (user, 2026-11-06 and 2026-11-07):** runners differ by CPU model, and one runner can be ~1.46× slower on every case within one model (#678). The 25% bar applies to the spread after dividing each run by its speed factor (the geometric mean of all timed cases in that run), over six runs; raw same-model and cross-model spreads are reported. See the [evidence](../../benchmarks/863-nightly-candidates/README.md). | + +## 3. Candidates + +"Committed" fixtures are built with `LogWriter` (fixed timestamps), as #841 did; +"pending" fixtures are file-backed with `wal_checkpoint_threshold(usize::MAX)`, so +every transaction is replayed from the WAL. Entity UUIDs, fixture records and +queries are the #841 harness's (`scripts/shape-sweep/native/src/main.rs`, +`records` and `query`), so the answers can be compared with the archived #841 +digests. + +| ID | Candidate | Criterion ID (filter) | Path evidence | Memory evidence | +| --- | --- | --- | --- | --- | +| N1 | 50,000 rows (100k facts), 90%-skewed partitions, running `sum`, committed | `window/nightly_candidates/skew_running_sum/100k` (`^window/`) | `Debug` has `WindowPartitioned`, not `Window` | Window's charged peak is at least the largest partition's rows × the per-row estimate and below 2× that; a full-input control (`__input_order(false)`) charges more | +| N2 | 10k entities, `K=256` skewed sets, six membership predicates, committed | `query/nightly_candidates/set_membership_k256/10k` (`^query/`) | Answer only. No event identifies the long value-page path (attribution limit, recorded) | none | +| N3 | 100k facts, descending `:offset 50,000 :limit 1,000`, committed; ascending pair | `query/nightly_candidates/sort_offset_desc/100k` and `…/sort_offset_asc/100k` (`^query/`) | Descending: `Debug` has `Sort`. Ascending: no `Sort` (input-order omission) | Sort's charged peak is bounded by `offset + limit` = 51,000 rows, not 100,000 | +| N4 | 1,110-node width-10 tree, ancestors of one leaf (`k=1`), pending | `recursion/nightly_candidates/tree_ancestors_k1_pending/1110` (`^recursion/`) | Event `ancestor_alternative_selected` ≥ 1 | none | +| N5 | 1,110-node tree, ancestors of 16 demanded leaves (`k=16`), committed | `recursion/nightly_candidates/tree_ancestors_k16_committed/1110` (`^recursion/`) | Event `bound_value_avet_range` ≥ 1; `Debug` has no `HashJoin` | none | +| N6 | 10k facts, one cursor held across the churn schedule (32 baseline, 256 held, 256 after release; 100 entities retracted/asserted per checkpoint) | Acceptance only, unless qualification shows a Criterion case adds coverage that `query/cursor_lifecycle/held_checkpoint_*` lacks | Public API only: the held cursor's answer does not change; the file grows while it is held; after release the file length stops growing within the 256 checkpoints (freed pages reused); `verify()` is clean | none | + +The exact bounds in N1 and N3 (the per-row estimate and factor) are fixed in the +plan from the meter's per-entry estimates, then confirmed against a measured run. +A bound only a broken path can exceed is enough; the acceptance test is not a +precise memory model. + +### Event counters (D1) + +One thread-local `BTreeMap<&'static str, u64>` in `query::engine`, incremented at +three sites, the same as `scripts/shape-sweep/events.py`: + +| Event | Site | +| --- | --- | +| `ancestor_alternative_selected` | `recursive.rs`: a round picks the small in-memory ancestor alternative (#723) | +| `bound_value_avet_range` | `scan.rs`: an AVET range for a bound value is pushed (#721) | +| `entity_probe_cache_hit` | `join.rs`: an entity probe reuses a cached entry | + +`entity_probe_cache_hit` is not checked by any candidate. It is included only if a +candidate's plan turns out to need it; otherwise it is left out (only events in use +are added). + +Exported as `#[doc(hidden)] pub fn __path_events() -> BTreeMap<&'static str, u64>` +(take and reset), next to `__input_order` in `lib.rs`. A `test-hooks` doc-hidden +accessor for one cursor's per-operator meter peak (`Meter::peak_for`) serves N1 +and N3. Queries and cursor pulls run on the calling thread, so the thread-local +maps see the query's own events. + +## 4. Qualification protocol + +1. The v3 PR adds the Criterion cases and the acceptance test. +2. A **temporary** workflow on the PR branch (`pull_request`, path-filtered) + runs a 3-way matrix. Each job, on its own runner, builds with the bench + profile, times the untimed setup that `--list` and selection pay, then runs + `cargo bench --bench minigraf_bench -- ''`, and uploads the + Criterion estimates and step timings. It also runs the acceptance test once + and records its wall time. Nothing is uploaded to Bencher. +3. Evidence is committed under `docs/benchmarks/863-nightly-candidates/`: raw + Criterion `estimates.json`, step timings, runner image, source SHA, and a + summary table per candidate (cost, three point estimates, spread, verdict). +4. The temporary workflow is removed in the PR's last commit, before merge. +5. A rejected candidate's Criterion case and acceptance test are removed; the + reason stays in the evidence README. + +Cost per candidate = its fixture construction + warm-up + measurement inside the +Criterion job, plus its acceptance test's wall time. The shared compile step is +not counted per candidate (it already runs nightly). + +## 5. Wiring + +- **Criterion:** new group files under `benches/minigraf_bench/`, registered in + `benches/minigraf_bench.rs`. Fixtures and answer checks run lazily inside the + selected callback, outside `iter`, as `operator_paths.rs` does. The answer is + checked once before timing (row count and the #841 digest). `bench.yml` needs no + change: selection is by filter. +- **Acceptance:** `tests/nightly_candidates_acceptance_test.rs`, one `#[ignore]`d + test per qualified candidate (`#![cfg(not(target_arch = "wasm32"))]`, + `#![cfg(feature = "test-hooks")]`). Shared CI files, as separate PRs after the + v3 PR merges, identical on both branches: + - `smoke.yml`: matrix entry `nightly-candidates` + (`cargo test --profile bench --features test-hooks --test nightly_candidates_acceptance_test -- --ignored --nocapture --test-threads=1`) + and the file in the acceptance-availability loop; + - `.github/acceptance/verify.py` and its test: `SUITES` entry with the exact test + names (no RSS records). + + The v3 PR goes first, so the scheduled v3 run never sees the availability check + without the test file. + +## 6. Documentation + +- `docs/bench-coverage-v3.md`: the new routes, and the #841 proposals marked + resolved (qualified or rejected, linking the evidence). +- `docs/benchmarks/841-shape-sweeps/README.md`: a pointer from "Nightly + candidates" to the #863 evidence (the original table is kept). +- `CLAUDE.md`, `docs/TEST_COVERAGE.md`: test counts (new ignored tests; test-hooks + counts). +- No CHANGELOG entry and no docs-site change: nothing users see changes. + +## 7. Acceptance criteria (from #863) + +- [ ] Each candidate is qualified with a recorded cost and variance on the + runner, or rejected with a reason. +- [ ] Qualified candidates run nightly, asserting answers, path counters and + (N1, N3) charged memory as well as time. +- [ ] `docs/bench-coverage-v3.md` lists the new routes and marks the #841 + proposals resolved. + +Also: the release binary size is unchanged (the hooks compile only under +`test-hooks`), and every new test follows the Testing Conventions (no `{:?}` of +values in assertion messages). + +## 8. Out of scope + +- Re-running the #841 sweep, or any envelope-profile route (D2). +- Public path counters or a query profiler (#185). +- A Bencher memory metric. diff --git a/scripts/qualify_863.py b/scripts/qualify_863.py new file mode 100644 index 000000000..7848f225a --- /dev/null +++ b/scripts/qualify_863.py @@ -0,0 +1,136 @@ +"""Summarize the #863 qualification runs (spec §4, decision D3 as amended). + +Runs land on different runner CPU models, and a runner can be ~1.4x +slower on every case at once, also within one model (#678). That is the +runner effect the existing nightly suites already have, absorbed by +Bencher's t-test over 30 runs. The verdict therefore uses each case's spread +after dividing every run by its speed factor, the geometric mean of all +timed cases in that run (user decision, 2026-11-07); raw same-model and +cross-model spreads are reported alongside. +""" +import json +import math +import sys +from pathlib import Path + +COST_LIMIT_S = 600 # 10 job-minutes +SPREAD_LIMIT = 0.25 + +# Criterion ID -> acceptance test guarding the same candidate. +CANDIDATES = { + 'N1': (['window/nightly_candidates/skew_running_sum/100k'], + 'n1_skew_running_sum_streams_by_partition'), + 'N2': (['query/nightly_candidates/set_membership_k256/10k'], + 'n2_set_membership_k256'), + 'N3': (['query/nightly_candidates/sort_offset_desc/100k', + 'query/nightly_candidates/sort_offset_asc/100k'], + 'n3_sort_heap_holds_offset_plus_limit'), + 'N4': (['recursion/nightly_candidates/tree_ancestors_k1_pending/1110'], + 'n4_small_tree_takes_ancestor_alternative'), + 'N5': (['recursion/nightly_candidates/tree_ancestors_k16_committed/1110'], + 'n5_committed_tree_uses_bound_value_probes'), + 'N6': ([], 'n6_held_cursor_quarantine_and_reuse'), +} + + +def cpu_model(run_dir): + for line in (Path(run_dir) / 'runner.txt').read_text().splitlines(): + if line.startswith('model name'): + return line.split(':', 1)[1].strip() + raise SystemExit(f'{run_dir}: no CPU model in runner.txt') + + +def load_run(run_dir): + run_dir = Path(run_dir) + timings = [json.loads(line) for line in + (run_dir / 'timings.jsonl').read_text().splitlines() if line.strip()] + seconds = {} + for t in timings: + seconds[t.get('id') or t['test']] = t['seconds'] + estimates = {} + for bench in sorted((run_dir / 'estimates').glob('*-benchmark.json')): + full_id = json.loads(bench.read_text())['full_id'] + est = bench.with_name(bench.name.replace('-benchmark', '-estimates')) + median = json.loads(est.read_text())['median']['point_estimate'] + estimates[full_id] = median / 1e6 # ns -> ms + return cpu_model(run_dir), seconds, estimates + + +def spread(values): + return (max(values) - min(values)) / min(values) + + +def summarize(runs): + if len(runs) < 3: + raise SystemExit('need at least three runs (spec D3)') + models = {} + for model, _, _ in runs: + models[model] = models.get(model, 0) + 1 + timed = [i for ids, _ in CANDIDATES.values() for i in ids] + factors = [math.exp(sum(math.log(e[i]) for i in timed) / len(timed)) + for _, _, e in runs] + out = {} + for name, (ids, test) in CANDIDATES.items(): + costs = [sum(s[i] for i in ids) + s[test] for _, s, _ in runs] + medians, normalized, same, across = {}, {}, {}, {} + for i in ids: + medians[i] = [e[i] for _, _, e in runs] + normalized[i] = spread([e[i] / f for (_, _, e), f in zip(runs, factors)]) + across[i] = spread(medians[i]) + same[i] = max((spread([e[i] for m, _, e in runs if m == model]) + for model, n in models.items() if n >= 2), default=None) + worst = max(normalized.values(), default=0.0) + cost = max(costs) + reasons = [] + if cost > COST_LIMIT_S: + reasons.append(f'cost {cost:.0f} s > {COST_LIMIT_S} s') + if worst > SPREAD_LIMIT: + reasons.append(f'normalized spread {worst:.1%} > {SPREAD_LIMIT:.0%}') + out[name] = { + 'criterion_ids': ids, + 'acceptance_test': test, + 'cost_seconds_per_run': costs, + 'median_ms_per_run': medians, + 'normalized_spread': normalized, + 'same_model_spread': same, + 'cross_model_spread': across, + 'verdict': 'rejected' if reasons else 'qualified', + 'reasons': reasons, + } + return {'runs': [m for m, _, _ in runs], 'speed_factor_ms': factors, + 'candidates': out} + + +def pct(values): + values = [v for v in values if v is not None] + return f'{max(values):.1%}' if values else '—' + + +def table(summary): + lines = ['| Candidate | Max cost (s) | Criterion medians (ms), runs 1–6 | Normalized spread | Same-model spread | Cross-model spread | Verdict |', + '| --- | ---: | --- | ---: | ---: | ---: | --- |'] + for name, s in summary['candidates'].items(): + medians = '
'.join( + f'`{i.split("/", 2)[2]}`: ' + ' / '.join(f'{v:.3f}' for v in vs) + for i, vs in s['median_ms_per_run'].items()) or 'acceptance only' + verdict = s['verdict'] + (f" ({'; '.join(s['reasons'])})" if s['reasons'] else '') + lines.append(f"| {name} | {max(s['cost_seconds_per_run']):.1f} | {medians} | " + f"{pct(s['normalized_spread'].values())} | {pct(s['same_model_spread'].values())} | " + f"{pct(s['cross_model_spread'].values())} | {verdict} |") + runs = ', '.join(f'{i + 1}: {m} (speed factor {f:.2f} ms)' + for i, (m, f) in enumerate(zip(summary['runs'], summary['speed_factor_ms']))) + return '\n'.join(lines) + f'\n\nRuns: {runs}.' + + +def main(argv): + if len(argv) < 3: + raise SystemExit(__doc__) + out_dir = Path(argv[1]) + summary = summarize([load_run(d) for d in argv[2:]]) + out_dir.mkdir(parents=True, exist_ok=True) + (out_dir / 'summary.json').write_text(json.dumps(summary, indent=2) + '\n') + print(table(summary)) + + +if __name__ == '__main__': + main(sys.argv) diff --git a/scripts/shape-sweep/README.md b/scripts/shape-sweep/README.md index beff21ffb..93d011439 100644 --- a/scripts/shape-sweep/README.md +++ b/scripts/shape-sweep/README.md @@ -10,6 +10,11 @@ benchmark machine. Source changes made by `instrument.py`, `variants.py` and `events.py` are restricted to a **disposable checkout**. Never run them in a working checkout with user edits. None adds a shipping feature flag or public API. +`benches/helpers/shape.rs` is a trimmed port of `native/src/main.rs`'s fixtures, +queries and oracles for the six nightly candidates qualified by #863 +([evidence](../../docs/benchmarks/863-nightly-candidates/README.md)). This harness +stays authoritative for the sweep; change the port only to follow it. + ## Build and verify From a fresh disposable checkout of the recorded core revision, with the harness diff --git a/src/cursor.rs b/src/cursor.rs index 7bf94b0b5..85b1ab8b2 100644 --- a/src/cursor.rs +++ b/src/cursor.rs @@ -102,6 +102,16 @@ impl Cursor { self.stream.as_deref_mut() } + /// The most bytes this query's holders counted at once (#863): in total + /// (`None`) or for one tracked op (`Some("Window")`, `"Aggregate"`, + /// `"IdSpace"`). `None` once the stream has ended or for an answer + /// computed at open. Only for tests; built with `test-hooks` only. + #[cfg(feature = "test-hooks")] + #[doc(hidden)] + pub fn __memory_peak(&self, op: Option<&str>) -> Option { + self.stream.as_ref().map(|s| s.memory_peak(op)) + } + /// The engine's operator counters (spec §6.3); empty once the stream is /// done or for an answer computed at open. #[cfg(test)] diff --git a/src/lib.rs b/src/lib.rs index dde2eb59d..65acb83df 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -154,6 +154,16 @@ pub fn __input_order(on: bool) -> InputOrderGuard { query::engine::set_input_order(on) } +/// This thread's path events since the last call, which clears them: how +/// often queries took the paths the nightly acceptance tests guard (#863), +/// such as `ancestor_alternative_selected` and `bound_value_avet_range`. +/// Only for tests; built with the `test-hooks` feature only. +#[cfg(feature = "test-hooks")] +#[doc(hidden)] +pub fn __path_events() -> std::collections::BTreeMap<&'static str, u64> { + query::engine::take_path_events() +} + // Large-transaction tests (#550): statements read and written in small chunks. #[cfg(feature = "test-hooks")] #[doc(hidden)] diff --git a/src/query/engine/meter.rs b/src/query/engine/meter.rs index 2869e41c5..019bd2463 100644 --- a/src/query/engine/meter.rs +++ b/src/query/engine/meter.rs @@ -26,24 +26,24 @@ pub(crate) struct Meter { used: AtomicUsize, /// The most `used` has been, for tests and measurement. peak: AtomicUsize, - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] window: LivePeak, - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] aggregate: LivePeak, - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] ids: LivePeak, } /// Test-only ownership totals distinguish a window's retained rows from the /// lookup cache. Multiple Helds with the same name contribute together. -#[cfg(test)] +#[cfg(any(test, feature = "test-hooks"))] #[derive(Debug, Default)] struct LivePeak { used: AtomicUsize, peak: AtomicUsize, } -#[cfg(test)] +#[cfg(any(test, feature = "test-hooks"))] impl LivePeak { fn add(&self, n: usize) { let now = self.used.load(Ordering::Relaxed).saturating_add(n); @@ -65,11 +65,11 @@ impl Meter { limit, used: AtomicUsize::new(0), peak: AtomicUsize::new(0), - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] window: LivePeak::default(), - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] aggregate: LivePeak::default(), - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] ids: LivePeak::default(), }) } @@ -86,12 +86,12 @@ impl Meter { self.used.load(Ordering::Relaxed) } - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] pub(crate) fn peak(&self) -> usize { self.peak.load(Ordering::Relaxed) } - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] fn tracked(&self, op: &str) -> Option<&LivePeak> { match op { "Window" => Some(&self.window), @@ -101,7 +101,7 @@ impl Meter { } } - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] pub(crate) fn peak_for(&self, op: &str) -> usize { self.tracked(op) .map_or(0, |p| p.peak.load(Ordering::Relaxed)) @@ -152,7 +152,7 @@ impl Held { m.used.store(now, Ordering::Relaxed); m.peak.fetch_max(now, Ordering::Relaxed); self.bytes = self.bytes.saturating_add(n); - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] if let Some(peak) = m.tracked(self.op) { peak.add(n); } @@ -164,7 +164,7 @@ impl Held { let n = n.min(self.bytes); self.bytes -= n; let m = &*self.meter; - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] if let Some(peak) = m.tracked(self.op) { peak.subtract(n); } @@ -177,7 +177,7 @@ impl Held { /// Take over what `other` counts, which goes on being counted until this /// holder lets it go. pub(crate) fn absorb(&mut self, mut other: Held) { - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] if self.op != other.op { if let Some(peak) = self.meter.tracked(other.op) { peak.subtract(other.bytes); diff --git a/src/query/engine/mod.rs b/src/query/engine/mod.rs index a1f055265..82c9f873f 100644 --- a/src/query/engine/mod.rs +++ b/src/query/engine/mod.rs @@ -51,6 +51,30 @@ pub(crate) use plan::{Plan, plan, plan_rules, udfs}; pub(crate) use recursive::Limits; use std::sync::Arc; +#[cfg(any(test, feature = "test-hooks"))] +thread_local! { + /// Path events of queries this thread ran (#863): which of the paths a + /// nightly acceptance test guards each query took. Counted only in test + /// and `test-hooks` builds; `path_event` is a no-op otherwise. + static PATH_EVENTS: std::cell::RefCell> = + const { std::cell::RefCell::new(std::collections::BTreeMap::new()) }; +} + +/// Count path event `name` on this thread (#863). +#[inline] +pub(crate) fn path_event(name: &'static str) { + #[cfg(any(test, feature = "test-hooks"))] + PATH_EVENTS.with(|m| *m.borrow_mut().entry(name).or_default() += 1); + #[cfg(not(any(test, feature = "test-hooks")))] + let _ = name; +} + +/// This thread's path events since the last call, which clears them (#863). +#[cfg(any(test, feature = "test-hooks"))] +pub(crate) fn take_path_events() -> std::collections::BTreeMap<&'static str, u64> { + PATH_EVENTS.with(|m| m.take()) +} + #[cfg(test)] thread_local! { /// Queries this thread ran on the engine (tests check routing with it). @@ -126,7 +150,7 @@ pub(crate) struct Stream { root: Box, /// The bytes the query's holders count (#549); each holder keeps its /// own reference, so the stream keeps one for tests only. - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] meter: Arc, /// The column of each `:find` element in the root's rows. find: Vec, @@ -293,7 +317,7 @@ fn stream( ids, functions, root, - #[cfg(test)] + #[cfg(any(test, feature = "test-hooks"))] meter, find, vars, @@ -453,6 +477,16 @@ impl Stream { &self.meter } + /// The most bytes the query's holders counted at once, in total or for + /// one tracked op (`Window`, `Aggregate`, `IdSpace`) (#863). + #[cfg(any(test, feature = "test-hooks"))] + pub(crate) fn memory_peak(&self, op: Option<&str>) -> usize { + match op { + Some(op) => self.meter.peak_for(op), + None => self.meter.peak(), + } + } + pub(crate) fn vars(&self) -> &[String] { &self.vars } diff --git a/src/query/engine/recursive.rs b/src/query/engine/recursive.rs index 61dd485e2..66d6b1fb6 100644 --- a/src/query/engine/recursive.rs +++ b/src/query/engine/recursive.rs @@ -267,6 +267,7 @@ fn choose_run<'a>( .pending_attribute_count(attribute, None, cost)? >= cost { + super::path_event("ancestor_alternative_selected"); Ok(alternative) } else { Ok(run) diff --git a/src/query/engine/scan.rs b/src/query/engine/scan.rs index 00b2df787..fc47150b3 100644 --- a/src/query/engine/scan.rs +++ b/src/query/engine/scan.rs @@ -239,6 +239,7 @@ impl Scan { for v in &candidates { if let Some(kv) = key_value(keys, v)? { ranges.push((Index::Avet, keys::attribute_value_prefix(a, &kv))); + super::path_event("bound_value_avet_range"); } } } diff --git a/src/query/engine/tests.rs b/src/query/engine/tests.rs index 368b1a54d..f52071e45 100644 --- a/src/query/engine/tests.rs +++ b/src/query/engine/tests.rs @@ -4548,3 +4548,111 @@ fn ignored_aggregate_arguments_do_not_hide_upstream_failures() { assert_eq!(meter.used(), 0); } } + +/// #863: the path events a nightly acceptance test reads. A width-10 tree of +/// 1,110 edges, pending: one leaf's ancestors take the small in-memory +/// alternative (#723). Checkpointed, 16 demanded leaves join their parents +/// by bound-value AVET probes (#721), and the alternative is not taken. +fn count(db: &Minigraf, query: &str) -> usize { + let QueryResult::QueryResults { results, .. } = db.execute(query).expect("query") else { + panic!("expected query results"); + }; + results.len() +} + +fn t(i: usize) -> String { + format!( + "#uuid \"{}\"", + uuid::Uuid::from_u128(0x8410_0000_0000_0000_0000_0000_0000_0000 + i as u128) + ) +} + +fn tree(db: &Minigraf, n: usize) { + // UUID entities and refs, as the #841 fixtures (a keyword entity has no + // AVET probe unless the query names the keyword, #721). + let facts: String = (1..=n) + .map(|i| format!("[{} :s/parent {}]", t(i), t((i - 1) / 10))) + .collect(); + db.execute(&format!("(transact [{facts}])")).unwrap(); + db.execute("(rule [(anc ?x ?a) [?x :s/parent ?a]])") + .unwrap(); + db.execute("(rule [(anc ?x ?a) [?x :s/parent ?p] (anc ?p ?a)])") + .unwrap(); +} + +#[test] +fn path_events_record_the_ancestor_alternative() { + let dir = tempfile::tempdir().unwrap(); + let db = crate::OpenOptions::new() + .wal_checkpoint_threshold(usize::MAX) + .path(dir.path().join("events.graph")) + .open() + .unwrap(); + tree(&db, 1110); + super::take_path_events(); + // 1110's ancestors: 110, 10, 0. + let q = format!("(query [:find ?a :where (anc {} ?a)])", t(1110)); + assert_eq!(count(&db, &q), 3); + let events = super::take_path_events(); + assert!( + events + .get("ancestor_alternative_selected") + .is_some_and(|n| *n >= 1) + ); + assert!( + super::take_path_events().is_empty(), + "taking resets the map" + ); +} + +#[test] +fn path_events_record_bound_value_probes() { + let dir = tempfile::tempdir().unwrap(); + let db = Minigraf::open(dir.path().join("events.graph")).unwrap(); + tree(&db, 1110); + let demand: String = (1095..=1110) + .map(|i| format!("[{} :s/demand true]", t(i))) + .collect(); + db.execute(&format!("(transact [{demand}])")).unwrap(); + db.checkpoint().unwrap(); + super::take_path_events(); + let q = "(query [:find ?l ?a :where [?l :s/demand true] (anc ?l ?a)])"; + assert_eq!(count(&db, q), 48, "16 leaves, three ancestors each"); + let events = super::take_path_events(); + assert!( + events + .get("bound_value_avet_range") + .is_some_and(|n| *n >= 1) + ); + assert!(!events.contains_key("ancestor_alternative_selected")); +} + +#[test] +fn plain_queries_record_no_path_events() { + let db = Minigraf::in_memory().unwrap(); + db.execute("(transact [[:a :v 1] [:b :v 2]])").unwrap(); + super::take_path_events(); + assert_eq!(count(&db, "(query [:find ?e :where [?e :v ?x]])"), 2); + assert!(super::take_path_events().is_empty()); +} + +#[test] +fn memory_peak_reports_the_query_and_window_peaks() { + let db = Minigraf::in_memory().unwrap(); + let facts: String = (0..200) + .map(|i| format!("[:w{i} :v {i}] [:w{i} :p {}]", i % 3)) + .collect(); + db.execute(&format!("(transact [{facts}])")).unwrap(); + let mut cursor = db + .query("(query [:find ?i ?p (sum ?i :over (:partition-by ?p :order-by ?i)) :where [?e :p ?p] [?e :v ?i]])") + .unwrap(); + // Ask for exactly the rows left: a larger request pulls past the end + // and the cursor drops its stream. + let mut n = 0; + while n < 200 { + n += cursor.next_batch(200 - n).unwrap().expect("rows").len(); + } + let stream = cursor.stream_mut().expect("stream still open"); + assert!(stream.memory_peak(Some("Window")) > 0); + assert!(stream.memory_peak(None) >= stream.memory_peak(Some("Window"))); +} diff --git a/tests/nightly_candidates_acceptance_test.rs b/tests/nightly_candidates_acceptance_test.rs new file mode 100644 index 000000000..d9140dc00 --- /dev/null +++ b/tests/nightly_candidates_acceptance_test.rs @@ -0,0 +1,316 @@ +//! Nightly acceptance for the #841 shape-sweep candidates qualified by #863: +//! each test pins one candidate's answer and the path it guards (operator +//! names from the cursor's `Debug` view, `minigraf::__path_events`) and, +//! where the behavior is memory, its charged query memory +//! (`Cursor::__memory_peak`). Time is measured separately, by the Criterion +//! cases in `benches/minigraf_bench/nightly_candidates.rs`; a path regression +//! fails here, a slower runner cannot. +//! +//! Ignored by default; `.github/workflows/smoke.yml` runs them nightly: +//! +//! ```text +//! cargo test --profile bench --features test-hooks --test nightly_candidates_acceptance_test -- --ignored --nocapture --test-threads=1 +//! ``` +//! +//! `shape_port_matches_the_database` is not ignored: it checks the shared +//! fixture port against the database at small sizes on every test run. +#![cfg(all(feature = "test-hooks", not(target_arch = "wasm32")))] + +#[path = "../benches/helpers/shape.rs"] +mod shape; + +use minigraf::{Cursor, Minigraf, OpenOptions, Value}; +use shape::{Digest, Shape, drain, entity}; + +fn fixture(shape: Shape, pending: bool) -> (tempfile::TempDir, Minigraf) { + let dir = tempfile::tempdir().unwrap(); + let db = shape.build(&dir.path().join("candidate.graph"), pending); + (dir, db) +} + +/// Pull exactly `rows` rows into a digest, leaving the stream open: a larger +/// request pulls past the end, and the cursor then drops its stream. +fn pull(cursor: &mut Cursor, rows: usize, ordered: bool) -> Digest { + let mut digest = Digest::default(); + let mut n = 0; + while n < rows { + let batch = cursor + .next_batch((rows - n).min(1000)) + .unwrap() + .expect("more rows"); + for row in batch.rows() { + digest.add(row, ordered); + } + n += batch.rows().len(); + } + digest +} + +fn ops(cursor: &Cursor) -> String { + // Operator counters only: checked before any row is formatted. + format!("{cursor:?}") +} + +#[test] +fn shape_port_matches_the_database() { + for (shape, pending) in [ + (Shape::WindowSkewSum { n: 1000 }, false), + (Shape::SetMembership { n: 100, k: 8 }, false), + ( + Shape::Sort { + n: 1000, + desc: true, + offset: 500, + limit: Some(10), + }, + false, + ), + ( + Shape::Sort { + n: 1000, + desc: false, + offset: 500, + limit: Some(10), + }, + true, + ), + (Shape::Ancestors { edges: 110, k: 1 }, true), + (Shape::Ancestors { edges: 110, k: 4 }, false), + ] { + let (_dir, db) = fixture(shape, pending); + assert_eq!( + drain(&db, &shape.query(), shape.ordered()), + shape.oracle(), + "port answer" + ); + } +} + +/// N1: 50,000 rows (100k facts), 90% in one partition, running sum, +/// committed. Partition-at-a-time windows (#641) retain one partition: the +/// largest, not less, and not the whole input. +#[test] +#[ignore = "nightly acceptance (#863)"] +fn n1_skew_running_sum_streams_by_partition() { + let shape = Shape::WindowSkewSum { n: 50_000 }; + let (_dir, db) = fixture(shape, false); + let mut cursor = db.query(&shape.query()).unwrap(); + let plan = ops(&cursor); + assert!(plan.contains("WindowPartitioned"), "partitioned window"); + let digest = pull(&mut cursor, shape.rows(), false); + let partitioned = cursor.__memory_peak(Some("Window")).expect("open"); + assert_eq!(digest, shape.oracle(), "answer"); + drop(cursor); + + let full = { + let _guard = minigraf::__input_order(false); + let mut cursor = db.query(&shape.query()).unwrap(); + let plan = ops(&cursor); + assert!(!plan.contains("WindowPartitioned"), "full-input control"); + assert_eq!(pull(&mut cursor, shape.rows(), false), shape.oracle()); + cursor.__memory_peak(Some("Window")).expect("open") + }; + println!("PEAK_CHECK n1 partitioned_bytes={partitioned} full_bytes={full}"); + // Charged bytes are deterministic: 0.907 of the full input on 2026-11-06 + // (45,000 of 50,000 rows plus fixed costs). Retaining the whole input is + // 1.0; retaining less than the largest partition is below 0.9. + assert!(partitioned * 100 <= full * 95, "not the whole input"); + assert!( + partitioned * 100 >= full * 85, + "the largest partition (90% of rows) is retained" + ); +} + +/// N2: 10k entities with 256-element skewed sets (long value pages), +/// committed; six membership predicates. Answer only: no event identifies +/// the long-set path (#863 attribution limit). +#[test] +#[ignore = "nightly acceptance (#863)"] +fn n2_set_membership_k256() { + let shape = Shape::SetMembership { n: 10_000, k: 256 }; + let (_dir, db) = fixture(shape, false); + assert_eq!(drain(&db, &shape.query(), false), shape.oracle(), "answer"); +} + +/// N3: 100k facts, descending `:offset 50000 :limit 1000`, committed. The +/// Sort heap holds `offset + limit` rows (#306), not every row; ascending, +/// the committed index order omits the Sort (#641). +#[test] +#[ignore = "nightly acceptance (#863)"] +fn n3_sort_heap_holds_offset_plus_limit() { + let n = 100_000; + let limited = Shape::Sort { + n, + desc: true, + offset: 50_000, + limit: Some(1000), + }; + let (_dir, db) = fixture(limited, false); + let mut cursor = db.query(&limited.query()).unwrap(); + assert!(ops(&cursor).contains("Sort"), "descending sorts"); + assert_eq!(pull(&mut cursor, 1000, true), limited.oracle(), "answer"); + let heap = cursor.__memory_peak(None).expect("open"); + drop(cursor); + + let all = Shape::Sort { + n, + desc: true, + offset: 0, + limit: None, + }; + let mut cursor = db.query(&all.query()).unwrap(); + assert_eq!(pull(&mut cursor, n, true), all.oracle(), "control answer"); + let full = cursor.__memory_peak(None).expect("open"); + drop(cursor); + println!("PEAK_CHECK n3 heap_bytes={heap} full_bytes={full}"); + // 0.51 of the full Sort on 2026-11-06 (deterministic charges); a heap of + // every row is 1.0. + assert!(heap * 10 <= full * 6, "heap of 51,000 of 100,000 rows"); + + let ascending = Shape::Sort { + n, + desc: false, + offset: 50_000, + limit: Some(1000), + }; + let cursor = db.query(&ascending.query()).unwrap(); + assert!(!ops(&cursor).contains("Sort"), "ascending omits the Sort"); + drop(cursor); + assert_eq!(drain(&db, &ascending.query(), true), ascending.oracle()); +} + +/// N4: a 1,110-edge tree, one leaf's ancestors, pending (empty committed +/// dictionary): the small in-memory ancestor alternative (#723). +#[test] +#[ignore = "nightly acceptance (#863)"] +fn n4_small_tree_takes_ancestor_alternative() { + let shape = Shape::Ancestors { edges: 1110, k: 1 }; + let (_dir, db) = fixture(shape, true); + minigraf::__path_events(); + assert_eq!(drain(&db, &shape.query(), false), shape.oracle(), "answer"); + let events = minigraf::__path_events(); + assert!( + events + .get("ancestor_alternative_selected") + .is_some_and(|n| *n >= 1), + "alternative selected" + ); +} + +/// N5: the same tree, 16 demanded leaves, committed: bound-value AVET probes +/// (#721), and not the in-memory alternative. +#[test] +#[ignore = "nightly acceptance (#863)"] +fn n5_committed_tree_uses_bound_value_probes() { + let shape = Shape::Ancestors { edges: 1110, k: 16 }; + let (_dir, db) = fixture(shape, false); + minigraf::__path_events(); + assert_eq!(drain(&db, &shape.query(), false), shape.oracle(), "answer"); + let events = minigraf::__path_events(); + assert!( + events + .get("bound_value_avet_range") + .is_some_and(|n| *n >= 1), + "bound-value AVET probes" + ); + assert!( + !events.contains_key("ancestor_alternative_selected"), + "committed generation keeps the probes" + ); +} + +/// N6: 10k facts, one cursor held across 256 of 544 checkpoints, each +/// retracting and asserting 100 entities' values (history kept). While the +/// cursor holds its generation, freed pages are quarantined (#543) and the +/// file grows faster; after release they are reused. The held cursor still +/// reads its own state, and the file verifies. +#[test] +#[ignore = "nightly acceptance (#863)"] +fn n6_held_cursor_quarantine_and_reuse() { + const N: usize = 10_000; + const QUERY: &str = "(query [:find ?e ?v :where [?e :pin/value ?v]])"; + let (baseline, held, after) = (32, 256, 256); + let dir = tempfile::tempdir().unwrap(); + let path = dir.path().join("churn.graph"); + { + let mut writer = minigraf::LogWriter::create(&path, OpenOptions::new()).unwrap(); + for i in 0..N { + writer + .append(&minigraf::FactRecord { + entity: entity(i), + attribute: ":pin/value".into(), + value: Value::Integer(i as i64), + tx_count: (i / 1000 + 1) as u64, + tx_id: 1_700_000_000_000 + (i / 1000) as u64, + valid_from: 0, + valid_to: i64::MAX, + asserted: true, + }) + .unwrap(); + } + writer.finish().unwrap(); + } + let db = OpenOptions::new() + .wal_checkpoint_threshold(usize::MAX) + .path(&path) + .open() + .unwrap(); + let mut values: Vec = (0..N).collect(); + let mut cursor = None; + let mut expected = Vec::new(); + let mut sizes = Vec::new(); + for round in 0..baseline + held + after { + if round == baseline { + cursor = Some(db.query(QUERY).unwrap()); + expected = values.clone(); + } + if round == baseline + held { + let mut cursor: Cursor = cursor.take().expect("held cursor"); + let mut seen = vec![false; N]; + while let Some(batch) = cursor.next_batch(1000).unwrap() { + for row in batch.rows() { + let [Value::Ref(e), Value::Integer(v)] = row.as_slice() else { + panic!("entity and value expected"); + }; + let i = (e.as_u128() - entity(0).as_u128()) as usize; + assert_eq!(*v as usize, expected[i], "held cursor reads its state"); + assert!(!seen[i], "one row per entity"); + seen[i] = true; + } + } + assert!(seen.iter().all(|s| *s), "every entity"); + } + let mut retract = String::from("(retract ["); + let mut transact = String::from("(transact ["); + for j in 0..100 { + let i = (round * 100 + j) % N; + retract.push_str(&format!( + "[#uuid \"{}\" :pin/value {}]", + entity(i), + values[i] + )); + values[i] += N; + transact.push_str(&format!( + "[#uuid \"{}\" :pin/value {}]", + entity(i), + values[i] + )); + } + retract.push_str("])"); + transact.push_str("])"); + db.execute(&retract).unwrap(); + db.execute(&transact).unwrap(); + db.checkpoint().unwrap(); + sizes.push(std::fs::metadata(&path).unwrap().len()); + } + // Growth over the last 128 held rounds, and the last 128 after release. + let growth = |end: usize| sizes[end - 1] - sizes[end - 129]; + let held_growth = growth(baseline + held); + let after_growth = growth(baseline + held + after); + println!("CHURN_CHECK n6 held_growth_bytes={held_growth} after_growth_bytes={after_growth}"); + assert!(held_growth > 0, "quarantine grows the file"); + // 10,280,960 and 0 bytes on 2026-11-06: once released, the freed pages + // absorb the churn and the file stops growing. + assert!(after_growth * 2 <= held_growth, "released pages are reused"); + assert!(db.verify().unwrap().is_ok(), "integrity"); +} diff --git a/tests/path_events_test.rs b/tests/path_events_test.rs new file mode 100644 index 000000000..09e045e61 --- /dev/null +++ b/tests/path_events_test.rs @@ -0,0 +1,97 @@ +//! The `test-hooks` path events and memory peaks the nightly acceptance tests +//! read (#863): `minigraf::__path_events` and `Cursor::__memory_peak`. +#![cfg(all(feature = "test-hooks", not(target_arch = "wasm32")))] + +use minigraf::{Minigraf, OpenOptions}; + +fn t(i: usize) -> String { + let u = uuid::Uuid::from_u128(0x8410_0000_0000_0000_0000_0000_0000_0000 + i as u128); + format!("#uuid \"{u}\"") +} + +fn tree(db: &Minigraf) { + let facts: String = (1..=1110) + .map(|i| format!("[{} :s/parent {}]", t(i), t((i - 1) / 10))) + .collect(); + db.execute(&format!("(transact [{facts}])")).unwrap(); + db.execute("(rule [(anc ?x ?a) [?x :s/parent ?a]])") + .unwrap(); + db.execute("(rule [(anc ?x ?a) [?x :s/parent ?p] (anc ?p ?a)])") + .unwrap(); +} + +fn drain(db: &Minigraf, query: &str) -> usize { + let mut cursor = db.query(query).unwrap(); + let mut n = 0; + while let Some(batch) = cursor.next_batch(1000).unwrap() { + n += batch.rows().len(); + } + n +} + +#[test] +fn path_events_name_the_paths_queries_took() { + let dir = tempfile::tempdir().unwrap(); + let db = OpenOptions::new() + .wal_checkpoint_threshold(usize::MAX) + .path(dir.path().join("pending.graph")) + .open() + .unwrap(); + tree(&db); + minigraf::__path_events(); + let q = format!("(query [:find ?a :where (anc {} ?a)])", t(1110)); + assert_eq!(drain(&db, &q), 3); + let events = minigraf::__path_events(); + assert!( + events + .get("ancestor_alternative_selected") + .is_some_and(|n| *n >= 1), + "pending small tree takes the alternative" + ); + assert!(minigraf::__path_events().is_empty(), "taking clears"); + + db.checkpoint().unwrap(); + let demand: String = (1095..=1110) + .map(|i| format!("[{} :s/demand true]", t(i))) + .collect(); + db.execute(&format!("(transact [{demand}])")).unwrap(); + db.checkpoint().unwrap(); + minigraf::__path_events(); + let q = "(query [:find ?l ?a :where [?l :s/demand true] (anc ?l ?a)])"; + assert_eq!(drain(&db, q), 48); + let events = minigraf::__path_events(); + assert!( + events + .get("bound_value_avet_range") + .is_some_and(|n| *n >= 1), + "committed tree probes bound values" + ); +} + +#[test] +fn memory_peak_is_read_while_the_stream_is_open() { + let db = Minigraf::in_memory().unwrap(); + let facts: String = (0..200) + .map(|i| format!("[:w{i} :v {i}] [:w{i} :p {}]", i % 3)) + .collect(); + db.execute(&format!("(transact [{facts}])")).unwrap(); + let q = "(query [:find ?i ?p (sum ?i :over (:partition-by ?p :order-by ?i)) \ + :where [?e :p ?p] [?e :v ?i]])"; + let mut cursor = db.query(q).unwrap(); + let mut n = 0; + while n < 200 { + // Exactly the rows left: a larger request ends the stream. + n += cursor + .next_batch(200 - n) + .unwrap() + .expect("rows") + .rows() + .len(); + } + let window = cursor.__memory_peak(Some("Window")).expect("open stream"); + let total = cursor.__memory_peak(None).expect("open stream"); + assert!(window > 0, "window rows were charged"); + assert!(total >= window, "total covers the window"); + assert!(cursor.next_batch(1).unwrap().is_none()); + assert_eq!(cursor.__memory_peak(None), None, "ended stream"); +}