From 037692da218b315390fd01c05a9d59bba61071d4 Mon Sep 17 00:00:00 2001 From: Bailey Nguyen Date: Sat, 3 Oct 2026 16:42:08 -0500 Subject: [PATCH 1/7] perf: avoid registry locks when no xsi:type variants are registered --- crates/polyxml-core/src/schema.rs | 37 +++++++-- .../tests/test_variant_registry.rs | 75 +++++++++++++++++++ 2 files changed, 104 insertions(+), 8 deletions(-) create mode 100644 crates/polyxml-core/tests/test_variant_registry.rs diff --git a/crates/polyxml-core/src/schema.rs b/crates/polyxml-core/src/schema.rs index 920a2a1..595d86d 100644 --- a/crates/polyxml-core/src/schema.rs +++ b/crates/polyxml-core/src/schema.rs @@ -1,4 +1,5 @@ use std::collections::HashMap; +use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::{Arc, RwLock}; #[derive(Debug, Clone, PartialEq, Eq)] @@ -106,6 +107,12 @@ impl FieldSchema { } } +#[derive(Debug, Default)] +struct VariantRegistry { + schemas: RwLock>>, + populated: AtomicBool, +} + #[derive(Debug, Clone)] pub struct ModelSchema { pub name: String, @@ -125,7 +132,7 @@ pub struct ModelSchema { pub content_pattern: Option, /// Concrete derivations eligible for `xsi:type` dispatch. Python may /// refresh this registry when subclasses are defined after first use. - variants: Arc>>>, + variants: Arc, } impl ModelSchema { @@ -136,12 +143,27 @@ impl ModelSchema { /// Register the concrete derivations eligible for `xsi:type` dispatch. /// Replaces the registry when subclasses are discovered after first use. pub fn set_variants(&self, variants: Vec>) { - *self.variants.write().unwrap_or_else(|p| p.into_inner()) = variants; + let mut registered = self + .variants + .schemas + .write() + .unwrap_or_else(|p| p.into_inner()); + *registered = variants; + // Publish emptiness while holding the registry lock. Cloned schemas + // share this flag, so later registration/clearing cannot leave a stale + // per-schema dispatch plan. Nonempty lookups still use the lock. + self.variants + .populated + .store(!registered.is_empty(), Ordering::Release); } /// Registered derivations for `xsi:type` dispatch (empty when none). pub fn variants(&self) -> Vec> { + if !self.has_variants() { + return Vec::new(); + } self.variants + .schemas .read() .unwrap_or_else(|p| p.into_inner()) .clone() @@ -149,16 +171,13 @@ impl ModelSchema { /// Whether any `xsi:type` derivations are registered for this type. pub fn has_variants(&self) -> bool { - !self - .variants - .read() - .unwrap_or_else(|p| p.into_inner()) - .is_empty() + self.variants.populated.load(Ordering::Acquire) } /// Look up a derivation by the QName local part of an `xsi:type` value. pub fn find_variant(&self, local: &[u8]) -> Option> { self.variants + .schemas .read() .unwrap_or_else(|p| p.into_inner()) .iter() @@ -169,6 +188,7 @@ impl ModelSchema { /// Look up a derivation by its complete QName. pub fn find_variant_qname(&self, namespace: &str, local: &[u8]) -> Option> { self.variants + .schemas .read() .unwrap_or_else(|p| p.into_inner()) .iter() @@ -181,6 +201,7 @@ impl ModelSchema { /// Whether `candidate` is a registered derivation of `self`. pub fn matches_variant(&self, candidate: &ModelSchema) -> bool { self.variants + .schemas .read() .unwrap_or_else(|p| p.into_inner()) .iter() @@ -655,7 +676,7 @@ impl ModelSchemaBuilder { is_abstract: self.is_abstract, strict_root: self.strict_root, content_pattern: self.content_pattern, - variants: Arc::new(RwLock::new(Vec::new())), + variants: Arc::new(VariantRegistry::default()), }) } } diff --git a/crates/polyxml-core/tests/test_variant_registry.rs b/crates/polyxml-core/tests/test_variant_registry.rs new file mode 100644 index 0000000..9502c68 --- /dev/null +++ b/crates/polyxml-core/tests/test_variant_registry.rs @@ -0,0 +1,75 @@ +use std::sync::Arc; + +use polyxml::schema::ModelSchema; + +#[test] +fn registration_and_clearing_are_visible_to_schema_clones() { + let base = ModelSchema::builder("Base").build(); + let clone = (*base).clone(); + let derived = ModelSchema::builder("Derived") + .namespace("urn:derived") + .build(); + assert!(!clone.has_variants()); + assert!(clone.variants().is_empty()); + base.set_variants(vec![Arc::clone(&derived)]); + assert!(clone.has_variants()); + assert!(Arc::ptr_eq(&clone.variants()[0], &derived)); + assert!(Arc::ptr_eq( + &clone.find_variant(b"Derived").unwrap(), + &derived + )); + assert!(clone.find_variant_qname("urn:other", b"Derived").is_none()); + assert!(Arc::ptr_eq( + &clone.find_variant_qname("urn:derived", b"Derived").unwrap(), + &derived + )); + assert!(clone.matches_variant(&derived)); + clone.set_variants(Vec::new()); + assert!(!base.has_variants()); + assert!(base.variants().is_empty()); + assert!(base.find_variant(b"Derived").is_none()); + assert!(!base.matches_variant(&derived)); + clone.set_variants(vec![Arc::clone(&derived)]); + assert!(base.has_variants()); + assert!(base.matches_variant(&derived)); +} + +#[test] +fn concurrent_registry_updates_keep_complete_variant_snapshots() { + let base = ModelSchema::builder("Base").build(); + let derived = ModelSchema::builder("Derived").build(); + std::thread::scope(|scope| { + scope.spawn(|| { + for index in 0..4096 { + base.set_variants(if index % 2 == 0 { + Vec::new() + } else { + vec![Arc::clone(&derived)] + }); + } + base.set_variants(vec![Arc::clone(&derived)]); + }); + for _ in 0..4 { + scope.spawn(|| { + for _ in 0..4096 { + // These calls can observe different registry revisions. + // Each populated snapshot must contain the original Arc. + let _ = base.has_variants(); + let variants = base.variants(); + assert!(variants.len() <= 1); + for variant in variants { + assert!(Arc::ptr_eq(&variant, &derived)); + } + if let Some(variant) = base.find_variant(b"Derived") { + assert!(Arc::ptr_eq(&variant, &derived)); + } + } + }); + } + }); + assert!(base.has_variants()); + assert!(Arc::ptr_eq(&base.variants()[0], &derived)); + base.set_variants(Vec::new()); + assert!(!base.has_variants()); + assert!(base.variants().is_empty()); +} From 1ddd3641dc5615f8aaf8f5c699b595dc57f7baab Mon Sep 17 00:00:00 2001 From: Bailey Nguyen Date: Sat, 3 Oct 2026 16:44:59 -0500 Subject: [PATCH 2/7] bench: compare empty and populated xsi:type registries --- .agents/skills/polyxml-core-engine/SKILL.md | 7 ++ .../polyxml-runtime-investigation/SKILL.md | 4 + .../rust-runtime-investigation/README.md | 6 ++ .../rust-runtime-investigation/variants.rs | 85 +++++++++++++++++++ 4 files changed, 102 insertions(+) create mode 100644 benchmarks/rust-runtime-investigation/variants.rs diff --git a/.agents/skills/polyxml-core-engine/SKILL.md b/.agents/skills/polyxml-core-engine/SKILL.md index 86dd4b3..ce4802c 100644 --- a/.agents/skills/polyxml-core-engine/SKILL.md +++ b/.agents/skills/polyxml-core-engine/SKILL.md @@ -267,6 +267,13 @@ randomized hasher and an eviction nonce; FIFO would miss on every access for a cycle of 17 patterns. Public schema metadata remains mutable before sharing, so avoid cached flags that become stale after edits. +The `xsi:type` variant registry shares an atomic populated flag with its locked +vector across schema clones. Update the flag under the write lock in +`set_variants`, including when clearing the registry; empty dispatch checks can +then avoid a read lock. Nonempty vector snapshots and QName lookups remain +locked. Preserve sequential clone/update tests, concurrent snapshots, and full +`test_xsi_type` dispatch/error/round-trip coverage when changing the registry. + The serializer writes directly into an append-only byte vector and checks for lexical-list obligations before traversing repeated values. Ordinary nested records validate their own fields. Lexical lists append tokens to one string; diff --git a/.agents/skills/polyxml-runtime-investigation/SKILL.md b/.agents/skills/polyxml-runtime-investigation/SKILL.md index b43445f..bacb2e9 100644 --- a/.agents/skills/polyxml-runtime-investigation/SKILL.md +++ b/.agents/skills/polyxml-runtime-investigation/SKILL.md @@ -35,6 +35,10 @@ separate from the schema-driven `PolyValue` runtime. - Preserve validation, errors, split Text/CData/GeneralRef handling, nil reads, nesting and metadata mutation semantics. Borrow scalar metadata from the schema owned by a frame instead of cloning rich scalar definitions per element. + Profile empty `xsi:type` registry checks too: a shared flag maintained by the + registration setter can avoid locks without caching mutable field metadata. + Compare an empty registry with actual populated dispatch using `variants.rs`; + do not assume a plain-record gain also proves polymorphic throughput. - Include the 17-pattern cycle when changing eviction: a 16-entry FIFO has systematic misses, while salted victim selection preserves reuse at the same capacity. Confirm hot cases too; pressure improvements alone do not establish diff --git a/benchmarks/rust-runtime-investigation/README.md b/benchmarks/rust-runtime-investigation/README.md index 8c2e4f4..340b561 100644 --- a/benchmarks/rust-runtime-investigation/README.md +++ b/benchmarks/rust-runtime-investigation/README.md @@ -113,3 +113,9 @@ For the generated sensor control, run the XML/Serde regression runner and use its output directory. This computes each process's median of seven timing samples, then the median across processes; it retains the process deltas. The statistic differs from the Criterion process means above. + +`variants.rs` compares 1,000 ordinary nested items with 1,000 items selected by +namespaced `xsi:type`. It verifies every scalar payload and the concrete schema, +then checks the XML round trip before measuring. Use the alternate `--harness` +argument to check both empty-registry and populated-dispatch paths when changing +registry synchronization. diff --git a/benchmarks/rust-runtime-investigation/variants.rs b/benchmarks/rust-runtime-investigation/variants.rs new file mode 100644 index 0000000..00483f7 --- /dev/null +++ b/benchmarks/rust-runtime-investigation/variants.rs @@ -0,0 +1,85 @@ +use criterion::{ + criterion_group, criterion_main, BenchmarkId, Criterion, SamplingMode, Throughput, +}; +use polyxml::schema::{FieldKind, FieldSchema, ModelSchema, ScalarType, ValueType}; +use polyxml::{deserialize, serialize, PolyValue}; +use std::{hint::black_box, sync::Arc}; + +fn model(name: &str, namespace: Option<&str>) -> Arc { + let mut builder = ModelSchema::builder(name).field(FieldSchema::new( + "value", + b"Value", + FieldKind::Element, + ValueType::Scalar(ScalarType::Int), + )); + if let Some(namespace) = namespace { + builder = builder.namespace(namespace); + } + builder.build() +} + +fn fixture(registered: bool, count: usize) -> (Arc, Vec) { + let base = model("Base", None); + if registered { + base.set_variants(vec![model("Derived", Some("urn:derived"))]); + } + let schema = ModelSchema::builder("Root") + .field(FieldSchema::new( + "items", + b"Item", + FieldKind::Element, + ValueType::List(Box::new(ValueType::Nested(base))), + )) + .build(); + let mut xml = String::from( + "", + ); + for index in 0..count { + let selector = if registered { + " i:type='d:Derived'" + } else { + "" + }; + xml.push_str(&format!("{index}")); + } + xml.push_str(""); + let value = deserialize(xml.as_bytes(), Arc::clone(&schema)).unwrap(); + let items = value.get("items").unwrap().as_list().unwrap(); + assert_eq!(items.len(), count); + for (index, item) in items.iter().enumerate() { + assert_eq!(item.get("value"), Some(&PolyValue::Int(index as i64))); + let PolyValue::Record { schema, .. } = item else { + panic!("expected record") + }; + assert_eq!(schema.name, if registered { "Derived" } else { "Base" }); + } + let output = serialize("Root", &value, &schema, None).unwrap(); + assert_eq!(value, deserialize(&output, Arc::clone(&schema)).unwrap()); + (schema, xml.into_bytes()) +} + +fn benchmarks(c: &mut Criterion) { + for operation in ["variant_read", "variant_write"] { + let mut group = c.benchmark_group(operation); + group.sampling_mode(SamplingMode::Flat); + for (kind, registered) in [("empty_registry", false), ("registered", true)] { + let (schema, xml) = fixture(registered, 1000); + let value = deserialize(&xml, Arc::clone(&schema)).unwrap(); + group.throughput(Throughput::Bytes(xml.len() as u64)); + group.bench_function(BenchmarkId::new(kind, 1000), |b| { + if operation == "variant_read" { + b.iter(|| { + black_box(deserialize(black_box(&xml), Arc::clone(&schema)).unwrap()) + }); + } else { + b.iter(|| { + black_box(serialize("Root", black_box(&value), &schema, None).unwrap()) + }); + } + }); + } + group.finish(); + } +} +criterion_group!(benches, benchmarks); +criterion_main!(benches); From 42efd1f202f1dd0dea87029a0979595c80dc19e4 Mon Sep 17 00:00:00 2001 From: Bailey Nguyen Date: Sat, 3 Oct 2026 16:45:48 -0500 Subject: [PATCH 3/7] perf: use the empty registry shortcut for serialization and lookups --- crates/polyxml-core/src/schema.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/crates/polyxml-core/src/schema.rs b/crates/polyxml-core/src/schema.rs index 595d86d..8724531 100644 --- a/crates/polyxml-core/src/schema.rs +++ b/crates/polyxml-core/src/schema.rs @@ -176,6 +176,9 @@ impl ModelSchema { /// Look up a derivation by the QName local part of an `xsi:type` value. pub fn find_variant(&self, local: &[u8]) -> Option> { + if !self.has_variants() { + return None; + } self.variants .schemas .read() @@ -187,6 +190,9 @@ impl ModelSchema { /// Look up a derivation by its complete QName. pub fn find_variant_qname(&self, namespace: &str, local: &[u8]) -> Option> { + if !self.has_variants() { + return None; + } self.variants .schemas .read() @@ -200,6 +206,9 @@ impl ModelSchema { /// Whether `candidate` is a registered derivation of `self`. pub fn matches_variant(&self, candidate: &ModelSchema) -> bool { + if !self.has_variants() { + return false; + } self.variants .schemas .read() From 77b07661e8bdc8199f4a1104118869fd13f52fb9 Mon Sep 17 00:00:00 2001 From: Bailey Nguyen Date: Sat, 3 Oct 2026 17:41:12 -0500 Subject: [PATCH 4/7] research: retain measured runtime follow-up tradeoffs and rejected prototypes --- .../polyxml-runtime-investigation/SKILL.md | 4 + .../borrow-schema-screen.tar.gz | Bin 0 -> 28085 bytes .../borrow-schema-tests.txt | 68 ++++++ .../borrow-schema.patch | 59 ++++++ .../compact-frames-screen.tar.gz | Bin 0 -> 28131 bytes .../compact-frames-tests.txt | 127 +++++++++++ .../compact-frames.patch | 93 +++++++++ .../performance-experiments/manifest.json | 58 ++++++ .../read-fixed-guard.patch | 17 ++ .../read-fixed-guard.tar.gz | Bin 0 -> 28231 bytes .../variant-registry-all-empty-screen.tar.gz | Bin 0 -> 44452 bytes .../variant-registry-diagnostics.tar.gz | Bin 0 -> 27716 bytes .../variant-registry-final-core.tar.gz | Bin 0 -> 74906 bytes .../variant-registry-final-dispatch.tar.gz | Bin 0 -> 46905 bytes .../variant-registry-screen.tar.gz | Bin 0 -> 44454 bytes .../variant-registry.patch | 197 ++++++++++++++++++ ...runtime-followup-experiments-2026-10-03.md | 73 +++++++ 17 files changed, 696 insertions(+) create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/borrow-schema-screen.tar.gz create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/borrow-schema-tests.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/borrow-schema.patch create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/compact-frames-screen.tar.gz create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/compact-frames-tests.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/compact-frames.patch create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/read-fixed-guard.patch create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/read-fixed-guard.tar.gz create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-all-empty-screen.tar.gz create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-diagnostics.tar.gz create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-final-core.tar.gz create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-final-dispatch.tar.gz create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-screen.tar.gz create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry.patch create mode 100644 research/runtime-followup-experiments-2026-10-03.md diff --git a/.agents/skills/polyxml-runtime-investigation/SKILL.md b/.agents/skills/polyxml-runtime-investigation/SKILL.md index bacb2e9..ebfa754 100644 --- a/.agents/skills/polyxml-runtime-investigation/SKILL.md +++ b/.agents/skills/polyxml-runtime-investigation/SKILL.md @@ -23,6 +23,10 @@ separate from the schema-driven `PolyValue` runtime. synchronize and rebuild an editable binding. After preparing its environment, use `uv run --no-sync` for companion runs. If a build overlaps timing, retain and mark that attempt as contaminated, then repeat it. + Use revision-owned CLI/native-binding build targets too: a shared debug + directory can retain another worktree's same-named top-level artifact despite + a fresh Cargo result. Probe a fixture that distinguishes the revisions and + record artifact hashes before using companion results as a comparison. - Run heavy work serially, with one Cargo worker and the repository memory cap. Short comparisons screen hypotheses. Repeat retained improvements with longer measurements, alternating revision order and preserving every raw sample. diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/borrow-schema-screen.tar.gz b/research/data/runtime-followups-2026-10-03/performance-experiments/borrow-schema-screen.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..887771b7021ff0d83c9387bd3978ff661b4ced32 GIT binary patch literal 28085 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 PolyValue::Null, + } + }; +- stack +- .last_mut() +- .unwrap() +- .push_mixed_item(&branch.variant_name, value); ++ let kind = branch.variant_name.clone(); ++ stack.last_mut().unwrap().push_mixed_item(kind, value); + } + } else if let Some(any_idx) = current_schema.any_element_field { + let (ns, local) = resolve_element_qname(e, &scope); +@@ -771,8 +770,9 @@ impl XmlDeserializer { + obj.insert("text".to_string(), PolyValue::String(String::new())); + obj.insert("children".to_string(), PolyValue::List(Vec::new())); + let poly_obj = PolyValue::Object(obj); ++ let repeated = matches!(any_field.val_type, ValueType::List(_)); + let parent_frame = stack.last_mut().unwrap(); +- if matches!(any_field.val_type, ValueType::List(_)) { ++ if repeated { + parent_frame.push_list_item(any_idx, poly_obj); + } else { + parent_frame.values[any_idx] = Some(poly_obj); diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/compact-frames-screen.tar.gz b/research/data/runtime-followups-2026-10-03/performance-experiments/compact-frames-screen.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d16db4f27f52e6a20eb42bc093ceefbfa1a8b6e9 GIT binary patch literal 28131 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 Y>oK!?c=qq7;_?={ze$G)C`17KKjz2JW&i*H literal 0 HcmV?d00001 diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/compact-frames-tests.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/compact-frames-tests.txt new file mode 100644 index 0000000..8cbf20e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/compact-frames-tests.txt @@ -0,0 +1,127 @@ +memcap: <=7735 MiB (60% of 12892 MiB available) [systemd MemoryMax, swap off] + Compiling proc-macro2 v1.0.107 + Compiling quote v1.0.47 + Compiling unicode-ident v1.0.24 + Compiling syn v3.0.5 + Compiling serde_core v1.0.229 + Compiling syn v2.0.119 + Compiling serde v1.0.229 + Compiling memchr v2.8.3 + Compiling siphasher v1.0.3 + Compiling serde_derive v1.0.229 + Compiling zerocopy v0.8.57 + Compiling libc v0.2.189 + Compiling zmij v1.0.23 + Compiling cfg-if v1.0.4 + Compiling lexical-util v1.0.7 + Compiling zerocopy-derive v0.8.57 + Compiling find-msvc-tools v0.1.12 + Compiling shlex v2.0.1 + Compiling serde_json v1.0.151 + Compiling cc v1.4.5 + Compiling phf_shared v0.14.0 + Compiling aho-corasick v1.1.5 + Compiling autocfg v1.5.1 + Compiling itoa v1.0.18 + Compiling fastrand v2.5.0 + Compiling regex-syntax v0.8.11 + Compiling regex-automata v0.4.18 + Compiling num-traits v0.2.19 + Compiling half v2.7.1 + Compiling alloca v0.4.0 + Compiling lexical-write-integer v1.0.6 + Compiling lexical-parse-integer v1.0.6 + Compiling getrandom v0.4.3 + Compiling ciborium-io v0.2.2 + Compiling clap_lex v1.1.0 + Compiling anstyle v1.0.14 + Compiling thiserror v2.0.21 + Compiling rustix v1.1.5 + Compiling either v1.18.0 + Compiling itertools v0.13.0 + Compiling phf_generator v0.14.0 + Compiling clap_builder v4.6.7 + Compiling ciborium-ll v0.2.2 + Compiling lexical-parse-float v1.0.6 + Compiling lexical-write-float v1.0.6 + Compiling regex v1.13.1 + Compiling thiserror-impl v2.0.21 + Compiling same-file v1.0.6 + Compiling cast v0.3.0 + Compiling memo-map v0.3.4 + Compiling bitflags v2.13.2 + Compiling linux-raw-sys v0.12.1 + Compiling minijinja v2.24.0 + Compiling criterion-plot v0.8.2 + Compiling walkdir v2.5.0 + Compiling phf_codegen v0.14.0 + Compiling lexical-core v1.0.6 + Compiling ciborium v0.2.2 + Compiling clap v4.6.7 + Compiling phf_macros v0.14.0 + Compiling tinytemplate v1.2.1 + Compiling page_size v0.6.0 + Compiling quick-xml v0.42.0 + Compiling diff v0.1.13 + Compiling anes v0.1.6 + Compiling smallvec v1.16.2 + Compiling yansi v1.0.1 + Compiling once_cell v1.21.4 + Compiling oorandom v11.1.5 + Compiling heck v0.5.0 + Compiling polyxml v0.34.6 (/home/bailey/github/polyxml-compact-frames/crates/polyxml-core) + Compiling criterion v0.8.2 + Compiling tempfile v3.27.0 + Compiling pretty_assertions v1.4.1 + Compiling phf v0.14.0 + Finished `test` profile [unoptimized + debuginfo] target(s) in 39.97s + Running tests/test_runtime_fast_paths.rs (/home/bailey/github/PolyXML/target/followup-compact-verification/debug/deps/test_runtime_fast_paths-cb1357dd8af777c0) + +running 7 tests +test repeated_lexical_lists_keep_whitespace_validation ... ok +test repeated_nested_records_validate_their_own_lexical_lists ... ok +test lexical_list_formatting_preserves_escaping_empty_lists_and_long_numbers ... ok +test indexed_scalar_state_preserves_enum_pattern_and_split_text ... ok +test cached_patterns_keep_raw_restriction_and_trimmed_pattern_semantics ... ok +test nested_mixed_frames_resolve_kind_from_their_parent_schema ... ok +test unified_scalar_state_keeps_mixed_branch_order_nil_and_nested_frames ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_security.rs (/home/bailey/github/PolyXML/target/followup-compact-verification/debug/deps/test_security-e324fcc17a7a8524) + +running 6 tests +test test_cdata_section_handling ... ok +test test_numeric_character_references ... ok +test test_xml_entity_roundtrip_escaping ... ok +test test_malformed_unclosed_cdata_rejection ... ok +test unsupported_general_entities_are_rejected ... ok +test test_max_depth_recursion_limit ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_value_constraints.rs (/home/bailey/github/PolyXML/target/followup-compact-verification/debug/deps/test_value_constraints-22fd91427282898a) + +running 2 tests +test fixed_constraints_cover_input_and_output_in_value_space ... ok +test repeated_particle_cardinality_belongs_to_the_group ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_xsi_type.rs (/home/bailey/github/PolyXML/target/followup-compact-verification/debug/deps/test_xsi_type-c45053350e445953) + +running 11 tests +test abstract_type_without_derivations_errors ... ok +test plain_type_attribute_is_not_mistaken_for_dispatch ... ok +test nil_abstract_complex_type_skips_concrete_dispatch ... ok +test abstract_type_requires_concrete_selector ... ok +test iterparse_dispatches_each_streamed_item ... ok +test root_xsi_type_dispatch_including_empty_element ... ok +test variant_serialization_requires_namespaces ... ok +test nested_xsi_type_dispatch_and_round_trip ... ok +test unknown_xsi_type_on_abstract_type_errors ... ok +test from_ir_flattens_base_fields_and_registers_variants ... ok +test xsi_type_resolves_namespace_inherited_from_parent ... ok + +test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/compact-frames.patch b/research/data/runtime-followups-2026-10-03/performance-experiments/compact-frames.patch new file mode 100644 index 0000000..c855ba0 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/compact-frames.patch @@ -0,0 +1,93 @@ +diff --git a/crates/polyxml-core/src/parser.rs b/crates/polyxml-core/src/parser.rs +index afc027e..5741d45 100644 +--- a/crates/polyxml-core/src/parser.rs ++++ b/crates/polyxml-core/src/parser.rs +@@ -1,4 +1,5 @@ + use std::collections::HashMap; ++use std::num::NonZeroUsize; + use std::sync::Arc; + + use quick_xml::events::{BytesStart, Event}; +@@ -22,7 +23,8 @@ pub(crate) struct StackFrame { + values: SmallVec<[Option; 8]>, + list_values: SmallVec<[Option>; 4]>, + frame_text_buf: Option>, +- mixed_parent_kind: Option, ++ // Parent branch index + 1 keeps the absent case in one machine word. ++ mixed_parent_branch: Option, + content_tokens: String, + } + +@@ -39,7 +41,7 @@ impl StackFrame { + values: smallvec![None; field_count], + list_values: SmallVec::new(), + frame_text_buf, +- mixed_parent_kind: None, ++ mixed_parent_branch: None, + content_tokens: String::new(), + } + } +@@ -569,7 +571,8 @@ impl XmlDeserializer { + namespace_stack.last().unwrap(), + )?; + let mut frame = StackFrame::new(frame_schema); +- frame.mixed_parent_kind = Some(branch.variant_name.clone()); ++ frame.mixed_parent_branch = ++ NonZeroUsize::new(branch_index + 1); + Self::parse_attributes(e, &mut frame)?; + stack.push(frame); + } +@@ -949,13 +952,17 @@ impl XmlDeserializer { + } + } + } else if stack.len() > 1 { +- let mut finished_frame = stack.pop().unwrap(); ++ let finished_frame = stack.pop().unwrap(); + let local_name = e.local_name(); +- let mixed_kind = finished_frame.mixed_parent_kind.take(); ++ let mixed_branch = finished_frame.mixed_parent_branch; + let instance = finished_frame.finish()?; + let parent = stack.last_mut().unwrap(); + +- if let Some(kind) = mixed_kind { ++ if let Some(branch) = mixed_branch { ++ let kind = parent.schema.mixed_content.as_ref().unwrap().branches ++ [branch.get() - 1] ++ .variant_name ++ .clone(); + parent.push_mixed_item(kind, instance); + continue; + } +diff --git a/crates/polyxml-core/tests/test_runtime_fast_paths.rs b/crates/polyxml-core/tests/test_runtime_fast_paths.rs +index c0f13f1..35e1753 100644 +--- a/crates/polyxml-core/tests/test_runtime_fast_paths.rs ++++ b/crates/polyxml-core/tests/test_runtime_fast_paths.rs +@@ -242,3 +242,28 @@ fn unified_scalar_state_keeps_mixed_branch_order_nil_and_nested_frames() { + assert!(deserialize(nil_document, Arc::clone(&schema)).is_ok()); + assert!(deserialize(b"invalid", schema).is_err()); + } ++ ++#[test] ++fn nested_mixed_frames_resolve_kind_from_their_parent_schema() { ++ use polyxml::schema_parser::XsdParser; ++ let ir = XsdParser::new().parse_str(r#" ++ ++ ++ ++ ++ ++ ++ ++ ++ "#).unwrap(); ++ let schema = ModelSchema::from_ir(&ir, Some("Root")).unwrap(); ++ let xml = b"beforeleadstartdeepinnerend7after"; ++ let value = deserialize(xml, Arc::clone(&schema)).unwrap(); ++ let output = serialize("Root", &value, &schema, None).unwrap(); ++ assert_eq!(value, deserialize(&output, Arc::clone(&schema)).unwrap()); ++ assert!(deserialize( ++ b"unfinished", ++ schema ++ ) ++ .is_err()); ++} diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json b/research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json new file mode 100644 index 0000000..7e1ba77 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json @@ -0,0 +1,58 @@ +{ + "borrow-schema-screen.tar.gz": { + "sha256": "9e99be1bea3b5602be4920c53c9b517d8c6bb161afae51a8176bc3eb04affda6", + "bytes": 28085 + }, + "borrow-schema-tests.txt": { + "sha256": "68e90c9af143b078ee4ea5613a369ed72980f7d3e1004dcbf968738267e073d9", + "bytes": 3522 + }, + "borrow-schema.patch": { + "sha256": "f1ed9c87133c6da1a55a1d069d8213047c23c8ac3af0f90ba8510eec4a9bf6eb", + "bytes": 3411 + }, + "compact-frames-screen.tar.gz": { + "sha256": "c8fc1e0d2f409d969bd0052f4a143d972369c08ade66a2ced81b474a623859ac", + "bytes": 28131 + }, + "compact-frames-tests.txt": { + "sha256": "7d10e91036fe40e63bd43c83b0450611bd9ee8216bf14cda6f488c9aafa404a7", + "bytes": 5141 + }, + "compact-frames.patch": { + "sha256": "a1517c48c784c62cc4c9326bb4e2869b4ad461c9264e5c0c375870d860fffa4d", + "bytes": 4820 + }, + "read-fixed-guard.patch": { + "sha256": "aef25aeb15c598d76da91aefa4405c1ae36c6390e7ec1bca4000818d9ba00c9d", + "bytes": 701 + }, + "read-fixed-guard.tar.gz": { + "sha256": "aef1b2005dd39b1b39b6134ea4ce866f6f45437f93ffc488b39443f3b5951e42", + "bytes": 28231 + }, + "variant-registry-all-empty-screen.tar.gz": { + "sha256": "bdc64991185aede07e5c420fe627d4d57e3a8ede2ee0d9603929ce3de13e64dc", + "bytes": 44452 + }, + "variant-registry-diagnostics.tar.gz": { + "sha256": "57d43a66f55eef5fb613c36254c3cdc2bb6ee13dc2b51ff6b7334c345e86978b", + "bytes": 27716 + }, + "variant-registry-final-core.tar.gz": { + "sha256": "50c8aaf98b60dd2894ec41f77a8e6f53fabfd35e24b21a56eb74a346da827713", + "bytes": 74906 + }, + "variant-registry-final-dispatch.tar.gz": { + "sha256": "b726f55cabb2400d42c45bdc7d1f740f637c5ff286f5a6f63ea17c1135807d3d", + "bytes": 46905 + }, + "variant-registry-screen.tar.gz": { + "sha256": "6cc4d4cf265fc32fa8d60e263e5993360546daee19e3c965499b2c0174d1faf7", + "bytes": 44454 + }, + "variant-registry.patch": { + "sha256": "46653b2008d1cb10d5791d151e60688ed2ee90fe05d2ff2bfd8a41cfb8e55d45", + "bytes": 7076 + } +} diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/read-fixed-guard.patch b/research/data/runtime-followups-2026-10-03/performance-experiments/read-fixed-guard.patch new file mode 100644 index 0000000..44dd5d1 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/read-fixed-guard.patch @@ -0,0 +1,17 @@ +diff --git a/crates/polyxml-core/src/parser.rs b/crates/polyxml-core/src/parser.rs +index afc027e..8c91b0f 100644 +--- a/crates/polyxml-core/src/parser.rs ++++ b/crates/polyxml-core/src/parser.rs +@@ -123,8 +123,10 @@ impl StackFrame { + } + + for (index, field) in self.schema.fields.iter().enumerate() { +- if let Some(value) = self.values[index].as_ref() { +- crate::schema::validate_fixed(field, value)?; ++ if field.fixed_value.is_some() { ++ if let Some(value) = self.values[index].as_ref() { ++ crate::schema::validate_fixed(field, value)?; ++ } + } + } + Ok(PolyValue::Record { diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/read-fixed-guard.tar.gz b/research/data/runtime-followups-2026-10-03/performance-experiments/read-fixed-guard.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..7acc3f6fb8f2e93f5d9f96d57a0b805e82214ae5 GIT binary patch literal 28231 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 S@&togDJp>7(||lA!2bfTlYILC literal 0 HcmV?d00001 diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-all-empty-screen.tar.gz b/research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-all-empty-screen.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d4e16df394455ff312035fdd57b0833ac0070487 GIT binary patch literal 44452 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 literal 0 HcmV?d00001 diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-diagnostics.tar.gz b/research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-diagnostics.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..2a54203a4856bcaa5525a2d9c05cae2ccf56f2d2 GIT binary patch literal 27716 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 literal 0 HcmV?d00001 diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-final-core.tar.gz b/research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-final-core.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..398357c921936c84d5b4149ea1a381f4192b647a GIT binary patch literal 74906 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 AcK`qY literal 0 HcmV?d00001 diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-final-dispatch.tar.gz b/research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-final-dispatch.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d03738eb56670b1a994593d8d807b34cc3283268 GIT binary patch literal 46905 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 S`e3Pv#ABy!1p^X^0RIcaUiQ`i literal 0 HcmV?d00001 diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-screen.tar.gz b/research/data/runtime-followups-2026-10-03/performance-experiments/variant-registry-screen.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..49a88ee3ccb3dd11c47d51e056c71bdaded8a679 GIT binary patch literal 44454 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, ++ populated: AtomicBool, ++} ++ + #[derive(Debug, Clone)] + pub struct ModelSchema { + pub name: String, +@@ -125,7 +132,7 @@ pub struct ModelSchema { + pub content_pattern: Option, + /// Concrete derivations eligible for `xsi:type` dispatch. Python may + /// refresh this registry when subclasses are defined after first use. +- variants: Arc>>>, ++ variants: Arc, + } + + impl ModelSchema { +@@ -136,12 +143,27 @@ impl ModelSchema { + /// Register the concrete derivations eligible for `xsi:type` dispatch. + /// Replaces the registry when subclasses are discovered after first use. + pub fn set_variants(&self, variants: Vec>) { +- *self.variants.write().unwrap_or_else(|p| p.into_inner()) = variants; ++ let mut registered = self ++ .variants ++ .schemas ++ .write() ++ .unwrap_or_else(|p| p.into_inner()); ++ *registered = variants; ++ // Publish emptiness while holding the registry lock. Cloned schemas ++ // share this flag, so later registration/clearing cannot leave a stale ++ // per-schema dispatch plan. Nonempty lookups still use the lock. ++ self.variants ++ .populated ++ .store(!registered.is_empty(), Ordering::Release); + } + + /// Registered derivations for `xsi:type` dispatch (empty when none). + pub fn variants(&self) -> Vec> { ++ if !self.has_variants() { ++ return Vec::new(); ++ } + self.variants ++ .schemas + .read() + .unwrap_or_else(|p| p.into_inner()) + .clone() +@@ -149,16 +171,16 @@ impl ModelSchema { + + /// Whether any `xsi:type` derivations are registered for this type. + pub fn has_variants(&self) -> bool { +- !self +- .variants +- .read() +- .unwrap_or_else(|p| p.into_inner()) +- .is_empty() ++ self.variants.populated.load(Ordering::Acquire) + } + + /// Look up a derivation by the QName local part of an `xsi:type` value. + pub fn find_variant(&self, local: &[u8]) -> Option> { ++ if !self.has_variants() { ++ return None; ++ } + self.variants ++ .schemas + .read() + .unwrap_or_else(|p| p.into_inner()) + .iter() +@@ -168,7 +190,11 @@ impl ModelSchema { + + /// Look up a derivation by its complete QName. + pub fn find_variant_qname(&self, namespace: &str, local: &[u8]) -> Option> { ++ if !self.has_variants() { ++ return None; ++ } + self.variants ++ .schemas + .read() + .unwrap_or_else(|p| p.into_inner()) + .iter() +@@ -180,7 +206,11 @@ impl ModelSchema { + + /// Whether `candidate` is a registered derivation of `self`. + pub fn matches_variant(&self, candidate: &ModelSchema) -> bool { ++ if !self.has_variants() { ++ return false; ++ } + self.variants ++ .schemas + .read() + .unwrap_or_else(|p| p.into_inner()) + .iter() +@@ -655,7 +685,7 @@ impl ModelSchemaBuilder { + is_abstract: self.is_abstract, + strict_root: self.strict_root, + content_pattern: self.content_pattern, +- variants: Arc::new(RwLock::new(Vec::new())), ++ variants: Arc::new(VariantRegistry::default()), + }) + } + } +diff --git a/crates/polyxml-core/tests/test_variant_registry.rs b/crates/polyxml-core/tests/test_variant_registry.rs +new file mode 100644 +index 0000000..9502c68 +--- /dev/null ++++ b/crates/polyxml-core/tests/test_variant_registry.rs +@@ -0,0 +1,75 @@ ++use std::sync::Arc; ++ ++use polyxml::schema::ModelSchema; ++ ++#[test] ++fn registration_and_clearing_are_visible_to_schema_clones() { ++ let base = ModelSchema::builder("Base").build(); ++ let clone = (*base).clone(); ++ let derived = ModelSchema::builder("Derived") ++ .namespace("urn:derived") ++ .build(); ++ assert!(!clone.has_variants()); ++ assert!(clone.variants().is_empty()); ++ base.set_variants(vec![Arc::clone(&derived)]); ++ assert!(clone.has_variants()); ++ assert!(Arc::ptr_eq(&clone.variants()[0], &derived)); ++ assert!(Arc::ptr_eq( ++ &clone.find_variant(b"Derived").unwrap(), ++ &derived ++ )); ++ assert!(clone.find_variant_qname("urn:other", b"Derived").is_none()); ++ assert!(Arc::ptr_eq( ++ &clone.find_variant_qname("urn:derived", b"Derived").unwrap(), ++ &derived ++ )); ++ assert!(clone.matches_variant(&derived)); ++ clone.set_variants(Vec::new()); ++ assert!(!base.has_variants()); ++ assert!(base.variants().is_empty()); ++ assert!(base.find_variant(b"Derived").is_none()); ++ assert!(!base.matches_variant(&derived)); ++ clone.set_variants(vec![Arc::clone(&derived)]); ++ assert!(base.has_variants()); ++ assert!(base.matches_variant(&derived)); ++} ++ ++#[test] ++fn concurrent_registry_updates_keep_complete_variant_snapshots() { ++ let base = ModelSchema::builder("Base").build(); ++ let derived = ModelSchema::builder("Derived").build(); ++ std::thread::scope(|scope| { ++ scope.spawn(|| { ++ for index in 0..4096 { ++ base.set_variants(if index % 2 == 0 { ++ Vec::new() ++ } else { ++ vec![Arc::clone(&derived)] ++ }); ++ } ++ base.set_variants(vec![Arc::clone(&derived)]); ++ }); ++ for _ in 0..4 { ++ scope.spawn(|| { ++ for _ in 0..4096 { ++ // These calls can observe different registry revisions. ++ // Each populated snapshot must contain the original Arc. ++ let _ = base.has_variants(); ++ let variants = base.variants(); ++ assert!(variants.len() <= 1); ++ for variant in variants { ++ assert!(Arc::ptr_eq(&variant, &derived)); ++ } ++ if let Some(variant) = base.find_variant(b"Derived") { ++ assert!(Arc::ptr_eq(&variant, &derived)); ++ } ++ } ++ }); ++ } ++ }); ++ assert!(base.has_variants()); ++ assert!(Arc::ptr_eq(&base.variants()[0], &derived)); ++ base.set_variants(Vec::new()); ++ assert!(!base.has_variants()); ++ assert!(base.variants().is_empty()); ++} diff --git a/research/runtime-followup-experiments-2026-10-03.md b/research/runtime-followup-experiments-2026-10-03.md new file mode 100644 index 0000000..f18e211 --- /dev/null +++ b/research/runtime-followup-experiments-2026-10-03.md @@ -0,0 +1,73 @@ +# Runtime follow-up experiments — October 3, 2026 + +These isolated experiments compare against `1819c91` from the runtime investigation +in draft PR #137. They do not change main. All timing consumers use matched source, +Criterion locks and toolchain, and alternate baseline/candidate process order. +Heavy runs are serial under the repository memory cap with one Cargo worker. +Raw samples, per-process confidence intervals, source patches, revision metadata +and focused-test logs are retained in [the evidence directory](data/runtime-followups-2026-10-03/performance-experiments/). + +## Empty variant registry (`42efd1f`) + +A shared atomic populated flag avoids the registry lock when no variants exist. +The setter updates the flag while holding the write lock; schemas and their +clones share it. Tests cover set/clear and concurrent registry access. + +Three process pairs, 100 samples, 3-second warmup and 5-second measurement: + +| Consumer | Candidate time change | +| --- | ---: | +| Catalog read, 1,000 items | +0.25% | +| Catalog read, 10,000 items | +0.00% | +| Sensor read | +0.49% | +| Catalog write, 1,000 items | -0.90% | +| Catalog write, 10,000 items | -1.02% | +| Sensor write | -4.98% (about 11 ns) | +| 1,000-item empty-registry read | -1.90% | +| 1,000-item registered-variant read | +1.56% | +| 1,000-item empty-registry write | -6.81% | +| 1,000-item registered-variant write | +0.77% | + +Negative means faster. Empty-registry writes improved in every process pair; +registered reads slowed in all three. Registered writes were noisy (-1.69% to ++6.93% per pair). Ordinary catalog reads did not improve. This is a workload +tradeoff, not a broad recovery of the historical parsing regression. Keep it +experimental pending review of the additional synchronization and populated path. + +Allocation counts and requested bytes match the baseline for the three plain +payload sizes. Simulated Callgrind instruction counts change by about -0.12% +on reads and -0.55% on writes; they are not hardware cycle measurements. + +## Borrow parent schema (`3017a88`) + +Replace the per-child Arc clone with a borrow from the parent frame; end the +borrow before mutating the stack. Mixed kinds retain one string allocation. +Wildcard, mixed, nil, depth-limit, fixed-value and xsi:type focused tests pass. +Two screening process pairs, 50 samples, 1-second warmup, 2-second measurement: +1,000-item reads +1.65%; 10,000-item reads -0.74%; sensor reads +1.53%. +There is no consistent measured improvement. Do not promote this as a speedup. + +## Compact mixed parent state (`149140b`) + +Store a nonzero parent branch index instead of Option and resolve the +kind from the parent schema when its child ends. The frame is 16 bytes smaller +on this host. A nested mixed regression verifies differing parent branch tables, +text order, complete round trips and truncated XML errors. Focused tests pass. +Screen settings match the borrowing experiment: 1,000-item reads +0.29%; +10,000-item reads +2.63%; sensor reads +1.78%. Smaller state did not establish +faster parsing. Retain the patch as a rejected performance prototype. + +## Fixed-value guard (`6cbd21f`) + +Checking whether a fixed value exists before looking up a parsed value produced +-0.90%, +0.55% and +0.19% on the three read payloads in a short screen. +This was neutral and was not selected. + +## Limits + +These are single-host WSL2 results, not concurrent throughput or peak-memory +measurements. Short screens reject weak hypotheses; they are not publishable +claims of small improvements. Full quality gates are required before promoting +an implementation; focused prototype tests alone are insufficient. Main remains +unchanged. Existing PR #137 still contains the selected serializer, scalar-state +and bounded pattern-cache improvements. From ea3310cdfe01a133ef1214537839b3d3828bd683 Mon Sep 17 00:00:00 2001 From: Bailey Nguyen Date: Sat, 3 Oct 2026 17:54:58 -0500 Subject: [PATCH 5/7] research: record complete registry quality gate and toolchain preflight --- .../polyxml-runtime-investigation/SKILL.md | 4 + .../performance-experiments/manifest.json | 8 + .../quality-gate-missing-tsc.txt | 274 +++++++ .../performance-experiments/quality-gate.txt | 769 ++++++++++++++++++ ...runtime-followup-experiments-2026-10-03.md | 6 + 5 files changed, 1061 insertions(+) create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/quality-gate-missing-tsc.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/quality-gate.txt diff --git a/.agents/skills/polyxml-runtime-investigation/SKILL.md b/.agents/skills/polyxml-runtime-investigation/SKILL.md index ebfa754..f203e7a 100644 --- a/.agents/skills/polyxml-runtime-investigation/SKILL.md +++ b/.agents/skills/polyxml-runtime-investigation/SKILL.md @@ -27,6 +27,10 @@ separate from the schema-driven `PolyValue` runtime. directory can retain another worktree's same-named top-level artifact despite a fresh Cargo result. Probe a fixture that distinguishes the revisions and record artifact hashes before using companion results as a comparison. +- Preflight the exact PATH used by the quality gate as well as timing tools. + A locally installed TypeScript compiler needs its node_modules/.bin on PATH; + having Node available does not make tsc available. Record missing-tool failures + and rerun the complete gate with the prepared toolchain environment. - Run heavy work serially, with one Cargo worker and the repository memory cap. Short comparisons screen hypotheses. Repeat retained improvements with longer measurements, alternating revision order and preserving every raw sample. diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json b/research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json index 7e1ba77..6da6dfe 100644 --- a/research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json @@ -23,6 +23,14 @@ "sha256": "a1517c48c784c62cc4c9326bb4e2869b4ad461c9264e5c0c375870d860fffa4d", "bytes": 4820 }, + "quality-gate-missing-tsc.txt": { + "sha256": "94ec8f6088a9f4b9321dee4d8a3498eec4e52be0bdbaab8b7d080c83d02a931f", + "bytes": 10510 + }, + "quality-gate.txt": { + "sha256": "d4aa026ec0307f81a049e2c82ade47cc6014e2f0ed54de2016185a6eab7bc618", + "bytes": 35973 + }, "read-fixed-guard.patch": { "sha256": "aef25aeb15c598d76da91aefa4405c1ae36c6390e7ec1bca4000818d9ba00c9d", "bytes": 701 diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/quality-gate-missing-tsc.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/quality-gate-missing-tsc.txt new file mode 100644 index 0000000..930aba5 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/quality-gate-missing-tsc.txt @@ -0,0 +1,274 @@ +memcap: <=7737 MiB (60% of 12895 MiB available) [systemd MemoryMax, swap off] +==> [1/6] Running Rust format check (cargo fmt)... +==> [2/6] Running Rust Clippy (cargo clippy -D warnings)... + Compiling proc-macro2 v1.0.107 + Compiling unicode-ident v1.0.24 + Compiling quote v1.0.47 + Compiling syn v3.0.5 + Compiling serde_core v1.0.229 + Compiling serde v1.0.229 + Checking memchr v2.8.3 + Compiling serde_derive v1.0.229 + Compiling syn v2.0.119 + Compiling zmij v1.0.23 + Checking lexical-util v1.0.7 + Checking siphasher v1.0.3 + Compiling serde_json v1.0.151 + Checking phf_shared v0.14.0 + Checking aho-corasick v1.1.5 + Checking regex-syntax v0.8.11 + Checking fastrand v2.5.0 + Checking itoa v1.0.18 + Checking regex-automata v0.4.18 + Checking lexical-write-integer v1.0.6 + Checking lexical-parse-integer v1.0.6 + Compiling thiserror v2.0.21 + Checking lexical-parse-float v1.0.6 + Checking lexical-write-float v1.0.6 + Checking regex v1.13.1 + Checking phf_generator v0.14.0 + Compiling thiserror-impl v2.0.21 + Checking memo-map v0.3.4 + Checking minijinja v2.24.0 + Checking phf_codegen v0.14.0 + Checking lexical-core v1.0.6 + Checking quick-xml v0.42.0 + Checking smallvec v1.16.2 + Checking heck v0.5.0 + Compiling libc v0.2.189 + Checking once_cell v1.21.4 + Checking polyxml v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-core) + Checking cfg-if v1.0.4 + Checking utf8parse v0.2.2 + Checking anstyle-parse v1.0.0 + Checking is_terminal_polyfill v1.70.2 + Checking colorchoice v1.0.5 + Checking anstyle-query v1.1.5 + Checking anstyle v1.0.14 + Checking anstream v1.0.0 + Checking bitflags v2.13.2 + Checking strsim v0.11.1 + Checking clap_lex v1.1.0 + Checking clap_builder v4.6.7 + Compiling clap_derive v4.6.7 + Checking clap v4.6.7 + Compiling rustix v1.1.5 + Compiling getrandom v0.4.3 + Compiling zerocopy v0.8.57 + Compiling zerocopy-derive v0.8.57 + Compiling shlex v2.0.1 + Checking linux-raw-sys v0.12.1 + Compiling find-msvc-tools v0.1.12 + Compiling cc v1.4.5 + Compiling autocfg v1.5.1 + Compiling num-traits v0.2.19 + Checking tempfile v3.27.0 + Checking half v2.7.1 + Compiling alloca v0.4.0 + Checking either v1.18.0 + Checking ciborium-io v0.2.2 + Checking ciborium-ll v0.2.2 + Checking itertools v0.13.0 + Checking cast v0.3.0 + Checking same-file v1.0.6 + Checking walkdir v2.5.0 + Checking criterion-plot v0.8.2 + Compiling phf_macros v0.14.0 + Checking ciborium v0.2.2 + Checking page_size v0.6.0 + Checking tinytemplate v1.2.1 + Checking anes v0.1.6 + Checking oorandom v11.1.5 + Checking yansi v1.0.1 + Checking diff v0.1.13 + Checking pretty_assertions v1.4.1 + Checking criterion v0.8.2 + Checking phf v0.14.0 + Compiling target-lexicon v0.13.5 + Compiling wasm-bindgen-shared v0.2.129 + Compiling pyo3-build-config v0.29.2 + Compiling rustversion v1.0.23 + Checking winnow v1.0.4 + Checking toml_parser v1.1.3+spec-1.1.0 + Compiling pyo3-ffi v0.29.2 + Checking serde_spanned v1.1.1 + Checking toml_datetime v1.1.1+spec-1.1.0 + Checking toml_writer v1.1.2+spec-1.1.0 + Checking toml v1.1.6+spec-1.1.0 + Checking glob v0.3.4 + Compiling bumpalo v3.20.3 + Compiling unicode-segmentation v1.13.3 + Compiling convert_case v0.6.0 + Compiling wasm-bindgen-macro-support v0.2.129 + Compiling wasm-bindgen v0.2.129 + Compiling pyo3 v0.29.2 + Compiling pyo3-macros-backend v0.29.2 + Compiling napi-build v2.5.0 + Compiling semver v1.0.28 + Compiling napi-derive-backend v1.0.75 + Compiling polyxml-js v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-js) + Compiling pyo3-macros v0.29.2 + Compiling wasm-bindgen-macro v0.2.129 + Checking polyxml-cli v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-cli) + Compiling ctor v0.2.9 + Checking napi-sys v2.4.0 + Checking napi v2.16.17 + Compiling napi-derive v2.16.13 + Checking polyxml-wasm v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-wasm) + Checking polyxml-python v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-python) + Checking polyxml-c v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-c) + Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.55s +==> [3/6] Running Rust workspace tests (cargo test)... + Compiling unicode-ident v1.0.24 + Compiling proc-macro2 v1.0.107 + Compiling quote v1.0.47 + Compiling syn v3.0.5 + Compiling serde_core v1.0.229 + Compiling siphasher v1.0.3 + Compiling memchr v2.8.3 + Compiling regex-syntax v0.8.11 + Compiling serde_derive v1.0.229 + Compiling heck v0.5.0 + Compiling serde v1.0.229 + Compiling lexical-util v1.0.7 + Compiling syn v2.0.119 + Compiling zmij v1.0.23 + Compiling aho-corasick v1.1.5 + Compiling phf_shared v0.14.0 + Compiling fastrand v2.5.0 + Compiling itoa v1.0.18 + Compiling cfg-if v1.0.4 + Compiling serde_json v1.0.151 + Compiling regex-automata v0.4.18 + Compiling lexical-parse-integer v1.0.6 + Compiling lexical-write-integer v1.0.6 + Compiling once_cell v1.21.4 + Compiling lexical-write-float v1.0.6 + Compiling lexical-parse-float v1.0.6 + Compiling regex v1.13.1 + Compiling phf_generator v0.14.0 + Compiling thiserror-impl v2.0.21 + Compiling memo-map v0.3.4 + Compiling minijinja v2.24.0 + Compiling thiserror v2.0.21 + Compiling phf_codegen v0.14.0 + Compiling lexical-core v1.0.6 + Compiling quick-xml v0.42.0 + Compiling smallvec v1.16.2 + Compiling libc v0.2.189 + Compiling polyxml v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-core) + Compiling utf8parse v0.2.2 + Compiling anstyle-parse v1.0.0 + Compiling is_terminal_polyfill v1.70.2 + Compiling colorchoice v1.0.5 + Compiling anstyle-query v1.1.5 + Compiling anstyle v1.0.14 + Compiling anstream v1.0.0 + Compiling strsim v0.11.1 + Compiling clap_lex v1.1.0 + Compiling clap_builder v4.6.7 + Compiling clap_derive v4.6.7 + Compiling bitflags v2.13.2 + Compiling clap v4.6.7 + Compiling linux-raw-sys v0.12.1 + Compiling rustix v1.1.5 + Compiling getrandom v0.4.3 + Compiling zerocopy-derive v0.8.57 + Compiling zerocopy v0.8.57 + Compiling tempfile v3.27.0 + Compiling half v2.7.1 + Compiling either v1.18.0 + Compiling ciborium-io v0.2.2 + Compiling ciborium-ll v0.2.2 + Compiling itertools v0.13.0 + Compiling same-file v1.0.6 + Compiling cast v0.3.0 + Compiling criterion-plot v0.8.2 + Compiling walkdir v2.5.0 + Compiling num-traits v0.2.19 + Compiling alloca v0.4.0 + Compiling phf_macros v0.14.0 + Compiling ciborium v0.2.2 + Compiling page_size v0.6.0 + Compiling tinytemplate v1.2.1 + Compiling yansi v1.0.1 + Compiling diff v0.1.13 + Compiling oorandom v11.1.5 + Compiling anes v0.1.6 + Compiling criterion v0.8.2 + Compiling pretty_assertions v1.4.1 + Compiling phf v0.14.0 + Compiling winnow v1.0.4 + Compiling toml_parser v1.1.3+spec-1.1.0 + Compiling toml_datetime v1.1.1+spec-1.1.0 + Compiling serde_spanned v1.1.1 + Compiling toml_writer v1.1.2+spec-1.1.0 + Compiling toml v1.1.6+spec-1.1.0 + Compiling wasm-bindgen-shared v0.2.129 + Compiling glob v0.3.4 + Compiling wasm-bindgen-macro-support v0.2.129 + Compiling wasm-bindgen-macro v0.2.129 + Compiling polyxml-cli v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-cli) + Compiling wasm-bindgen v0.2.129 + Compiling pyo3-macros-backend v0.29.2 + Compiling napi-derive-backend v1.0.75 + Compiling polyxml-js v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-js) + Compiling pyo3-macros v0.29.2 + Compiling pyo3-ffi v0.29.2 + Compiling ctor v0.2.9 + Compiling napi-sys v2.4.0 + Compiling napi v2.16.17 + Compiling pyo3 v0.29.2 + Compiling napi-derive v2.16.13 + Compiling polyxml-wasm v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-wasm) + Compiling polyxml-python v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-python) + Compiling polyxml-c v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-c) + Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 18s + Running unittests src/lib.rs (target/followup-registry-verification/debug/deps/polyxml-675b717e531d04ed) + +running 16 tests +test integer::tests::comparison_uses_sign_and_magnitude ... ok +test ir::chunker::tests::test_topological_scc_chunking_dag_invariants ... ok +test ir::root_selection_tests::inherited_base_does_not_select_sibling_types ... ok +test ir::root_selection_tests::keeps_references_descendants_and_substitutions ... ok +test ir::root_selection_tests::rejects_missing_and_ambiguous_roots ... ok +test json::tests::test_json_deserialization_accepts_python_field_names ... ok +test json::tests::test_json_roundtrip_primitives ... ok +test tests::test_namespaced_serialization ... ok +test tests::test_deserialization_does_not_confuse_xmlns_with_attributes ... ok +test ir::root_selection_tests::field_reference_keeps_substitution_group_members ... ok +test tests::test_streaming_xml_item_stream ... ok +test tests::test_roundtrip_serialization_deserialization ... ok +test tests::test_nested_elements_and_lists ... ok +test pattern::tests::bounded_cache_evicts_and_retains_invalid_results ... ok +test pattern::tests::cache_matches_uncached_regex_under_churn_and_concurrency ... ok +test pattern::tests::cyclic_working_set_above_capacity_keeps_reusing_entries ... ok + +test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s + + Running tests/test_adversarial_identifiers.rs (target/followup-registry-verification/debug/deps/test_adversarial_identifiers-34056256ccaa17cb) + +running 7 tests +test test_typescript_adversarial_compilation ... FAILED +test test_rust_adversarial_compilation ... ok +test test_python_adversarial_compilation ... ok +test test_go_adversarial_compilation ... ok +test test_cpp_adversarial_compilation ... ok +test test_java_adversarial_compilation ... ok +test test_csharp_adversarial_compilation ... ok + +failures: + +---- test_typescript_adversarial_compilation stdout ---- + +thread 'test_typescript_adversarial_compilation' (484912) panicked at crates/polyxml-core/tests/test_adversarial_identifiers.rs:207:10: +failed to run tsc: Os { code: 2, kind: NotFound, message: "No such file or directory" } +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + +failures: + test_typescript_adversarial_compilation + +test result: FAILED. 6 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.52s + +error: test failed, to rerun pass `-p polyxml --test test_adversarial_identifiers` diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/quality-gate.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/quality-gate.txt new file mode 100644 index 0000000..af7a56f --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/quality-gate.txt @@ -0,0 +1,769 @@ +memcap: <=7742 MiB (60% of 12904 MiB available) [systemd MemoryMax, swap off] +==> [1/6] Running Rust format check (cargo fmt)... +==> [2/6] Running Rust Clippy (cargo clippy -D warnings)... + Compiling pyo3-ffi v0.29.2 + Compiling pyo3 v0.29.2 + Checking polyxml-python v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-python) + Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.77s +==> [3/6] Running Rust workspace tests (cargo test)... + Compiling pyo3-ffi v0.29.2 + Compiling pyo3 v0.29.2 + Compiling polyxml-python v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-python) + Finished `test` profile [unoptimized + debuginfo] target(s) in 2.59s + Running unittests src/lib.rs (target/followup-registry-verification/debug/deps/polyxml-675b717e531d04ed) + +running 16 tests +test integer::tests::comparison_uses_sign_and_magnitude ... ok +test ir::chunker::tests::test_topological_scc_chunking_dag_invariants ... ok +test ir::root_selection_tests::inherited_base_does_not_select_sibling_types ... ok +test ir::root_selection_tests::rejects_missing_and_ambiguous_roots ... ok +test ir::root_selection_tests::keeps_references_descendants_and_substitutions ... ok +test json::tests::test_json_roundtrip_primitives ... ok +test json::tests::test_json_deserialization_accepts_python_field_names ... ok +test tests::test_deserialization_does_not_confuse_xmlns_with_attributes ... ok +test tests::test_streaming_xml_item_stream ... ok +test ir::root_selection_tests::field_reference_keeps_substitution_group_members ... ok +test tests::test_roundtrip_serialization_deserialization ... ok +test tests::test_namespaced_serialization ... ok +test tests::test_nested_elements_and_lists ... ok +test pattern::tests::bounded_cache_evicts_and_retains_invalid_results ... ok +test pattern::tests::cache_matches_uncached_regex_under_churn_and_concurrency ... ok +test pattern::tests::cyclic_working_set_above_capacity_keeps_reusing_entries ... ok + +test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s + + Running tests/test_adversarial_identifiers.rs (target/followup-registry-verification/debug/deps/test_adversarial_identifiers-34056256ccaa17cb) + +running 7 tests +test test_rust_adversarial_compilation ... ok +test test_python_adversarial_compilation ... ok +test test_go_adversarial_compilation ... ok +test test_cpp_adversarial_compilation ... ok +test test_java_adversarial_compilation ... ok +test test_typescript_adversarial_compilation ... ok +test test_csharp_adversarial_compilation ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.29s + + Running tests/test_any_attribute.rs (target/followup-registry-verification/debug/deps/test_any_attribute-d5795d9c5e0fdefd) + +running 1 test +test test_any_attribute_schema_parser_and_runtime_roundtrip ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_any_element.rs (target/followup-registry-verification/debug/deps/test_any_element-1fb225d6616938e8) + +running 2 tests +test test_any_element_go_codegen ... ok +test test_any_element_schema_parser_and_runtime_roundtrip ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_conformance.rs (target/followup-registry-verification/debug/deps/test_conformance-0b37810d65fedfce) + +running 4 tests +test test_soap_envelope_conformance ... ok +test test_ubl_invoice_conformance ... ok +test test_atom_feed_conformance ... ok +test test_streaming_catalog_conformance ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running tests/test_core.rs (target/followup-registry-verification/debug/deps/test_core-f4cc1079f88df2bc) + +running 9 tests +test integer_mappings_keep_fixed_width_builtins ... ok +test test_malformed_xml_syntax_error ... ok +test test_gregorian_partial_date_lexical_validation ... ok +test test_error_handling_invalid_scalars ... ok +test test_all_scalar_types ... ok +test test_xsi_nil_handling ... ok +test test_roundtrip_serialization_with_indentation ... ok +test unbounded_integers_round_trip_and_compare_exact_bounds ... ok +test test_xsd_gregorian_fields_round_trip_and_reject_invalid_dates ... ok + +test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_cpp_codegen.rs (target/followup-registry-verification/debug/deps/test_cpp_codegen-a4cd5571504c64d5) + +running 14 tests +test test_cpp_cmake_modules_file_set ... ok +test test_cpp_glaze_backend_meta_generation ... ok +test test_cpp_cmake_and_meson_generation ... ok +test simple_aliases_follow_their_base_types ... ok +test test_cpp_mode_and_backend_from_str_loose ... ok +test test_cpp_sanitization ... ok +test mixed_content_self_cycle_compiles ... ok +test mixed_content_mutual_cycle_compiles ... ok +Recursive tree unique_ptr passed. +test test_cpp_recursive_cycle_unique_ptr ... ok +Inheritance test passed. +test test_cpp_inheritance_codegen ... ok +test test_cpp_modules_compilation ... ok +Choice pattern matching passed. +test test_cpp_choice_variant_compilation ... ok +All C++20 tests passed successfully. +test test_cpp_struct_and_enum_codegen_compilation ... ok +ISO 20022 pacs.008 C++20 test passed. +test test_cpp_from_xsd_schema ... ok + +test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.88s + + Running tests/test_csharp_codegen.rs (target/followup-registry-verification/debug/deps/test_csharp_codegen-cf32febf6e7f0777) + +running 20 tests +test choice_variants_avoid_record_member_names ... ok +test emits_unrestricted_simple_types_and_validates_empty_records ... ok +test test_csharp_any_attribute_codegen ... ok +test test_csharp_record_kind_from_str_loose ... ok +test test_csharp_date_or_datetime_lexical_union ... ok +test test_csharp_sanitization ... ok +test test_csharp_sequence_nested_inside_choice_codegen ... ok +test test_csharp_source_gen_context ... ok + Determining projects to restore... + Restored /tmp/.tmpfYgpB5/PaymentsApp.csproj (in 186 ms). + PaymentsApp -> /tmp/.tmpfYgpB5/bin/Debug/net8.0/PaymentsApp.dll + +Build succeeded. + 0 Warning(s) + 0 Error(s) + +Time Elapsed 00:00:01.16 +test unbounded_integer_xml_preserves_digits ... ok +Choice pattern matching and XML serialization passed! +test test_csharp_choice_polymorphic_hierarchy ... ok + Determining projects to restore... + Restored /tmp/.tmp818yiI/TreeApp.csproj (in 174 ms). + TreeApp -> /tmp/.tmp818yiI/bin/Debug/net8.0/TreeApp.dll + +Build succeeded. + 0 Warning(s) + 0 Error(s) + +Time Elapsed 00:00:01.05 +Recursive tree C# tests passed cleanly! +test test_csharp_recursive_cycle ... ok + Determining projects to restore... + Restored /tmp/.tmpnIGy7i/CrmApp.csproj (in 169 ms). + CrmApp -> /tmp/.tmpnIGy7i/bin/Debug/net8.0/CrmApp.dll + +Build succeeded. + 0 Warning(s) + 0 Error(s) + +Time Elapsed 00:00:01.05 +Customer C# tests passed cleanly! +test test_csharp_records_and_enums_generation ... ok +test test_csharp_mutable_inheritance_roundtrip ... ok +test test_csharp_mutable_wrappers_and_choices_without_validation ... ok +test test_csharp_simple_content_class_validator_and_unsealed_records ... ok +test fixed_values_are_enforced_on_read_and_write ... ok +test lexical_union_attributes_round_trip ... ok +test element_defaults_preserve_absence_and_empty_presence ... ok +test nillable_enum_collection_round_trips ... ok +test particle_wire_structure_round_trips ... ok + +test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 51.47s + + Running tests/test_go_codegen.rs (target/followup-registry-verification/debug/deps/test_go_codegen-005c45ed4341be87) + +running 25 tests +test root_alias_names_are_unique_after_go_normalization ... ok +test referenced_element_uses_declared_type_after_includes ... ok +test test_go_any_attribute_codegen ... ok +test test_go_backend_from_str_loose ... ok +go: creating new go.mod: module payments +go: to add module requirements and sums: + go mod tidy +test imported_ordered_types_do_not_add_unused_bytes_import ... ok +test test_go_date_or_datetime_lexical_union ... ok +test test_go_easyjson_backend ... ok +test test_go_enum_only_schema_omits_unused_xml_import ... ok +test repeated_choice_branch_rejects_mixed_and_empty_selections ... ok +test roots_and_union_attributes_round_trip ... ok +test test_go_sanitization ... ok +test test_go_sonic_backend ... ok +=== RUN TestChoiceMutualExclusivity + payments_test.go:44: Correctly rejected concurrent choice branches: choice ContactChoice mutual exclusivity violation: multiple branches populated (2) +--- PASS: TestChoiceMutualExclusivity (0.00s) +PASS +test duplicate_choice_names_reject_invalid_branch_shapes ... ok +ok payments 0.003s +go: creating new go.mod: module tree +go: to add module requirements and sums: + go mod tidy +go: creating new go.mod: module crm +go: to add module requirements and sums: + go mod tidy +test test_go_choice_mutual_exclusivity ... ok +test nested_lexical_unions_compile_and_round_trip_in_go ... ok +test repeated_sequence_groups_enforce_bounds_and_order ... ok +test abstract_substitution_heads_are_rejected ... ok +test separate_choices_enforce_each_group ... ok +test test_go_abstract_xsi_type_dispatch ... ok +test test_go_namespaced_element_ref_matching ... ok +test temporal_scalars_preserve_xsd_lexical_values ... ok +=== RUN TestRecursiveTree +--- PASS: TestRecursiveTree (0.00s) +PASS +ok tree 0.002s +test test_go_recursive_cycle_pointers ... ok +=== RUN TestCustomerRoundtrip +--- PASS: TestCustomerRoundtrip (0.00s) +PASS +ok crm 0.002s +test test_go_struct_and_enum_generation ... ok +test unbounded_integer_xml_preserves_digits ... ok +test ordered_particles_and_choice_branches_round_trip ... ok + +test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.04s + + Running tests/test_java_codegen.rs (target/followup-registry-verification/debug/deps/test_java_codegen-a6078e165fc64681) + +running 17 tests +test test_java_identifier_sanitization ... ok +test test_java_jackson_backend_enum_annotations ... ok +test test_direct_codec_rejects_wildcards_and_name_collisions ... ok +test test_java_jackson_backend_simple_type_annotations ... ok +test test_java_jackson_backend_from_str_loose ... ok +test test_java_jackson_backend_union_annotations ... ok +test test_java_jackson_backend_struct_annotations ... ok +test test_java_bean_validation_annotations_are_opt_in ... ok +test jackson3_preserves_core_annotations_and_maps_record_text ... ok +test test_java_plain_record_inlines_base_fields ... ok +test test_java_sealed_interface_choice ... ok +test test_java_module_container_class ... ok +test test_java_records_and_enums_generation ... ok +test test_java_plain_record_extension_javac_execute ... ok +test test_java_record_builder_and_nested_codec_execute ... ok +test test_java_mutable_builders_and_direct_codecs_execute ... ok +test test_java_direct_nil_lists_choices_and_namespaces ... ok + +test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.43s + + Running tests/test_json.rs (target/followup-registry-verification/debug/deps/test_json-74440efee0e911e7) + +running 4 tests +test test_polyvalue_direct_json_methods ... ok +test test_json_nested_objects_and_lists ... ok +test test_json_primitives_and_alias_modes ... ok +test test_json_scalar_coercion ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_lexical_lists.rs (target/followup-registry-verification/debug/deps/test_lexical_lists-0f6750d9c4bf9a3c) + +running 2 tests +test named_list_items_enforce_facets_and_enumerations ... ok +test typed_lexical_lists_round_trip_across_codecs ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.34s + + Running tests/test_lexical_union_codegen.rs (target/followup-registry-verification/debug/deps/test_lexical_union_codegen-3c208893561d2732) + +running 2 tests +test lexical_union_xml_selects_first_valid_member_and_round_trips ... ok +test lexical_unions_are_typed_in_all_targets ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_mixed_content.rs (target/followup-registry-verification/debug/deps/test_mixed_content-1a697ad935ae2797) + +running 5 tests +test mixed_items_field_avoids_existing_attribute_name ... ok +test parser_builds_ordered_mixed_content_union ... ok +test mixed_content_preserves_nested_child_order ... ok +test mixed_content_preserves_text_and_child_order ... ok +test generated_models_keep_typed_content_items_in_all_targets ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_pattern_codegen.rs (target/followup-registry-verification/debug/deps/test_pattern_codegen-5eee5f9fe2ed3d1a) + +running 9 tests +test generated_typescript_pattern_validation_all_backends ... ok +test pattern_restrictions_preserve_or_groups_and_inherited_and_steps ... ok +test gregorian_primitives_emit_validated_types_across_targets ... ok +test generated_python_pattern_validation ... ok +test generated_go_pattern_validation_and_xml_roundtrip ... ok +test generated_java_pattern_validation_and_direct_codecs ... ok +test generated_cpp_pattern_validation ... ok +test generated_csharp_pattern_validation ... ok +test generated_rust_pattern_validation_and_xml_roundtrip ... ok + +test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.69s + + Running tests/test_python_codegen.rs (target/followup-registry-verification/debug/deps/test_python_codegen-cc734e908fb39fb6) + +running 16 tests +test test_identifier_sanitization ... ok +test test_python_abstract_meta_emission ... ok +test multiline_xsd_documentation_stays_inside_python_comments ... ok +test test_python_choice_union_codegen ... ok +test test_python_codecs_generation ... ok +test test_python_any_attribute_codegen ... ok +test test_python_dataclass_codegen ... ok +test test_python_generated_tag_and_custom_header ... ok +test test_python_any_element_codegen ... ok +test test_python_pydantic_codegen_with_facets ... ok +test test_python_recursive_type_codegen ... ok +test test_python_aot_codegen ... ok +test test_python_derived_meta_inheritance ... ok +test test_python_simplecontent_default_factory ... ok +test test_python_sequence_nested_inside_choice_codegen ... ok +test quoted_docstrings_preserve_text_and_remain_valid_python ... ok + +test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running tests/test_qualified_attributes.rs (target/followup-registry-verification/debug/deps/test_qualified_attributes-f8397a31cf1ecf15) + +running 5 tests +test global_attribute_references_round_trip_by_namespace ... ok +test imported_inline_global_attribute_enum_round_trips ... ok +test derived_validators_preserve_base_constraints ... ok +test lexical_dependencies_compile_and_round_trip_without_implicit_imports ... ok +test inherited_attribute_and_distinct_element_keep_separate_property_names ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.22s + + Running tests/test_runtime_fast_paths.rs (target/followup-registry-verification/debug/deps/test_runtime_fast_paths-7bf9091b7252b7db) + +running 6 tests +test repeated_lexical_lists_keep_whitespace_validation ... ok +test repeated_nested_records_validate_their_own_lexical_lists ... ok +test lexical_list_formatting_preserves_escaping_empty_lists_and_long_numbers ... ok +test indexed_scalar_state_preserves_enum_pattern_and_split_text ... ok +test cached_patterns_keep_raw_restriction_and_trimmed_pattern_semantics ... ok +test unified_scalar_state_keeps_mixed_branch_order_nil_and_nested_frames ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_rust_codecs.rs (target/followup-registry-verification/debug/deps/test_rust_codecs-9692e165bd5e14bf) + +running 4 tests +test test_facet_validation_min_max_length ... ok +test test_empty_element_codec ... ok +test test_recursive_boxing_roundtrip ... ok +test test_order_choice_roundtrip ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_rust_codegen.rs (target/followup-registry-verification/debug/deps/test_rust_codegen-8bce8b4b67c7eca3) + +running 26 tests +test multiline_docs_and_raw_field_names_are_valid_source ... ok +test test_rust_attribute_codec_loop_syntax ... ok +test test_rust_choice_union_codegen ... ok +test test_rust_digit_prefixed_module_sanitization ... ok +test test_rust_codecs_codegen ... ok +test test_rust_enum_and_methods ... ok +test test_rust_identifier_sanitization ... ok +test test_rust_extension_base_cycle_cut ... ok +test test_rust_phf_dispatch_uniquifies_like_field_metas ... ok +test test_rust_recursive_cycle_boxing ... ok +test test_rust_phf_dispatch_union_groups_branch_tags ... ok +test test_rust_extension_codecs_decode_and_encode_base_fields ... ok +test test_rust_extension_inlines_base_fields ... ok +test test_rust_owned_codegen ... ok +test test_rust_rkyv_derives ... ok +test test_rust_simple_type_cycle_resilience ... ok +test test_rust_phf_dispatch_emission ... ok +test test_rust_read_element_text_accumulates_refs_and_cdata ... ok +test test_rust_topological_scc_chunking ... ok +test test_rust_zero_copy_codegen ... ok +test test_rust_simple_content_extension_shadow_rule ... ok +test test_rust_simple_content_text_codec ... ok +test empty_modules_compile_without_unused_reexports ... ok +test binary_lexical_values_compile_and_round_trip_in_owned_and_borrowed_modes ... ok +test duplicate_wire_names_keep_distinct_json_values ... ok +test named_choice_wrappers_round_trip_without_unreachable_dispatch ... ok + +test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.11s + + Running tests/test_schema_audit.rs (target/followup-registry-verification/debug/deps/test_schema_audit-24992dfb5b4a626c) + +running 13 tests +test distinct_values_with_colliding_variant_names_stay_unique ... ok +test derived_simple_type_inherits_base_patterns ... ok +test quick_xml_serde_skips_unknown_elements ... ok +test all_languages_disambiguate_flat_collision ... ok +test named_group_reference_fields_are_parsed ... ok +test rust_flat_output_has_no_colliding_type_names ... ok +test duplicate_enumeration_values_are_deduped ... ok +test nested_inline_complex_type_is_extracted_not_leaked ... ok +test simple_content_extension_emits_value_field ... ok +test generated_rust_has_no_deny_unknown_fields ... ok +test restricted_simple_types_emit_named_aliases ... ok +test chameleon_include_adopts_including_namespace_per_includer ... ok +test diamond_includes_do_not_duplicate_upa_source_documents ... ok + +test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running tests/test_schema_ir.rs (target/followup-registry-verification/debug/deps/test_schema_ir-f793c1b9895343c7) + +running 20 tests +test global_attribute_reference_uses_declared_type ... ok +test consumed_particles_do_not_swallow_following_declarations ... ok +test missing_included_schema_is_an_error ... ok +test test_list_fields_do_not_trigger_spurious_cycles ... ok +test test_language_context_adapter ... ok +test schema_errors_preserve_forward_imports_and_annotation_payloads ... ok +test consumed_child_subtrees_do_not_swallow_following_types ... ok +test derived_complex_type_keeps_base_and_bounded_choice ... ok +test test_minijinja_template_engine_and_filters ... ok +test inline_list_item_types_preserve_enum_and_union_declarations ... ok +test test_tarjan_mutual_recursive_cycle_detection_and_boxing ... ok +test test_tarjan_self_recursive_cycle_detection_and_boxing ... ok +test test_parse_lexical_union_member_types_and_inline_members ... ok +test test_substitution_groups ... ok +test schema_for_schemas_declared_types_are_not_unknown_builtins ... ok +test xml_prefix_is_available_without_explicit_declaration ... ok +test test_parse_complex_type_and_facets ... ok +test test_sequence_nested_inside_choice_preserved_in_ir ... ok +test test_parse_choice_as_union ... ok +test imported_inline_global_attribute_types_are_resolved ... ok + +test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_security.rs (target/followup-registry-verification/debug/deps/test_security-c3afa670f1d6c619) + +running 6 tests +test test_malformed_unclosed_cdata_rejection ... ok +test test_cdata_section_handling ... ok +test test_numeric_character_references ... ok +test unsupported_general_entities_are_rejected ... ok +test test_xml_entity_roundtrip_escaping ... ok +test test_max_depth_recursion_limit ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_temporal_union.rs (target/followup-registry-verification/debug/deps/test_temporal_union-e25d1f9b83e2fdc4) + +running 2 tests +test go_temporal_union_preserves_branches_and_lexicals ... ok +test csharp_temporal_union_preserves_branches_and_lexicals ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.09s + + Running tests/test_transcoder.rs (target/followup-registry-verification/debug/deps/test_transcoder-6854114408316a2e) + +running 6 tests +test test_transcoder_errors ... ok +test test_schemaless_preserves_refs_cdata_and_attr_entities ... ok +test test_schemaless_pretty_transcoding ... ok +test test_schemaless_xml_to_json_and_back ... ok +test test_schema_directed_transcoding ... ok +test test_schema_from_ir_transcoding ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_ts_codegen.rs (target/followup-registry-verification/debug/deps/test_ts_codegen-4e67290c9758f4d9) + +running 9 tests +test test_ts_backend_from_str_loose ... ok +test test_ts_identifier_sanitization ... ok +test test_ts_discriminated_union_choice ... ok +test test_ts_recursive_cycle_zod_lazy ... ok +test test_ts_interface_and_enum_codegen ... ok +test test_ts_typebox_schema_generation ... ok +test test_ts_valibot_schema_generation ... ok +test test_ts_zod_schema_generation ... ok +test mixed_content_inheritance_compiles_with_widened_items ... ok + +test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s + + Running tests/test_ubl_csharp.rs (target/followup-registry-verification/debug/deps/test_ubl_csharp-b04bc8d2d5f891c2) + +running 2 tests +test unprefixed_xsd_builtin_simple_content_base_uses_default_namespace ... ok +test multi_namespace_roots_and_inherited_simple_content_compile_and_round_trip ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.04s + + Running tests/test_unbounded_choice.rs (target/followup-registry-verification/debug/deps/test_unbounded_choice-7672e62aa5ecca1a) + +running 1 test +go: creating new go.mod: module testmod +go: to add module requirements and sums: + go mod tidy +=== RUN TestUnboundedChoiceOrder +--- PASS: TestUnboundedChoiceOrder (0.00s) +PASS +ok testmod 0.002s +test test_unbounded_choice_ir_and_all_targets ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s + + Running tests/test_upa.rs (target/followup-registry-verification/debug/deps/test_upa-a20019d257c7eac5) + +running 6 tests +test local_form_and_in_scope_qnames_distinguish_namespaces ... ok +test imported_groups_and_chameleon_wildcards_keep_source_namespaces ... ok +test model_groups_derivation_and_substitution_members_are_checked ... ok +test all_groups_and_wildcard_namespaces_are_checked ... ok +test optional_siblings_and_choice_lookahead_violate_upa ... ok +test occurrence_ranges_keep_particle_identity_and_count_boundaries ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_value_constraints.rs (target/followup-registry-verification/debug/deps/test_value_constraints-73eb81a96de588c1) + +running 2 tests +test fixed_constraints_cover_input_and_output_in_value_space ... ok +test repeated_particle_cardinality_belongs_to_the_group ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_variant_registry.rs (target/followup-registry-verification/debug/deps/test_variant_registry-3dd5b7b4f906563b) + +running 2 tests +test registration_and_clearing_are_visible_to_schema_clones ... ok +test concurrent_registry_updates_keep_complete_variant_snapshots ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_xsi_type.rs (target/followup-registry-verification/debug/deps/test_xsi_type-2c07a0776bd0ec60) + +running 11 tests +test abstract_type_without_derivations_errors ... ok +test nil_abstract_complex_type_skips_concrete_dispatch ... ok +test abstract_type_requires_concrete_selector ... ok +test unknown_xsi_type_on_abstract_type_errors ... ok +test iterparse_dispatches_each_streamed_item ... ok +test variant_serialization_requires_namespaces ... ok +test root_xsi_type_dispatch_including_empty_element ... ok +test plain_type_attribute_is_not_mistaken_for_dispatch ... ok +test from_ir_flattens_base_fields_and_registers_variants ... ok +test nested_xsi_type_dispatch_and_round_trip ... ok +test xsi_type_resolves_namespace_inherited_from_parent ... ok + +test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/followup-registry-verification/debug/deps/polyxml-4ccc220bbd6a27a0) + +running 2 tests +test tests::test_c_abi_nested_list_batch_roundtrip ... ok +test tests::test_c_abi_namespaced_roundtrip ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/followup-registry-verification/debug/deps/polyxml_cli-dabf613ae4318f1b) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/main.rs (target/followup-registry-verification/debug/deps/polyxml-cec02944de7101b9) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_cli.rs (target/followup-registry-verification/debug/deps/test_cli-714ccf0c30d96734) + +running 47 tests +test fish_completion_filters_values_when_available ... ok +Loading manifest: /tmp/.tmpYybVc2/polyxml.toml +test manifest_generation_does_not_ignore_cli_overrides ... ok +Compiling schema: /tmp/.tmpYybVc2/model.xsd +Parsing schema: /tmp/.tmpADDsjF/customer.xsd + Namespace: urn:app + Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions) + Root elements: 0 +Emitting target [csharp] into /tmp/.tmpYybVc2/cs + Namespace: urn:crm + Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions) + Root elements: 0 +Code generation complete. +Emitting target [ts] into /tmp/.tmpYybVc2/ts +Emitting target [go] into /tmp/.tmpYybVc2/go +Emitting target [rust] into /tmp/.tmpYybVc2/rs +Build finished successfully. +test test_cli_csharp_source_gen_and_record_struct ... ok +test test_cli_build_polyxml_manifest_with_new_features ... ok +test test_cli_generate_custom_header_and_generated_tags ... ok +test test_cli_generate_dry_run ... ok +test test_cli_cpp_modules_and_glaze ... ok +test jackson3_cli_and_manifest_emit_equivalent_models ... ok +test test_cli_generate_help ... ok +test test_cli_generate_multi_lang ... ok +test imported_substitution_helpers_do_not_require_spurious_module_owners ... ok +Parsing schema: /tmp/.tmpX6QJuE/service.xsd + Namespace: urn:service + Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions) + Root elements: 0 +Code generation complete. +test test_cli_help ... ok +test python_features_respect_manifest_false_values_and_backend ... ok +test test_cli_generate_python_backends ... ok +test test_cli_generate_rust_zero_copy_and_owned ... ok +Parsing schema: /tmp/.tmpX6QJuE/service.xsd + Namespace: urn:service + Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions) + Root elements: 0 +Code generation complete. +Loading manifest: /tmp/.tmpuGOxZF/polyxml.toml +test test_cli_go_easyjson_and_sonic_backend ... ok +Compiling schema: /tmp/.tmpuGOxZF/schema.xsd + Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions) + Root elements: 0 +Emitting target [rust] into /tmp/.tmpuGOxZF/rs +Emitting target [go] into /tmp/.tmpuGOxZF/go +test retained_imported_ordered_helpers_belong_to_the_unique_namespace_module ... Emitting target [csharp] into /tmp/.tmpuGOxZF/cs +ok +Build finished successfully. +test test_cli_manifest_custom_header_workspace_and_target_override ... ok +test test_cli_python_aot_generation ... ok +Parsing schema: /tmp/.tmppdOm1g/event.xsd +Parsing schema: /tmp/.tmp9wbqgI/event.xsd + Namespace: urn:events + Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions) + Root elements: 0 + Namespace: urn:events + Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions) + Root elements: 0 +Code generation complete. +test test_cli_python_aot_rejects_dataclass_style_and_slots ... ok +test test_cli_rust_rkyv_feature ... ok +Code generation complete. +test test_cli_rust_phf_feature ... ok +go: creating new go.mod: module crm +test test_cli_multiple_root_element_selection ... ok +go: to add module requirements and sums: + go mod tidy +test completion_candidates_follow_target_validation ... ok +test invalid_schema_grammar_and_types_fail_before_generation ... ok +test test_cli_transcode_bidirectional ... ok +test test_cli_validate_valid_and_invalid ... ok +Parsing schema: /tmp/.tmp3QB74Z/item.xsd + Namespace: urn:store + Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions) + Root elements: 0 +Code generation complete. +test test_polyxml_toml_manifest_build ... ok +Parsing schema: /tmp/.tmp3QB74Z/item.xsd + Namespace: urn:store + Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions) + Root elements: 0 +Code generation complete. +test test_cli_typescript_valibot_and_typebox_backend ... ok +test bash_completion_filters_values_in_the_shell ... ok +test unified_help_shows_generation_options ... ok +test test_cli_root_element_selection ... ok +test test_root_selection_keeps_imported_module_types ... ok +test test_java_csharp_model_style_options_and_manifest ... ok +test validate_and_generate_reject_upa_violations ... ok +test unified_manifest_forms_generate_identical_output_and_validate_early ... ok +test zsh_completion_filters_values_when_available ... ok +test unsupported_xsd_alternatives_fail_explicitly ... ok +test unified_options_fail_before_schema_io_including_dry_run ... ok +test unified_supported_backends_and_styles_validate ... ok +=== RUN TestAccountE2E +--- PASS: TestAccountE2E (0.00s) +PASS +ok crm 0.003s +test test_cli_go_generation ... ok +E2E C++20 driver passed! +test test_cli_cpp_generation ... ok +test test_cli_java_generation ... ok +test test_cli_shared_modules_deduplication ... ok + Determining projects to restore... + Restored /tmp/.tmpxVkTZW/cli_csharp_app/CrmCliApp.csproj (in 213 ms). +test test_cli_typescript_generation ... ok + CrmCliApp -> /tmp/.tmpxVkTZW/cli_csharp_app/bin/Debug/net8.0/CrmCliApp.dll + +Build succeeded. + 0 Warning(s) + 0 Error(s) + +Time Elapsed 00:00:01.45 +E2E C# CLI test passed successfully! +test test_cli_csharp_generation ... ok +test test_cli_rust_split_units_and_chunking ... ok + +test result: ok. 47 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.86s + + Running unittests src/lib.rs (target/followup-registry-verification/debug/deps/polyxml_js-878a75d7b7901cc9) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/followup-registry-verification/debug/deps/_polyxml-a668b0910babaf29) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/followup-registry-verification/debug/deps/polyxml_wasm-d510c7f48918b595) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests polyxml + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests polyxml_cli + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests polyxml_wasm + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + +==> [4/6] Compiling Python PyO3 extension (maturin develop)... +🍹 Building a mixed python/rust project +🐍 Found CPython 3.14 at /home/bailey/github/PolyXML/.venv/bin/python +🔗 Found pyo3 bindings with abi3-py3.12 support +📡 Using build options features from pyproject.toml +Using Python 3.14.4 environment at: /home/bailey/github/PolyXML/.venv +Checked 6 packages in 0.87ms + Compiling syn v3.0.5 + Compiling serde_core v1.0.229 + Compiling serde_derive v1.0.229 + Compiling serde v1.0.229 + Compiling pyo3-ffi v0.29.2 + Compiling syn v2.0.119 + Compiling fastrand v2.5.0 + Compiling phf_generator v0.14.0 + Compiling pyo3-macros-backend v0.29.2 + Compiling thiserror-impl v2.0.21 + Compiling serde_json v1.0.151 + Compiling minijinja v2.24.0 + Compiling thiserror v2.0.21 + Compiling pyo3 v0.29.2 + Compiling pyo3-macros v0.29.2 + Compiling phf_codegen v0.14.0 + Compiling quick-xml v0.42.0 + Compiling polyxml v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-core) + Compiling polyxml-python v0.34.6 (/home/bailey/github/PolyXML/crates/polyxml-python) + Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.40s +📦 Built wheel for abi3 Python ≥ 3.12 to /tmp/.tmpxP5qHa/polyxml-0.34.6-cp312-abi3-linux_x86_64.whl +✏️ Setting installed package as editable +🛠 Installed polyxml-0.34.6 +==> [5/6] Running Python Ruff checks... +All checks passed! +10 files already formatted +==> [6/6] Running Python tests with 100% statement & branch coverage... +........................................................................ [ 64%] +........................................ [100%] +================================ tests coverage ================================ +_______________ coverage: platform linux, python 3.14.4-final-0 ________________ + +Name Stmts Miss Branch BrPart Cover Missing +--------------------------------------------------- +TOTAL 181 0 58 0 100% + +3 files skipped due to complete coverage. +Required test coverage of 100% reached. Total coverage: 100.00% +112 passed in 0.52s +✨ All PolyXML dual-language quality gates passed! diff --git a/research/runtime-followup-experiments-2026-10-03.md b/research/runtime-followup-experiments-2026-10-03.md index f18e211..04f60f8 100644 --- a/research/runtime-followup-experiments-2026-10-03.md +++ b/research/runtime-followup-experiments-2026-10-03.md @@ -34,6 +34,12 @@ registered reads slowed in all three. Registered writes were noisy (-1.69% to tradeoff, not a broad recovery of the historical parsing regression. Keep it experimental pending review of the additional synchronization and populated path. +The registry branch passes the complete quality gate: 323 Rust tests, strict +workspace formatting and Clippy, Ruff, and 112 Python tests with 100% statement +and branch coverage. An initial gate stopped because the local tsc directory +was absent from PATH; the complete rerun with the prepared toolchain passed. +Both logs are retained. + Allocation counts and requested bytes match the baseline for the three plain payload sizes. Simulated Callgrind instruction counts change by about -0.12% on reads and -0.55% on writes; they are not hardware cycle measurements. From 3b51cbe0e6ac759fd07eba851e14a0b6b630ffd8 Mon Sep 17 00:00:00 2001 From: Bailey Nguyen Date: Sat, 3 Oct 2026 18:28:33 -0500 Subject: [PATCH 6/7] research: retain attribute tradeoffs and workspace artifact safeguards --- .../polyxml-runtime-investigation/SKILL.md | 13 ++- .../attribute-fast-final-core.tar.gz | Bin 0 -> 75015 bytes .../attribute-fast-focused-tests.txt | 67 +++++++++++ .../attribute-fast-screen.tar.gz | Bin 0 -> 28194 bytes .../attribute-fast.patch | 34 ++++++ .../isolated-mixed-writer-tests.txt | 105 ++++++++++++++++++ .../performance-experiments/manifest.json | 24 ++++ ...jected-shared-workspace-test-preflight.txt | 30 +++++ ...runtime-followup-experiments-2026-10-03.md | 35 ++++++ 9 files changed, 304 insertions(+), 4 deletions(-) create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast-final-core.tar.gz create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast-focused-tests.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast-screen.tar.gz create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast.patch create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/isolated-mixed-writer-tests.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/rejected-shared-workspace-test-preflight.txt diff --git a/.agents/skills/polyxml-runtime-investigation/SKILL.md b/.agents/skills/polyxml-runtime-investigation/SKILL.md index f203e7a..fcbb696 100644 --- a/.agents/skills/polyxml-runtime-investigation/SKILL.md +++ b/.agents/skills/polyxml-runtime-investigation/SKILL.md @@ -23,10 +23,15 @@ separate from the schema-driven `PolyValue` runtime. synchronize and rebuild an editable binding. After preparing its environment, use `uv run --no-sync` for companion runs. If a build overlaps timing, retain and mark that attempt as contaminated, then repeat it. - Use revision-owned CLI/native-binding build targets too: a shared debug - directory can retain another worktree's same-named top-level artifact despite - a fresh Cargo result. Probe a fixture that distinguishes the revisions and - record artifact hashes before using companion results as a comparison. + Use worktree-owned workspace build targets for tests, CLI and native bindings. + A shared debug target can retain an unchanged test executable linked to an + earlier worktree implementation, as well as stale top-level CLI aliases. + Even a Cargo compile message does not prove every executable was relinked. + Verify discriminating fixtures or symbols when switching revisions; discard + mismatched preflights and rerun in an isolated target. Standalone comparison + consumers use separate baseline/current targets, explicit dependency paths + and Cargo-reported hashed executable artifacts; keep them separate from + workspace build caches and retain artifact provenance. - Preflight the exact PATH used by the quality gate as well as timing tools. A locally installed TypeScript compiler needs its node_modules/.bin on PATH; having Node available does not make tsc available. Record missing-tool failures diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast-final-core.tar.gz b/research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast-final-core.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d45ee5c5285a576ae57293f341487bd2aaf527ac GIT binary patch literal 75015 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 krZlA~O=(I~n$nb}G^Hs`X-ZR?(vR literal 0 HcmV?d00001 diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast-focused-tests.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast-focused-tests.txt new file mode 100644 index 0000000..f2829dc --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast-focused-tests.txt @@ -0,0 +1,67 @@ +memcap: <=7740 MiB (60% of 12900 MiB available) [systemd MemoryMax, swap off] + Compiling polyxml v0.34.6 (/home/bailey/github/polyxml-attribute-fast/crates/polyxml-core) + Finished `test` profile [unoptimized + debuginfo] target(s) in 1.68s + Running tests/test_any_attribute.rs (/home/bailey/github/PolyXML/target/followup-borrow-verification/debug/deps/test_any_attribute-f8564805a9b9d00f) + +running 1 test +test test_any_attribute_schema_parser_and_runtime_roundtrip ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_any_element.rs (/home/bailey/github/PolyXML/target/followup-borrow-verification/debug/deps/test_any_element-48a6e5ab2c28f2fe) + +running 2 tests +test test_any_element_go_codegen ... ok +test test_any_element_schema_parser_and_runtime_roundtrip ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_runtime_fast_paths.rs (/home/bailey/github/PolyXML/target/followup-borrow-verification/debug/deps/test_runtime_fast_paths-cb1357dd8af777c0) + +running 6 tests +test repeated_lexical_lists_keep_whitespace_validation ... ok +test repeated_nested_records_validate_their_own_lexical_lists ... ok +test lexical_list_formatting_preserves_escaping_empty_lists_and_long_numbers ... ok +test indexed_scalar_state_preserves_enum_pattern_and_split_text ... ok +test cached_patterns_keep_raw_restriction_and_trimmed_pattern_semantics ... ok +test unified_scalar_state_keeps_mixed_branch_order_nil_and_nested_frames ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_security.rs (/home/bailey/github/PolyXML/target/followup-borrow-verification/debug/deps/test_security-e324fcc17a7a8524) + +running 6 tests +test test_malformed_unclosed_cdata_rejection ... ok +test test_cdata_section_handling ... ok +test test_numeric_character_references ... ok +test test_max_depth_recursion_limit ... ok +test test_xml_entity_roundtrip_escaping ... ok +test unsupported_general_entities_are_rejected ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_value_constraints.rs (/home/bailey/github/PolyXML/target/followup-borrow-verification/debug/deps/test_value_constraints-22fd91427282898a) + +running 2 tests +test fixed_constraints_cover_input_and_output_in_value_space ... ok +test repeated_particle_cardinality_belongs_to_the_group ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_xsi_type.rs (/home/bailey/github/PolyXML/target/followup-borrow-verification/debug/deps/test_xsi_type-c45053350e445953) + +running 11 tests +test abstract_type_without_derivations_errors ... ok +test plain_type_attribute_is_not_mistaken_for_dispatch ... ok +test from_ir_flattens_base_fields_and_registers_variants ... ok +test abstract_type_requires_concrete_selector ... ok +test iterparse_dispatches_each_streamed_item ... ok +test nil_abstract_complex_type_skips_concrete_dispatch ... ok +test nested_xsi_type_dispatch_and_round_trip ... ok +test unknown_xsi_type_on_abstract_type_errors ... ok +test root_xsi_type_dispatch_including_empty_element ... ok +test variant_serialization_requires_namespaces ... ok +test xsi_type_resolves_namespace_inherited_from_parent ... ok + +test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast-screen.tar.gz b/research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast-screen.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b363083e7f885c3fd86ab94152d6cfb7a0dbee3c GIT binary patch literal 28194 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 O&?!SbDkv8L^uGXsW(3gy literal 0 HcmV?d00001 diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast.patch b/research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast.patch new file mode 100644 index 0000000..1150e94 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/attribute-fast.patch @@ -0,0 +1,34 @@ +diff --git a/crates/polyxml-core/src/parser.rs b/crates/polyxml-core/src/parser.rs +index afc027e..43f50c0 100644 +--- a/crates/polyxml-core/src/parser.rs ++++ b/crates/polyxml-core/src/parser.rs +@@ -154,6 +154,9 @@ fn parse_field_scalar( + pub struct XmlDeserializer; + + fn is_nil_element(e: &BytesStart) -> bool { ++ if e.attributes_raw().is_empty() { ++ return false; ++ } + for attr in e.attributes().flatten() { + let raw_key = attr.key.as_ref(); + if raw_key == "xmlns" || raw_key.starts_with("xmlns:") { +@@ -172,6 +175,9 @@ fn is_nil_element(e: &BytesStart) -> bool { + /// Extend inherited namespace bindings for this element. Elements without + /// declarations share the existing map. + fn namespace_scope(parent: &NamespaceScope, e: &BytesStart) -> NamespaceScope { ++ if e.attributes_raw().is_empty() { ++ return Arc::clone(parent); ++ } + let mut scope = None; + for attr in e.attributes().flatten() { + let key = attr.key.as_ref(); +@@ -995,6 +1001,9 @@ impl XmlDeserializer { + } + + pub(crate) fn parse_attributes(e: &BytesStart, frame: &mut StackFrame) -> Result<()> { ++ if frame.schema.attribute_map.is_empty() && frame.schema.any_attribute_field.is_none() { ++ return Ok(()); ++ } + let mut any_attrs: Option> = None; + for attr in e.attributes().flatten() { + let raw_key = attr.key.as_ref(); diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/isolated-mixed-writer-tests.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/isolated-mixed-writer-tests.txt new file mode 100644 index 0000000..211c16c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/isolated-mixed-writer-tests.txt @@ -0,0 +1,105 @@ +memcap: <=7758 MiB (60% of 12930 MiB available) [systemd MemoryMax, swap off] + Compiling proc-macro2 v1.0.107 + Compiling unicode-ident v1.0.24 + Compiling quote v1.0.47 + Compiling syn v3.0.5 + Compiling serde_core v1.0.229 + Compiling syn v2.0.119 + Compiling memchr v2.8.3 + Compiling siphasher v1.0.3 + Compiling serde v1.0.229 + Compiling serde_derive v1.0.229 + Compiling zerocopy v0.8.57 + Compiling libc v0.2.189 + Compiling zmij v1.0.23 + Compiling cfg-if v1.0.4 + Compiling lexical-util v1.0.7 + Compiling zerocopy-derive v0.8.57 + Compiling serde_json v1.0.151 + Compiling shlex v2.0.1 + Compiling find-msvc-tools v0.1.12 + Compiling cc v1.4.5 + Compiling phf_shared v0.14.0 + Compiling aho-corasick v1.1.5 + Compiling regex-syntax v0.8.11 + Compiling fastrand v2.5.0 + Compiling autocfg v1.5.1 + Compiling itoa v1.0.18 + Compiling num-traits v0.2.19 + Compiling regex-automata v0.4.18 + Compiling half v2.7.1 + Compiling alloca v0.4.0 + Compiling lexical-write-integer v1.0.6 + Compiling lexical-parse-integer v1.0.6 + Compiling either v1.18.0 + Compiling rustix v1.1.5 + Compiling getrandom v0.4.3 + Compiling clap_lex v1.1.0 + Compiling ciborium-io v0.2.2 + Compiling anstyle v1.0.14 + Compiling thiserror v2.0.21 + Compiling phf_generator v0.14.0 + Compiling clap_builder v4.6.7 + Compiling ciborium-ll v0.2.2 + Compiling itertools v0.13.0 + Compiling lexical-parse-float v1.0.6 + Compiling lexical-write-float v1.0.6 + Compiling regex v1.13.1 + Compiling thiserror-impl v2.0.21 + Compiling linux-raw-sys v0.12.1 + Compiling same-file v1.0.6 + Compiling cast v0.3.0 + Compiling memo-map v0.3.4 + Compiling bitflags v2.13.2 + Compiling minijinja v2.24.0 + Compiling criterion-plot v0.8.2 + Compiling walkdir v2.5.0 + Compiling phf_codegen v0.14.0 + Compiling lexical-core v1.0.6 + Compiling ciborium v0.2.2 + Compiling clap v4.6.7 + Compiling phf_macros v0.14.0 + Compiling tinytemplate v1.2.1 + Compiling page_size v0.6.0 + Compiling quick-xml v0.42.0 + Compiling oorandom v11.1.5 + Compiling yansi v1.0.1 + Compiling heck v0.5.0 + Compiling diff v0.1.13 + Compiling anes v0.1.6 + Compiling smallvec v1.16.2 + Compiling once_cell v1.21.4 + Compiling tempfile v3.27.0 + Compiling polyxml v0.34.6 (/home/bailey/github/polyxml-mixed-writer/crates/polyxml-core) + Compiling criterion v0.8.2 + Compiling pretty_assertions v1.4.1 + Compiling phf v0.14.0 + Finished `test` profile [unoptimized + debuginfo] target(s) in 39.49s + Running tests/test_mixed_nil.rs (/home/bailey/github/PolyXML/target/followup-mixed-writer-verification/debug/deps/test_mixed_nil-1aec7ae934470d6f) + +running 2 tests +test nil_scalar_and_nested_items_keep_order_and_differ_from_empty_strings ... ok +test nil_instance_prefix_does_not_rebind_the_element_namespace ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_runtime_fast_paths.rs (/home/bailey/github/PolyXML/target/followup-mixed-writer-verification/debug/deps/test_runtime_fast_paths-cb1357dd8af777c0) + +running 6 tests +test repeated_lexical_lists_keep_whitespace_validation ... ok +test lexical_list_formatting_preserves_escaping_empty_lists_and_long_numbers ... ok +test repeated_nested_records_validate_their_own_lexical_lists ... ok +test indexed_scalar_state_preserves_enum_pattern_and_split_text ... ok +test cached_patterns_keep_raw_restriction_and_trimmed_pattern_semantics ... ok +test unified_scalar_state_keeps_mixed_branch_order_nil_and_nested_frames ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_value_constraints.rs (/home/bailey/github/PolyXML/target/followup-mixed-writer-verification/debug/deps/test_value_constraints-22fd91427282898a) + +running 2 tests +test fixed_constraints_cover_input_and_output_in_value_space ... ok +test repeated_particle_cardinality_belongs_to_the_group ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json b/research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json index 6da6dfe..f190337 100644 --- a/research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/manifest.json @@ -1,4 +1,20 @@ { + "attribute-fast-final-core.tar.gz": { + "sha256": "52cc05df84a6233d23cfbda8d8fc1c353b7ac7c0670685e9d8507b776ec6656d", + "bytes": 75015 + }, + "attribute-fast-focused-tests.txt": { + "sha256": "1d4083383238aad7c17e4b18878d25eeb3355dcb0b9225cd8dc0bb86df5495e1", + "bytes": 3498 + }, + "attribute-fast-screen.tar.gz": { + "sha256": "d8ed59800765f5889de5fe94a4606802c3084b946bd43f4ed9cc5620663ed00b", + "bytes": 28194 + }, + "attribute-fast.patch": { + "sha256": "6efc4d7824c9d5632393592e979035083781b129f29b684c20b674446aadc2c6", + "bytes": 1436 + }, "borrow-schema-screen.tar.gz": { "sha256": "9e99be1bea3b5602be4920c53c9b517d8c6bb161afae51a8176bc3eb04affda6", "bytes": 28085 @@ -23,6 +39,10 @@ "sha256": "a1517c48c784c62cc4c9326bb4e2869b4ad461c9264e5c0c375870d860fffa4d", "bytes": 4820 }, + "isolated-mixed-writer-tests.txt": { + "sha256": "09f54b5a5d6dc3c5187dbe8aca8372cbd8917ab9f24dd1839e990be0602f8382", + "bytes": 4069 + }, "quality-gate-missing-tsc.txt": { "sha256": "94ec8f6088a9f4b9321dee4d8a3498eec4e52be0bdbaab8b7d080c83d02a931f", "bytes": 10510 @@ -39,6 +59,10 @@ "sha256": "aef1b2005dd39b1b39b6134ea4ce866f6f45437f93ffc488b39443f3b5951e42", "bytes": 28231 }, + "rejected-shared-workspace-test-preflight.txt": { + "sha256": "a76e000ad3d29edcef0acbf6f4a3f626859df52c9a9ba36f10f45416d758c0ae", + "bytes": 1632 + }, "variant-registry-all-empty-screen.tar.gz": { "sha256": "bdc64991185aede07e5c420fe627d4d57e3a8ede2ee0d9603929ce3de13e64dc", "bytes": 44452 diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/rejected-shared-workspace-test-preflight.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/rejected-shared-workspace-test-preflight.txt new file mode 100644 index 0000000..d0927e6 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/rejected-shared-workspace-test-preflight.txt @@ -0,0 +1,30 @@ +memcap: <=7766 MiB (60% of 12944 MiB available) [systemd MemoryMax, swap off] + Compiling polyxml v0.34.6 (/home/bailey/github/polyxml-mixed-writer/crates/polyxml-core) + Finished `test` profile [unoptimized + debuginfo] target(s) in 1.08s + Running tests/test_mixed_nil.rs (/home/bailey/github/PolyXML/target/followup-borrow-verification/debug/deps/test_mixed_nil-1aec7ae934470d6f) + +running 2 tests +test nil_scalar_and_nested_items_keep_order_and_differ_from_empty_strings ... FAILED +test nil_instance_prefix_does_not_rebind_the_element_namespace ... FAILED + +failures: + +---- nil_scalar_and_nested_items_keep_order_and_differ_from_empty_strings stdout ---- + +thread 'nil_scalar_and_nested_items_keep_order_and_differ_from_empty_strings' (503936) panicked at crates/polyxml-core/tests/test_mixed_nil.rs:41:63: +called `Result::unwrap()` on an `Err` value: SerializationError("Invalid mixed content value for text") + +---- nil_instance_prefix_does_not_rebind_the_element_namespace stdout ---- + +thread 'nil_instance_prefix_does_not_rebind_the_element_namespace' (503935) panicked at crates/polyxml-core/tests/test_mixed_nil.rs:61:10: +called `Result::unwrap()` on an `Err` value: SerializationError("Invalid mixed content value for text") +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + +failures: + nil_instance_prefix_does_not_rebind_the_element_namespace + nil_scalar_and_nested_items_keep_order_and_differ_from_empty_strings + +test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + +error: test failed, to rerun pass `-p polyxml --test test_mixed_nil` diff --git a/research/runtime-followup-experiments-2026-10-03.md b/research/runtime-followup-experiments-2026-10-03.md index 04f60f8..5103745 100644 --- a/research/runtime-followup-experiments-2026-10-03.md +++ b/research/runtime-followup-experiments-2026-10-03.md @@ -69,6 +69,41 @@ Checking whether a fixed value exists before looking up a parsed value produced -0.90%, +0.55% and +0.19% on the three read payloads in a short screen. This was neutral and was not selected. +## Attribute fast path (`83706b3`) + +Skip nil/namespace attribute iteration when a tag has no attributes, and skip +model attribute processing when its schema has neither attribute fields nor an +attribute wildcard. Existing mixed, wildcard, depth, fixed-value and xsi:type +focused tests pass. Both short process pairs improved reads by 1.6–3.5%. + +The longer three-pair comparison (100 samples, 3-second warmup, 5-second +measurement) gives this complete binary tradeoff: + +| Consumer | Candidate time change | +| --- | ---: | +| Catalog read, 1,000 items | -1.55% | +| Catalog read, 10,000 items | -1.74% | +| Sensor read | -2.72% | +| Catalog write, 1,000 items | +2.03% | +| Catalog write, 10,000 items | +2.03% | +| Sensor write | +1.83% | + +All three pairs improved reads and slowed writes. Serializer source is unchanged, +but that does not prove unchanged binary performance. Keep the entire tradeoff; +do not publish only the favorable reads. A combined registry/attribute prototype +is pending, since separately measured changes need not combine additively. + +## Workspace artifact safeguard + +A shared debug workspace target also reused a previously linked mixed-nil test +executable after switching to the isolated-loop worktree. Its symbols lacked +the new helper and its tests rejected nil values, even though Cargo reported a +core compile. The exact same source passes in a fresh, worktree-owned target +whose executable contains the helper. The rejected preflight and isolated retry +are retained. Use dedicated workspace targets for tests as well as CLIs/bindings. +Standalone timing consumers use separate targets and explicit source dependency +paths; the nil consumer's compiled symbol confirms the nil helper is present. + ## Limits These are single-host WSL2 results, not concurrent throughput or peak-memory From 3d93d8441e2d49efe43ea19b06ea3de39fa64037 Mon Sep 17 00:00:00 2001 From: Bailey Nguyen Date: Sat, 3 Oct 2026 19:40:13 -0500 Subject: [PATCH 7/7] docs: retain combined read optimization tradeoffs --- .../performance-experiments/SHA256SUMS | 325 +++++++++ .../baseline-0.txt | 65 ++ .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../sensor_micro/new/tukey.json | 1 + .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../serialization/sensor_micro/new/tukey.json | 1 + .../baseline-1.txt | 65 ++ .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../sensor_micro/new/tukey.json | 1 + .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../serialization/sensor_micro/new/tukey.json | 1 + .../baseline-2.txt | 65 ++ .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../sensor_micro/new/tukey.json | 1 + .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../serialization/sensor_micro/new/tukey.json | 1 + .../baseline-build.txt | 3 + .../baseline.lock | 633 ++++++++++++++++++ .../current-0.txt | 65 ++ .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../sensor_micro/new/tukey.json | 1 + .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../serialization/sensor_micro/new/tukey.json | 1 + .../current-1.txt | 65 ++ .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../sensor_micro/new/tukey.json | 1 + .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../serialization/sensor_micro/new/tukey.json | 1 + .../current-2.txt | 63 ++ .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../sensor_micro/new/tukey.json | 1 + .../catalog_items/1000/base/benchmark.json | 1 + .../catalog_items/1000/base/estimates.json | 1 + .../catalog_items/1000/base/sample.json | 1 + .../catalog_items/1000/base/tukey.json | 1 + .../catalog_items/1000/new/benchmark.json | 1 + .../catalog_items/1000/new/estimates.json | 1 + .../catalog_items/1000/new/sample.json | 1 + .../catalog_items/1000/new/tukey.json | 1 + .../catalog_items/10000/base/benchmark.json | 1 + .../catalog_items/10000/base/estimates.json | 1 + .../catalog_items/10000/base/sample.json | 1 + .../catalog_items/10000/base/tukey.json | 1 + .../catalog_items/10000/new/benchmark.json | 1 + .../catalog_items/10000/new/estimates.json | 1 + .../catalog_items/10000/new/sample.json | 1 + .../catalog_items/10000/new/tukey.json | 1 + .../sensor_micro/base/benchmark.json | 1 + .../sensor_micro/base/estimates.json | 1 + .../sensor_micro/base/sample.json | 1 + .../sensor_micro/base/tukey.json | 1 + .../sensor_micro/new/benchmark.json | 1 + .../sensor_micro/new/estimates.json | 1 + .../sensor_micro/new/sample.json | 1 + .../serialization/sensor_micro/new/tukey.json | 1 + .../current-build.txt | 4 + .../current.lock | 633 ++++++++++++++++++ .../harness.rs | 172 +++++ .../metadata.json | 19 + .../summary.json | 428 ++++++++++++ .../combined-registry-attribute.patch | 231 +++++++ ...runtime-followup-experiments-2026-10-03.md | 11 +- 304 files changed, 3133 insertions(+), 2 deletions(-) create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/SHA256SUMS create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-build.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline.lock create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/benchmark.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/estimates.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/sample.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/tukey.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-build.txt create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current.lock create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/harness.rs create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/metadata.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/summary.json create mode 100644 research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute.patch diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/SHA256SUMS b/research/data/runtime-followups-2026-10-03/performance-experiments/SHA256SUMS new file mode 100644 index 0000000..3d7763a --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/SHA256SUMS @@ -0,0 +1,325 @@ +52cc05df84a6233d23cfbda8d8fc1c353b7ac7c0670685e9d8507b776ec6656d attribute-fast-final-core.tar.gz +1d4083383238aad7c17e4b18878d25eeb3355dcb0b9225cd8dc0bb86df5495e1 attribute-fast-focused-tests.txt +d8ed59800765f5889de5fe94a4606802c3084b946bd43f4ed9cc5620663ed00b attribute-fast-screen.tar.gz +6efc4d7824c9d5632393592e979035083781b129f29b684c20b674446aadc2c6 attribute-fast.patch +9e99be1bea3b5602be4920c53c9b517d8c6bb161afae51a8176bc3eb04affda6 borrow-schema-screen.tar.gz +68e90c9af143b078ee4ea5613a369ed72980f7d3e1004dcbf968738267e073d9 borrow-schema-tests.txt +f1ed9c87133c6da1a55a1d069d8213047c23c8ac3af0f90ba8510eec4a9bf6eb borrow-schema.patch +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/benchmark.json +b5d9776d3343246f4d8b8e5aa4101155a378376206bd8d746db3af9f3a12cd50 combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/estimates.json +5815cdbca765bdc3b3b730588d0260757a934e063504f932ae1a141cbfd80a41 combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/sample.json +140ee59fc6669699fdedf9ec2320df2e75e14e80a78d2e21169e7a667b791cbd combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/tukey.json +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/benchmark.json +b5d9776d3343246f4d8b8e5aa4101155a378376206bd8d746db3af9f3a12cd50 combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/estimates.json +5815cdbca765bdc3b3b730588d0260757a934e063504f932ae1a141cbfd80a41 combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/sample.json +140ee59fc6669699fdedf9ec2320df2e75e14e80a78d2e21169e7a667b791cbd combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/benchmark.json +10b385f4693ea62296ddef1b48ebea5c08ebcd4f0040d769cc9692578f8b783e combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/estimates.json +daede05ab3bad900189d737cf3e46820c49d57da079b726abe53d33c569cc561 combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/sample.json +ba2152f7d282a434e1358238184813de4a37b57e4aea576beee9885ca35db7cf combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/benchmark.json +10b385f4693ea62296ddef1b48ebea5c08ebcd4f0040d769cc9692578f8b783e combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/estimates.json +daede05ab3bad900189d737cf3e46820c49d57da079b726abe53d33c569cc561 combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/sample.json +ba2152f7d282a434e1358238184813de4a37b57e4aea576beee9885ca35db7cf combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/benchmark.json +da8384420b9c77da5b47ad5d1e238b356569c2d417c59b7cd7aad2813ab19803 combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/estimates.json +f4e1e835ad4ade5198f4ce94f1c4cf657d6d7bca7d9f078168b83dcdd910e779 combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/sample.json +ebac514b7285123eff4b18360852cf67109f5ea7d40c1cb5b9ddd605a388bf41 combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/benchmark.json +da8384420b9c77da5b47ad5d1e238b356569c2d417c59b7cd7aad2813ab19803 combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/estimates.json +f4e1e835ad4ade5198f4ce94f1c4cf657d6d7bca7d9f078168b83dcdd910e779 combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/sample.json +ebac514b7285123eff4b18360852cf67109f5ea7d40c1cb5b9ddd605a388bf41 combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/benchmark.json +1f9a9b7bca15d1d4f0d646ce8a828e0b71f6b6e367435c15340438fdf75ee00d combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/estimates.json +d83778801934d7e9d832ae3a07afd4df52b4ae50027a101b393b87d19129bbcd combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/sample.json +eab42e48850caed918fa1abc2a0b38f10016b5b70b7a171efb034685a27e2ab4 combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/benchmark.json +1f9a9b7bca15d1d4f0d646ce8a828e0b71f6b6e367435c15340438fdf75ee00d combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/estimates.json +d83778801934d7e9d832ae3a07afd4df52b4ae50027a101b393b87d19129bbcd combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/sample.json +eab42e48850caed918fa1abc2a0b38f10016b5b70b7a171efb034685a27e2ab4 combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/benchmark.json +2137e2d24d0c2e0d2dcb992bb712bd7a7b025ea32ceaae7297040da1fb97f1fa combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/estimates.json +e50b16703f0df3e86d229e10414c8624edbf6b1d783d23403911702ea103540e combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/sample.json +a457be5181798ca5e774eff7c9aed6398332edace8e5122ae81167a14035c639 combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/benchmark.json +2137e2d24d0c2e0d2dcb992bb712bd7a7b025ea32ceaae7297040da1fb97f1fa combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/estimates.json +e50b16703f0df3e86d229e10414c8624edbf6b1d783d23403911702ea103540e combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/sample.json +a457be5181798ca5e774eff7c9aed6398332edace8e5122ae81167a14035c639 combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/benchmark.json +fc001bea59b7a17268a786a8f15c3de6aa6f80902e9a4fe6e46b31f243af71f8 combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/estimates.json +25f5c9e97941c4b18d8e915a1a1c4652a2c592a055b54b8149070b90f4351797 combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/sample.json +eac186c7b902df45700d64fe9331c1d310820a30b16d933f358ef549d18c1632 combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/benchmark.json +fc001bea59b7a17268a786a8f15c3de6aa6f80902e9a4fe6e46b31f243af71f8 combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/estimates.json +25f5c9e97941c4b18d8e915a1a1c4652a2c592a055b54b8149070b90f4351797 combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/sample.json +eac186c7b902df45700d64fe9331c1d310820a30b16d933f358ef549d18c1632 combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/tukey.json +bee34e73be331f431ca1119eba0d775b7d04345ae7ae190caa84a3264592b041 combined-registry-attribute-core/baseline-0.txt +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/benchmark.json +0bf97b6b0949993fececc3f1f77b6e75b51387743185aaa01eb1cd1c7292de4e combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/estimates.json +2b4ae7f420d720ad6cfef5de61b5eda5d79dd415320511ec63f6055615ee5214 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/sample.json +f152ba86e894a07299adf8e306c44202f4a61963a12bb8e92b62ccfecbf07e67 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/tukey.json +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/benchmark.json +0bf97b6b0949993fececc3f1f77b6e75b51387743185aaa01eb1cd1c7292de4e combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/estimates.json +2b4ae7f420d720ad6cfef5de61b5eda5d79dd415320511ec63f6055615ee5214 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/sample.json +f152ba86e894a07299adf8e306c44202f4a61963a12bb8e92b62ccfecbf07e67 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/benchmark.json +0b9dc1f228aab2c1f56e05902c85e5963c6459984d8569612ad8cd6dde8bdb21 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/estimates.json +cd205e2f0696715c7df024ecdf019cbaf75a2c58c56956378c8a466c1b5699f2 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/sample.json +d49ec3dc9cf5027e72d1f3f4d985b529b10055c0098e5c7eb8c2491e61fecfb8 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/benchmark.json +0b9dc1f228aab2c1f56e05902c85e5963c6459984d8569612ad8cd6dde8bdb21 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/estimates.json +cd205e2f0696715c7df024ecdf019cbaf75a2c58c56956378c8a466c1b5699f2 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/sample.json +d49ec3dc9cf5027e72d1f3f4d985b529b10055c0098e5c7eb8c2491e61fecfb8 combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/benchmark.json +b9a3e354597518fc98af1250efb1f455b3ceda47b8d99a78a2c92af3d9e12c17 combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/estimates.json +aa60028693bf514c50ea7780f3feb152192fa970b21660b28fa28d7e6703c949 combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/sample.json +d27adee7e88dc6f1b1272937313e3c2a70f05b392bba3b6566c73e703c340291 combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/benchmark.json +b9a3e354597518fc98af1250efb1f455b3ceda47b8d99a78a2c92af3d9e12c17 combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/estimates.json +aa60028693bf514c50ea7780f3feb152192fa970b21660b28fa28d7e6703c949 combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/sample.json +d27adee7e88dc6f1b1272937313e3c2a70f05b392bba3b6566c73e703c340291 combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/benchmark.json +f546908fc94e49c98b6ed71c78bd61657eb30784561cb187f657744c0f3b0684 combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/estimates.json +d55ac7e733872cee8205fed1c2bdb21355ef8dd680adeaac2cf0e9bd5b20056b combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/sample.json +3b27bfbb0a3c6694b3439dd6e7e7c81a6a13e319658bb1e5d4b18b06b3edead3 combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/benchmark.json +f546908fc94e49c98b6ed71c78bd61657eb30784561cb187f657744c0f3b0684 combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/estimates.json +d55ac7e733872cee8205fed1c2bdb21355ef8dd680adeaac2cf0e9bd5b20056b combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/sample.json +3b27bfbb0a3c6694b3439dd6e7e7c81a6a13e319658bb1e5d4b18b06b3edead3 combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/benchmark.json +2a3482bad492285540c831f2a1bcd4140cc91269903e3b2258bd393590c0de38 combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/estimates.json +8a29fe3431932f99947f61334bde54cf72dcaee3b3555f111974a7e4bb78fd14 combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/sample.json +1f46a4f29c0d66361fcd6a9653c0bd7d1c31a19fab65240d0bcc97a040d07c33 combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/benchmark.json +2a3482bad492285540c831f2a1bcd4140cc91269903e3b2258bd393590c0de38 combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/estimates.json +8a29fe3431932f99947f61334bde54cf72dcaee3b3555f111974a7e4bb78fd14 combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/sample.json +1f46a4f29c0d66361fcd6a9653c0bd7d1c31a19fab65240d0bcc97a040d07c33 combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/benchmark.json +4fd7f61ac056e9a8f299c6c35db3a5fb6620c68c479eefb2828291ba4dafac6b combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/estimates.json +d978a01592d5e829c6694f9560738bbc126284a1c226c8aa17fe1c6f58855807 combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/sample.json +1689407d334de468d4eec4e5fd1532587ea30352ac40140dcf899ac537664bb0 combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/benchmark.json +4fd7f61ac056e9a8f299c6c35db3a5fb6620c68c479eefb2828291ba4dafac6b combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/estimates.json +d978a01592d5e829c6694f9560738bbc126284a1c226c8aa17fe1c6f58855807 combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/sample.json +1689407d334de468d4eec4e5fd1532587ea30352ac40140dcf899ac537664bb0 combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/tukey.json +f4e10bffc6f49b674335556ddef4b72b4040c065de8c45a070d92ec02fd138d7 combined-registry-attribute-core/baseline-1.txt +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/benchmark.json +362276a4e3e79b2bd8c9b9be4167b3666a115e4e5fe2eb7dfe4934c71058cb57 combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/estimates.json +c06d5194928c98e097f3887b6a7877cabbabd0e2f46aae384b295ffc667b7dc9 combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/sample.json +1c4825a842bca4a824d8ee80f5a7d903bad70da0840e8677f29f6718b61a735b combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/tukey.json +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/benchmark.json +362276a4e3e79b2bd8c9b9be4167b3666a115e4e5fe2eb7dfe4934c71058cb57 combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/estimates.json +c06d5194928c98e097f3887b6a7877cabbabd0e2f46aae384b295ffc667b7dc9 combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/sample.json +1c4825a842bca4a824d8ee80f5a7d903bad70da0840e8677f29f6718b61a735b combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/benchmark.json +bc6add1159e18f35922d6d4814dd0956d763218d427142c1b10de8ec77d2f020 combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/estimates.json +d2b93187737c6368d86d93b0e4c66e3519462b26a9e17c609238f9fd620fbc54 combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/sample.json +2c333dcb930c30e059f70876d3a69b427b31c5ccbac59d9d8a002d3485a25eeb combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/benchmark.json +bc6add1159e18f35922d6d4814dd0956d763218d427142c1b10de8ec77d2f020 combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/estimates.json +d2b93187737c6368d86d93b0e4c66e3519462b26a9e17c609238f9fd620fbc54 combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/sample.json +2c333dcb930c30e059f70876d3a69b427b31c5ccbac59d9d8a002d3485a25eeb combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/benchmark.json +b02ee482e5b309c18c3df12d4beb0fc8206d3b6cf5d807dd55ded34965144a44 combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/estimates.json +0d9c8eb97cd3cbee81f4a575d9c8fd5f05c27f6deaec37817558e56b8138a8e7 combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/sample.json +0619e4ff816b927c76e0a0f494097f889030bb333d3be9928dfe1fb2901eaad0 combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/benchmark.json +b02ee482e5b309c18c3df12d4beb0fc8206d3b6cf5d807dd55ded34965144a44 combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/estimates.json +0d9c8eb97cd3cbee81f4a575d9c8fd5f05c27f6deaec37817558e56b8138a8e7 combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/sample.json +0619e4ff816b927c76e0a0f494097f889030bb333d3be9928dfe1fb2901eaad0 combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/benchmark.json +0e5b7b9b1b9eb47223cecb9767a64ae6dadfe8422939615b1e9f3b9a4e0deca2 combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/estimates.json +2bef38c60f767be5290c837a7c2c7435024373922e85af7bc54d2840d701cbd9 combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/sample.json +0ff7efe541cf7efada596f5e344e893c444113bbb8099153d3a58fbea493d922 combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/benchmark.json +0e5b7b9b1b9eb47223cecb9767a64ae6dadfe8422939615b1e9f3b9a4e0deca2 combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/estimates.json +2bef38c60f767be5290c837a7c2c7435024373922e85af7bc54d2840d701cbd9 combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/sample.json +0ff7efe541cf7efada596f5e344e893c444113bbb8099153d3a58fbea493d922 combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/benchmark.json +c88853c51414e5483cf26211354bd8986798937a5eff12ad67152fd1b3cb9a95 combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/estimates.json +2007bcb2e789537c2f3deb90dfbfe26e17659b84a2871125001c3c93070923cd combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/sample.json +f4d741498d9b40d7aa725cdecb54a3b963264c86f2c3dc4d7ead44d218328da9 combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/benchmark.json +c88853c51414e5483cf26211354bd8986798937a5eff12ad67152fd1b3cb9a95 combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/estimates.json +2007bcb2e789537c2f3deb90dfbfe26e17659b84a2871125001c3c93070923cd combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/sample.json +f4d741498d9b40d7aa725cdecb54a3b963264c86f2c3dc4d7ead44d218328da9 combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/benchmark.json +c74ea409bfba77568002de0936d9403035a82ac990df96ffc14b79ce23ddc7af combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/estimates.json +6422e4ee991ac13c46d1efe945ec3c6bd6d27f9d4f41c75ab492609a7b149f3b combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/sample.json +e489acf4c589f9b0baa39d47d77047271339e201cfffa4b3d6094c3217a1380c combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/benchmark.json +c74ea409bfba77568002de0936d9403035a82ac990df96ffc14b79ce23ddc7af combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/estimates.json +6422e4ee991ac13c46d1efe945ec3c6bd6d27f9d4f41c75ab492609a7b149f3b combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/sample.json +e489acf4c589f9b0baa39d47d77047271339e201cfffa4b3d6094c3217a1380c combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/tukey.json +34c8666d40bc6ed93ea5cc29fc4aa289b911e09c6d9dd98dfb59df247536c046 combined-registry-attribute-core/baseline-2.txt +16bbfc490cbf42698b63ec954ed449321140ecaac9beaecf3582bdb9197cf94b combined-registry-attribute-core/baseline-build.txt +a73a0247ac41e366eb762eb403780712b9132618b99e02b49fe6ded9862f65c5 combined-registry-attribute-core/baseline.lock +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/benchmark.json +62a06116fb4ed32b4f34845e1b17c833c82e8b035cf24f747793466769c1b91f combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/estimates.json +0666aff28af26638b19ea900c63067211581f2de7acbf79e7d3abaf001fa8793 combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/sample.json +d6eda124dc0ffe6b79205a820d00584ce10abfb9d2b16e13c1c431636f5f34ff combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/tukey.json +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/benchmark.json +62a06116fb4ed32b4f34845e1b17c833c82e8b035cf24f747793466769c1b91f combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/estimates.json +0666aff28af26638b19ea900c63067211581f2de7acbf79e7d3abaf001fa8793 combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/sample.json +d6eda124dc0ffe6b79205a820d00584ce10abfb9d2b16e13c1c431636f5f34ff combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/benchmark.json +245421241e38c34d4bff3ba272ebb6ca9de5ee218dfc34b5bf3c3488b38f1371 combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/estimates.json +64390e21a74f9dbd8c11d9e0021a599dde7f705f3673db33c2080f7cbe43e02a combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/sample.json +0695db6a310171290bd1509094743730991003adfe238cd57d3b3a1102017965 combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/benchmark.json +245421241e38c34d4bff3ba272ebb6ca9de5ee218dfc34b5bf3c3488b38f1371 combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/estimates.json +64390e21a74f9dbd8c11d9e0021a599dde7f705f3673db33c2080f7cbe43e02a combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/sample.json +0695db6a310171290bd1509094743730991003adfe238cd57d3b3a1102017965 combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/benchmark.json +962db3eded121d9754cca1622ee193d598d1fe1b45811d8220de6490eb95143b combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/estimates.json +135a19b2a53a420b2c2d13618fbb47e54e38ab2d8f46b3e272f9a5b7404290ad combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/sample.json +aea145b9f8acf10498526193fd61a78c6f0e9e774f5feb9fa7771c6928ad0a01 combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/benchmark.json +962db3eded121d9754cca1622ee193d598d1fe1b45811d8220de6490eb95143b combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/estimates.json +135a19b2a53a420b2c2d13618fbb47e54e38ab2d8f46b3e272f9a5b7404290ad combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/sample.json +aea145b9f8acf10498526193fd61a78c6f0e9e774f5feb9fa7771c6928ad0a01 combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/benchmark.json +d51a4c081c990e80eac9d65f0243b0f38bab4892959bdb702a7f853598d2d8f6 combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/estimates.json +968a708d6f166ffd460ff2720e002566bbb9ef4464daa5f79f056b65f1cc3f33 combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/sample.json +cd040bd71deba6f0b089386e27d2e5ab8493d8d4f499507fc2c1c5400389fe61 combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/benchmark.json +d51a4c081c990e80eac9d65f0243b0f38bab4892959bdb702a7f853598d2d8f6 combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/estimates.json +968a708d6f166ffd460ff2720e002566bbb9ef4464daa5f79f056b65f1cc3f33 combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/sample.json +cd040bd71deba6f0b089386e27d2e5ab8493d8d4f499507fc2c1c5400389fe61 combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/benchmark.json +a7dffd8b6f413ed9848bf2d749341e48eaa3aea18f1e6fec1f7af2d5588dde69 combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/estimates.json +3240df2b0392f612cd3beee384299fd96049cc75bdff06faea6189d9fd0a0c7f combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/sample.json +c3b6df99a875ffa75a1b7455ee116d1fe58906261c613fb87a521c317557cab7 combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/benchmark.json +a7dffd8b6f413ed9848bf2d749341e48eaa3aea18f1e6fec1f7af2d5588dde69 combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/estimates.json +3240df2b0392f612cd3beee384299fd96049cc75bdff06faea6189d9fd0a0c7f combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/sample.json +c3b6df99a875ffa75a1b7455ee116d1fe58906261c613fb87a521c317557cab7 combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/current-0/serialization/sensor_micro/base/benchmark.json +2ffc488755d866c4e74a3812066f594279b778e3fac2b3fd6719be2ff769858f combined-registry-attribute-core/current-0/serialization/sensor_micro/base/estimates.json +29548ef2a031a603afe6ed29970d5b03e317114d3f0b5cbd0314ca90566d8e86 combined-registry-attribute-core/current-0/serialization/sensor_micro/base/sample.json +70c6f90ffeb37fc605112b888904f24b65e25fed126d85d005d5890f0bf6e1d6 combined-registry-attribute-core/current-0/serialization/sensor_micro/base/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/current-0/serialization/sensor_micro/new/benchmark.json +2ffc488755d866c4e74a3812066f594279b778e3fac2b3fd6719be2ff769858f combined-registry-attribute-core/current-0/serialization/sensor_micro/new/estimates.json +29548ef2a031a603afe6ed29970d5b03e317114d3f0b5cbd0314ca90566d8e86 combined-registry-attribute-core/current-0/serialization/sensor_micro/new/sample.json +70c6f90ffeb37fc605112b888904f24b65e25fed126d85d005d5890f0bf6e1d6 combined-registry-attribute-core/current-0/serialization/sensor_micro/new/tukey.json +463eff9d7609d462c28c5b6f7354aa48404c556e4f03ed51d7e1c983cedd4d20 combined-registry-attribute-core/current-0.txt +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/benchmark.json +ceb7ec9ec4ce601a3871484df598e14e58df4bde8ba05f53fdf95f764cf8b685 combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/estimates.json +694b6256dd3c2802a572c7903b13f9a5dc327e24d8a3392644da859ae1305ab7 combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/sample.json +4b0902c8adc3c4b6eadc05d9cf713d1e467567326edbae009f0b321750f29734 combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/tukey.json +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/benchmark.json +ceb7ec9ec4ce601a3871484df598e14e58df4bde8ba05f53fdf95f764cf8b685 combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/estimates.json +694b6256dd3c2802a572c7903b13f9a5dc327e24d8a3392644da859ae1305ab7 combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/sample.json +4b0902c8adc3c4b6eadc05d9cf713d1e467567326edbae009f0b321750f29734 combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/benchmark.json +4604752fd8ac207db587fa61f743a0f6c1987c4e872dd9688b81af8033ea91f3 combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/estimates.json +2376287b58d6a4622f6b7550288a3a0ba7bd0a7bbaa43be49e23d5818f9d0daa combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/sample.json +0aaece46bcd84454fe1766b67b51800f4fa1ceef3dd3196519154ee830fe1907 combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/benchmark.json +4604752fd8ac207db587fa61f743a0f6c1987c4e872dd9688b81af8033ea91f3 combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/estimates.json +2376287b58d6a4622f6b7550288a3a0ba7bd0a7bbaa43be49e23d5818f9d0daa combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/sample.json +0aaece46bcd84454fe1766b67b51800f4fa1ceef3dd3196519154ee830fe1907 combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/benchmark.json +10d4051ae61cbeb437e7e7e5e3bd0b5cc7ed19fe5749128d71933bf78dce51a6 combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/estimates.json +f850fd26bad49eeb3368f2d204d783ad9364e2248d93e38c106c28e1ace1c0cf combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/sample.json +8586f9432d816eee21c810addd5db83f5ce236caaeef154d79bac818bd6b1f2f combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/benchmark.json +10d4051ae61cbeb437e7e7e5e3bd0b5cc7ed19fe5749128d71933bf78dce51a6 combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/estimates.json +f850fd26bad49eeb3368f2d204d783ad9364e2248d93e38c106c28e1ace1c0cf combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/sample.json +8586f9432d816eee21c810addd5db83f5ce236caaeef154d79bac818bd6b1f2f combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/benchmark.json +6241e88f4081fb297f30b12deb3e8096366b8bc2b1b6ab5513ffaac8359e6274 combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/estimates.json +452966c66a66460bf1926fef386d22aa03115cebbf04eab61d2985abc4fa9bbc combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/sample.json +0faf03de2cd9c71498cc1411d68c5e95b108690a4fbd3ca63a05b3f9a72c5ce4 combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/benchmark.json +6241e88f4081fb297f30b12deb3e8096366b8bc2b1b6ab5513ffaac8359e6274 combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/estimates.json +452966c66a66460bf1926fef386d22aa03115cebbf04eab61d2985abc4fa9bbc combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/sample.json +0faf03de2cd9c71498cc1411d68c5e95b108690a4fbd3ca63a05b3f9a72c5ce4 combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/benchmark.json +8e5bfb73c065c775f1745aae1c644f74e88bed93c170c423aaa2e2962c4cbdcf combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/estimates.json +ff299ac102fd71f99118f86ad49e9e7aa32e29377ec2dc583afae6ce08f9ecaa combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/sample.json +5477fd7c4d8678ab55e23ae06795f80f4eb8c61fc6db8c73231106fc6c639cc0 combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/benchmark.json +8e5bfb73c065c775f1745aae1c644f74e88bed93c170c423aaa2e2962c4cbdcf combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/estimates.json +ff299ac102fd71f99118f86ad49e9e7aa32e29377ec2dc583afae6ce08f9ecaa combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/sample.json +5477fd7c4d8678ab55e23ae06795f80f4eb8c61fc6db8c73231106fc6c639cc0 combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/current-1/serialization/sensor_micro/base/benchmark.json +e541e50dde6a3f57bfef61c43b6e7cdc3b1b19234593dda500bfdb50bd8a5be1 combined-registry-attribute-core/current-1/serialization/sensor_micro/base/estimates.json +f3f833d5b36f9c0ad271b21dbdfd0ed56293eae1a506ce1ae655ddaea83798cd combined-registry-attribute-core/current-1/serialization/sensor_micro/base/sample.json +d5c2862fccc75d7b281ea234984604bd73d0892ceafd75b49e13eebc1a59318a combined-registry-attribute-core/current-1/serialization/sensor_micro/base/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/current-1/serialization/sensor_micro/new/benchmark.json +e541e50dde6a3f57bfef61c43b6e7cdc3b1b19234593dda500bfdb50bd8a5be1 combined-registry-attribute-core/current-1/serialization/sensor_micro/new/estimates.json +f3f833d5b36f9c0ad271b21dbdfd0ed56293eae1a506ce1ae655ddaea83798cd combined-registry-attribute-core/current-1/serialization/sensor_micro/new/sample.json +d5c2862fccc75d7b281ea234984604bd73d0892ceafd75b49e13eebc1a59318a combined-registry-attribute-core/current-1/serialization/sensor_micro/new/tukey.json +83e0b4b0e35f54042179b927e06fd4b83f44fe126c25077c09215454856ff9e4 combined-registry-attribute-core/current-1.txt +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/benchmark.json +d95e3b8cc56ae0364a755df9fad82acb211a5fa605a2962746ef746ea3991948 combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/estimates.json +329d4b85da6930816295d67c4c9c75e2d8e8345f3c26ecac120500ac746e6379 combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/sample.json +c0a17899065f27baca4af1ec50004a819228bf7c167c9eda7a4d062a6576bdb3 combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/tukey.json +a9a199c4234205c7bbdc0b2efe0a05c81ffa333b7cb5b0cfafb9b2299589e360 combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/benchmark.json +d95e3b8cc56ae0364a755df9fad82acb211a5fa605a2962746ef746ea3991948 combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/estimates.json +329d4b85da6930816295d67c4c9c75e2d8e8345f3c26ecac120500ac746e6379 combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/sample.json +c0a17899065f27baca4af1ec50004a819228bf7c167c9eda7a4d062a6576bdb3 combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/benchmark.json +e38ae41c180e79f527190ff73151758cfc0e812fec469d8cb383682f9362a765 combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/estimates.json +fbe0e329a77708c109a1ec332fd42611dcf753b65e8cfc770cf7099af5d5ddab combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/sample.json +7dcadf50aa9cdafbe117d3b4515d069ec912f800bdc56eb736baf6b211fe29e2 combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/tukey.json +606da05652663411933f369574278b3048954bca5f91fa84fbb88881f3c0fb9d combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/benchmark.json +e38ae41c180e79f527190ff73151758cfc0e812fec469d8cb383682f9362a765 combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/estimates.json +fbe0e329a77708c109a1ec332fd42611dcf753b65e8cfc770cf7099af5d5ddab combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/sample.json +7dcadf50aa9cdafbe117d3b4515d069ec912f800bdc56eb736baf6b211fe29e2 combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/benchmark.json +371335d13c32f873a19a65e5f9c2a44cd5f6366ef02e2b607f475b891237def0 combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/estimates.json +4a0b81f66c51f01c251c5d37eed7b692fcaf1e3a4758cc9dc94c342429e6a53b combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/sample.json +c9ace0eff5c1ef206bf7d38d50f5994fef596622acedc392d06b606f68e4e634 combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/tukey.json +2f8bffe13cd590b5cfc5f153c574d011b6d6d4482c12ca937f077e01369378b3 combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/benchmark.json +371335d13c32f873a19a65e5f9c2a44cd5f6366ef02e2b607f475b891237def0 combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/estimates.json +4a0b81f66c51f01c251c5d37eed7b692fcaf1e3a4758cc9dc94c342429e6a53b combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/sample.json +c9ace0eff5c1ef206bf7d38d50f5994fef596622acedc392d06b606f68e4e634 combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/benchmark.json +d565ddac0ff6ca9e488abe0b8fa8340c597b10e42413d6d237e98aa007cc78a8 combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/estimates.json +85c19a0abd7f0684e7a0eaaaa695440ef9d9fb91a936976071444a6ff5beed93 combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/sample.json +fc33a98e4e858ec0f7a399e352f0d73a8877e9b04f2adf2ed28a69062ab75d09 combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/tukey.json +c8fd688a4a07f28fe31946942c6dae91a7fce48a0050dd58550d4e9f2d67f2c6 combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/benchmark.json +d565ddac0ff6ca9e488abe0b8fa8340c597b10e42413d6d237e98aa007cc78a8 combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/estimates.json +85c19a0abd7f0684e7a0eaaaa695440ef9d9fb91a936976071444a6ff5beed93 combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/sample.json +fc33a98e4e858ec0f7a399e352f0d73a8877e9b04f2adf2ed28a69062ab75d09 combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/benchmark.json +b242ed026b122064415a1bd4d8fef921ee2bc2583e183a515abaa8e50af4bcee combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/estimates.json +03ed2915b11762b995a686df57a6bd3e5136afa985097aee486b6ac760902883 combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/sample.json +876a727c1ea698902c404d7fbc084abd0a3a7d88501e769cbb0e4329990bb590 combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/tukey.json +ab2b4d0591784e51d10e172fdc50c3d056aba94e803ca35633e3eb41866b37dd combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/benchmark.json +b242ed026b122064415a1bd4d8fef921ee2bc2583e183a515abaa8e50af4bcee combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/estimates.json +03ed2915b11762b995a686df57a6bd3e5136afa985097aee486b6ac760902883 combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/sample.json +876a727c1ea698902c404d7fbc084abd0a3a7d88501e769cbb0e4329990bb590 combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/current-2/serialization/sensor_micro/base/benchmark.json +0ab227a9d9bae5f202d5546feabce5290a1183fa53d7b8436cfdb52866e35f8a combined-registry-attribute-core/current-2/serialization/sensor_micro/base/estimates.json +0a53e97937ae6fee0523cb980b4db874d3950f5ca823e99e849ec9723db5701c combined-registry-attribute-core/current-2/serialization/sensor_micro/base/sample.json +14da7cd8560a8f2946287cdf1c7da1897d5c9a472d346851c3b15f14985c8a1e combined-registry-attribute-core/current-2/serialization/sensor_micro/base/tukey.json +7ec2a49ce4ced0e9c3f1e30853291da13b5dbab719bdab7fb39143d96a820f77 combined-registry-attribute-core/current-2/serialization/sensor_micro/new/benchmark.json +0ab227a9d9bae5f202d5546feabce5290a1183fa53d7b8436cfdb52866e35f8a combined-registry-attribute-core/current-2/serialization/sensor_micro/new/estimates.json +0a53e97937ae6fee0523cb980b4db874d3950f5ca823e99e849ec9723db5701c combined-registry-attribute-core/current-2/serialization/sensor_micro/new/sample.json +14da7cd8560a8f2946287cdf1c7da1897d5c9a472d346851c3b15f14985c8a1e combined-registry-attribute-core/current-2/serialization/sensor_micro/new/tukey.json +c3678c108363c0cd7d550a46af06fcc3b89427ba5efc0ceab64fb96c60bcc33a combined-registry-attribute-core/current-2.txt +9667d37e0e18ff513058d0313b6d779a645c1a2e2d37ad09f1d44420f1f11cbc combined-registry-attribute-core/current-build.txt +a73a0247ac41e366eb762eb403780712b9132618b99e02b49fe6ded9862f65c5 combined-registry-attribute-core/current.lock +543d6b07b2f53e0773ee0c93580197fb497083e93cc525333a822770fa5372b9 combined-registry-attribute-core/harness.rs +f348f7acb4983b2e21666a1ea4bcdd5faff6f87ac70ab7e913dbaae526a3ae47 combined-registry-attribute-core/metadata.json +479ce83e26332c3366ce22817bae80dc22d62191b380dd9476ef02b2740f21cb combined-registry-attribute-core/summary.json +361ceb1ad031e27d95c89c3830bc273109487f9f9d06dffe20c07e5ae26de9e2 combined-registry-attribute.patch +c8fc1e0d2f409d969bd0052f4a143d972369c08ade66a2ced81b474a623859ac compact-frames-screen.tar.gz +7d10e91036fe40e63bd43c83b0450611bd9ee8216bf14cda6f488c9aafa404a7 compact-frames-tests.txt +a1517c48c784c62cc4c9326bb4e2869b4ad461c9264e5c0c375870d860fffa4d compact-frames.patch +09f54b5a5d6dc3c5187dbe8aca8372cbd8917ab9f24dd1839e990be0602f8382 isolated-mixed-writer-tests.txt +efc08c6b9efd8fd45d57accf1f22c3714d66aff1fd88c9ca3a0e778559be70bf manifest.json +94ec8f6088a9f4b9321dee4d8a3498eec4e52be0bdbaab8b7d080c83d02a931f quality-gate-missing-tsc.txt +d4aa026ec0307f81a049e2c82ade47cc6014e2f0ed54de2016185a6eab7bc618 quality-gate.txt +aef25aeb15c598d76da91aefa4405c1ae36c6390e7ec1bca4000818d9ba00c9d read-fixed-guard.patch +aef1b2005dd39b1b39b6134ea4ce866f6f45437f93ffc488b39443f3b5951e42 read-fixed-guard.tar.gz +a76e000ad3d29edcef0acbf6f4a3f626859df52c9a9ba36f10f45416d758c0ae rejected-shared-workspace-test-preflight.txt +bdc64991185aede07e5c420fe627d4d57e3a8ede2ee0d9603929ce3de13e64dc variant-registry-all-empty-screen.tar.gz +57d43a66f55eef5fb613c36254c3cdc2bb6ee13dc2b51ff6b7334c345e86978b variant-registry-diagnostics.tar.gz +50c8aaf98b60dd2894ec41f77a8e6f53fabfd35e24b21a56eb74a346da827713 variant-registry-final-core.tar.gz +b726f55cabb2400d42c45bdc7d1f740f637c5ff286f5a6f63ea17c1135807d3d variant-registry-final-dispatch.tar.gz +6cc4d4cf265fc32fa8d60e263e5993360546daee19e3c965499b2c0174d1faf7 variant-registry-screen.tar.gz +46653b2008d1cb10d5791d151e60688ed2ee90fe05d2ff2bfd8a41cfb8e55d45 variant-registry.patch diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0.txt new file mode 100644 index 0000000..b3b47b8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0.txt @@ -0,0 +1,65 @@ +memcap: <=7679 MiB (60% of 12798 MiB available) [systemd MemoryMax, swap off] +Benchmarking deserialization/sensor_micro +Benchmarking deserialization/sensor_micro: Warming up for 3.0000 s +Benchmarking deserialization/sensor_micro: Collecting 100 samples in estimated 5.0001 s (5.1M iterations) +Benchmarking deserialization/sensor_micro: Analyzing +deserialization/sensor_micro + time: [972.79 ns 979.23 ns 987.21 ns] + thrpt: [90.807 MiB/s 91.547 MiB/s 92.153 MiB/s] +Found 9 outliers among 100 measurements (9.00%) + 3 (3.00%) high mild + 6 (6.00%) high severe +Benchmarking deserialization/catalog_items/1000 +Benchmarking deserialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/1000: Collecting 100 samples in estimated 7.9475 s (10k iterations) +Benchmarking deserialization/catalog_items/1000: Analyzing +deserialization/catalog_items/1000 + time: [786.72 µs 791.17 µs 796.46 µs] + thrpt: [76.527 MiB/s 77.038 MiB/s 77.474 MiB/s] +Found 11 outliers among 100 measurements (11.00%) + 4 (4.00%) high mild + 7 (7.00%) high severe +Benchmarking deserialization/catalog_items/10000 +Benchmarking deserialization/catalog_items/10000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/10000: Collecting 100 samples in estimated 5.5476 s (700 iterations) +Benchmarking deserialization/catalog_items/10000: Analyzing +deserialization/catalog_items/10000 + time: [7.8591 ms 7.8832 ms 7.9104 ms] + thrpt: [80.644 MiB/s 80.922 MiB/s 81.170 MiB/s] +Found 6 outliers among 100 measurements (6.00%) + 2 (2.00%) high mild + 4 (4.00%) high severe + +Benchmarking serialization/sensor_micro +Benchmarking serialization/sensor_micro: Warming up for 3.0000 s +Benchmarking serialization/sensor_micro: Collecting 100 samples in estimated 5.0003 s (22M iterations) +Benchmarking serialization/sensor_micro: Analyzing +serialization/sensor_micro + time: [225.51 ns 226.48 ns 227.61 ns] + thrpt: [393.85 MiB/s 395.81 MiB/s 397.52 MiB/s] +Found 13 outliers among 100 measurements (13.00%) + 4 (4.00%) high mild + 9 (9.00%) high severe +Benchmarking serialization/catalog_items/1000 +Benchmarking serialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking serialization/catalog_items/1000: Collecting 100 samples in estimated 5.3892 s (30k iterations) +Benchmarking serialization/catalog_items/1000: Analyzing +serialization/catalog_items/1000 + time: [177.68 µs 178.61 µs 179.73 µs] + thrpt: [336.48 MiB/s 338.58 MiB/s 340.34 MiB/s] +Found 11 outliers among 100 measurements (11.00%) + 3 (3.00%) high mild + 8 (8.00%) high severe +Benchmarking serialization/catalog_items/10000 +Benchmarking serialization/catalog_items/10000: Warming up for 3.0000 s + +Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 9.1s, enable flat sampling, or reduce sample count to 50. +Benchmarking serialization/catalog_items/10000: Collecting 100 samples in estimated 9.1228 s (5050 iterations) +Benchmarking serialization/catalog_items/10000: Analyzing +serialization/catalog_items/10000 + time: [1.7793 ms 1.7854 ms 1.7924 ms] + thrpt: [353.24 MiB/s 354.62 MiB/s 355.84 MiB/s] +Found 8 outliers among 100 measurements (8.00%) + 5 (5.00%) high mild + 3 (3.00%) high severe + diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..90d9c75 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":791295.5965576116,"upper_bound":807947.6041901344},"point_estimate":798960.7753875297,"standard_error":4273.780934670834},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":780731.9299999999,"upper_bound":787563.1849315069},"point_estimate":783947.8251201923,"standard_error":1674.8906584056133},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":6247.412436543911,"upper_bound":14985.897852488499},"point_estimate":10474.853718822145,"standard_error":2087.698964479828},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":786717.9306118542,"upper_bound":796455.5973271026},"point_estimate":791172.0527560218,"standard_error":2496.940309466609},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24080.619399530628,"upper_bound":58168.59741809627},"point_estimate":43006.41128336148,"standard_error":8656.766444130439}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..9fa0fe8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1639047.0,3106841.0,4628444.0,6265859.0,8658375.0,9370980.0,11019538.0,12549025.0,14077985.0,16180729.0,19459241.0,23818575.0,20197428.0,22098079.0,23909470.0,25072927.0,26875297.0,35003460.0,29876288.0,32486623.0,43396629.0,36569604.0,38316415.0,39879318.0,39560753.0,40508770.0,42057923.0,43951868.0,46161848.0,47061395.0,48370907.0,50183121.0,53975556.0,52536386.0,54259546.0,55965470.0,59785704.0,59174033.0,60532184.0,62015337.0,64124411.0,65371036.0,67371297.0,68366905.0,69956615.0,71415530.0,72911190.0,74491341.0,78739624.0,78054886.0,80017077.0,83305170.0,82273305.0,98242515.0,85455548.0,87180567.0,88607961.0,90371766.0,91650739.0,94262495.0,96813336.0,96378648.0,103432346.0,99337542.0,101891970.0,102654059.0,106766983.0,109057273.0,106859747.0,108968056.0,117477313.0,120151423.0,114984225.0,122277702.0,119996197.0,121364399.0,126809252.0,134369112.0,122837804.0,126866752.0,132219683.0,129774766.0,129610636.0,131027051.0,132424464.0,136113069.0,136928876.0,138631013.0,138722946.0,140630707.0,144315941.0,143201374.0,144676101.0,146278187.0,150223700.0,150238712.0,150898526.0,152580332.0,154136133.0,158155181.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..7220009 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[716261.8497114463,747225.339844325,829794.6468653347,860758.1369982134] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..90d9c75 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":791295.5965576116,"upper_bound":807947.6041901344},"point_estimate":798960.7753875297,"standard_error":4273.780934670834},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":780731.9299999999,"upper_bound":787563.1849315069},"point_estimate":783947.8251201923,"standard_error":1674.8906584056133},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":6247.412436543911,"upper_bound":14985.897852488499},"point_estimate":10474.853718822145,"standard_error":2087.698964479828},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":786717.9306118542,"upper_bound":796455.5973271026},"point_estimate":791172.0527560218,"standard_error":2496.940309466609},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24080.619399530628,"upper_bound":58168.59741809627},"point_estimate":43006.41128336148,"standard_error":8656.766444130439}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..9fa0fe8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1639047.0,3106841.0,4628444.0,6265859.0,8658375.0,9370980.0,11019538.0,12549025.0,14077985.0,16180729.0,19459241.0,23818575.0,20197428.0,22098079.0,23909470.0,25072927.0,26875297.0,35003460.0,29876288.0,32486623.0,43396629.0,36569604.0,38316415.0,39879318.0,39560753.0,40508770.0,42057923.0,43951868.0,46161848.0,47061395.0,48370907.0,50183121.0,53975556.0,52536386.0,54259546.0,55965470.0,59785704.0,59174033.0,60532184.0,62015337.0,64124411.0,65371036.0,67371297.0,68366905.0,69956615.0,71415530.0,72911190.0,74491341.0,78739624.0,78054886.0,80017077.0,83305170.0,82273305.0,98242515.0,85455548.0,87180567.0,88607961.0,90371766.0,91650739.0,94262495.0,96813336.0,96378648.0,103432346.0,99337542.0,101891970.0,102654059.0,106766983.0,109057273.0,106859747.0,108968056.0,117477313.0,120151423.0,114984225.0,122277702.0,119996197.0,121364399.0,126809252.0,134369112.0,122837804.0,126866752.0,132219683.0,129774766.0,129610636.0,131027051.0,132424464.0,136113069.0,136928876.0,138631013.0,138722946.0,140630707.0,144315941.0,143201374.0,144676101.0,146278187.0,150223700.0,150238712.0,150898526.0,152580332.0,154136133.0,158155181.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..7220009 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[716261.8497114463,747225.339844325,829794.6468653347,860758.1369982134] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..631ccd5 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7859090.189785714,"upper_bound":7910400.333928573},"point_estimate":7883168.992857142,"standard_error":13119.369239789283},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7827300.77857143,"upper_bound":7865048.571428572},"point_estimate":7843225.785714285,"standard_error":9976.652260293558},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49981.304412655256,"upper_bound":92994.81254901185},"point_estimate":66344.97212214119,"standard_error":11261.507809775367},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":87903.4970176678,"upper_bound":168912.59731974255},"point_estimate":131615.46648096017,"standard_error":20744.139076902182}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..e2c4d17 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0],"times":[57724440.0,56158908.0,54852655.0,54430204.0,55566634.0,54683705.0,55345062.0,54827317.0,54485536.0,55134150.0,55369644.0,54334348.0,54388908.0,54591424.0,54946235.0,54428509.0,54715502.0,54688473.0,55364401.0,55759760.0,54632562.0,54739648.0,55055340.0,56099736.0,54620848.0,54957171.0,54587768.0,54631134.0,55742522.0,54651048.0,55299100.0,55577856.0,55482953.0,54633614.0,54410097.0,54646301.0,54764387.0,56242594.0,54817893.0,54468486.0,54985796.0,54542101.0,54888261.0,55657289.0,55926641.0,55580939.0,55666121.0,56033258.0,56763260.0,55845546.0,55215994.0,55018244.0,59097931.0,55274277.0,59352299.0,58643089.0,54884436.0,54715498.0,56193996.0,55538069.0,54804362.0,57102883.0,54914432.0,55029984.0,55192151.0,54742667.0,54650551.0,55069553.0,55272950.0,54275978.0,54907065.0,54815129.0,54482277.0,55866446.0,55112669.0,54705830.0,54895330.0,54289279.0,54543467.0,55136457.0,55177194.0,54421291.0,54898096.0,55390593.0,54648005.0,54538230.0,55043884.0,54742237.0,54353893.0,55094495.0,54478744.0,55070826.0,56136145.0,54624519.0,55019112.0,54725209.0,54241527.0,54713405.0,54589507.0,54822005.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..22b007d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[7492553.321428571,7649357.321428571,8067501.321428571,8224305.321428571] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..631ccd5 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7859090.189785714,"upper_bound":7910400.333928573},"point_estimate":7883168.992857142,"standard_error":13119.369239789283},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7827300.77857143,"upper_bound":7865048.571428572},"point_estimate":7843225.785714285,"standard_error":9976.652260293558},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49981.304412655256,"upper_bound":92994.81254901185},"point_estimate":66344.97212214119,"standard_error":11261.507809775367},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":87903.4970176678,"upper_bound":168912.59731974255},"point_estimate":131615.46648096017,"standard_error":20744.139076902182}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..e2c4d17 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0],"times":[57724440.0,56158908.0,54852655.0,54430204.0,55566634.0,54683705.0,55345062.0,54827317.0,54485536.0,55134150.0,55369644.0,54334348.0,54388908.0,54591424.0,54946235.0,54428509.0,54715502.0,54688473.0,55364401.0,55759760.0,54632562.0,54739648.0,55055340.0,56099736.0,54620848.0,54957171.0,54587768.0,54631134.0,55742522.0,54651048.0,55299100.0,55577856.0,55482953.0,54633614.0,54410097.0,54646301.0,54764387.0,56242594.0,54817893.0,54468486.0,54985796.0,54542101.0,54888261.0,55657289.0,55926641.0,55580939.0,55666121.0,56033258.0,56763260.0,55845546.0,55215994.0,55018244.0,59097931.0,55274277.0,59352299.0,58643089.0,54884436.0,54715498.0,56193996.0,55538069.0,54804362.0,57102883.0,54914432.0,55029984.0,55192151.0,54742667.0,54650551.0,55069553.0,55272950.0,54275978.0,54907065.0,54815129.0,54482277.0,55866446.0,55112669.0,54705830.0,54895330.0,54289279.0,54543467.0,55136457.0,55177194.0,54421291.0,54898096.0,55390593.0,54648005.0,54538230.0,55043884.0,54742237.0,54353893.0,55094495.0,54478744.0,55070826.0,56136145.0,54624519.0,55019112.0,54725209.0,54241527.0,54713405.0,54589507.0,54822005.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..22b007d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[7492553.321428571,7649357.321428571,8067501.321428571,8224305.321428571] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..3c9c851 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":973.2773408808249,"upper_bound":987.1525007643144},"point_estimate":979.630731620905,"standard_error":3.5424192383632445},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":966.7108845876164,"upper_bound":970.3250729738495},"point_estimate":968.7323408562193,"standard_error":1.0045535602603564},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7.680036965441264,"upper_bound":14.731929285813868},"point_estimate":10.702949044633652,"standard_error":1.759212892927905},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":972.793180252706,"upper_bound":987.2125748388124},"point_estimate":979.2321681917451,"standard_error":3.7083821974203017},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21.05558389075486,"upper_bound":48.181175139179146},"point_estimate":35.61710560877862,"standard_error":6.950091961278581}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..daa8815 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1003.0,2006.0,3009.0,4012.0,5015.0,6018.0,7021.0,8024.0,9027.0,10030.0,11033.0,12036.0,13039.0,14042.0,15045.0,16048.0,17051.0,18054.0,19057.0,20060.0,21063.0,22066.0,23069.0,24072.0,25075.0,26078.0,27081.0,28084.0,29087.0,30090.0,31093.0,32096.0,33099.0,34102.0,35105.0,36108.0,37111.0,38114.0,39117.0,40120.0,41123.0,42126.0,43129.0,44132.0,45135.0,46138.0,47141.0,48144.0,49147.0,50150.0,51153.0,52156.0,53159.0,54162.0,55165.0,56168.0,57171.0,58174.0,59177.0,60180.0,61183.0,62186.0,63189.0,64192.0,65195.0,66198.0,67201.0,68204.0,69207.0,70210.0,71213.0,72216.0,73219.0,74222.0,75225.0,76228.0,77231.0,78234.0,79237.0,80240.0,81243.0,82246.0,83249.0,84252.0,85255.0,86258.0,87261.0,88264.0,89267.0,90270.0,91273.0,92276.0,93279.0,94282.0,95285.0,96288.0,97291.0,98294.0,99297.0,100300.0],"times":[997904.0,1935164.0,2908084.0,3831886.0,4983047.0,5763553.0,6728215.0,8022087.0,8973522.0,9720282.0,10696591.0,11646173.0,12486783.0,13508053.0,14508089.0,15385764.0,16409239.0,17281673.0,20752458.0,19229677.0,20181530.0,21422703.0,22145947.0,23048626.0,24255321.0,25154121.0,32001539.0,28153478.0,28419029.0,29172409.0,30309555.0,30902548.0,32031515.0,32782073.0,33938930.0,34857328.0,35948460.0,37374048.0,38752416.0,39304789.0,40174230.0,41110030.0,41600642.0,42437298.0,43446612.0,46140499.0,46327199.0,54343324.0,52404300.0,48692568.0,49180771.0,49946991.0,52321891.0,51796355.0,56258074.0,55067726.0,55076628.0,56237439.0,57682451.0,58359132.0,58656601.0,63029528.0,60453206.0,61957272.0,62385374.0,64132007.0,66218181.0,66024639.0,67082418.0,75038180.0,68480325.0,69490320.0,70054063.0,71318707.0,73649592.0,74618595.0,75086027.0,75357612.0,79518081.0,77338599.0,81479608.0,80124893.0,80778592.0,81426882.0,87839742.0,83660810.0,84817349.0,85358707.0,86494166.0,86805777.0,88354105.0,89245860.0,100291363.0,92342676.0,93977754.0,93528618.0,93484085.0,95338337.0,96350726.0,96695343.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..b45ea9c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[910.8639957812213,936.599918149442,1005.2290444646973,1030.964966832918] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..3c9c851 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":973.2773408808249,"upper_bound":987.1525007643144},"point_estimate":979.630731620905,"standard_error":3.5424192383632445},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":966.7108845876164,"upper_bound":970.3250729738495},"point_estimate":968.7323408562193,"standard_error":1.0045535602603564},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7.680036965441264,"upper_bound":14.731929285813868},"point_estimate":10.702949044633652,"standard_error":1.759212892927905},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":972.793180252706,"upper_bound":987.2125748388124},"point_estimate":979.2321681917451,"standard_error":3.7083821974203017},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21.05558389075486,"upper_bound":48.181175139179146},"point_estimate":35.61710560877862,"standard_error":6.950091961278581}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..daa8815 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1003.0,2006.0,3009.0,4012.0,5015.0,6018.0,7021.0,8024.0,9027.0,10030.0,11033.0,12036.0,13039.0,14042.0,15045.0,16048.0,17051.0,18054.0,19057.0,20060.0,21063.0,22066.0,23069.0,24072.0,25075.0,26078.0,27081.0,28084.0,29087.0,30090.0,31093.0,32096.0,33099.0,34102.0,35105.0,36108.0,37111.0,38114.0,39117.0,40120.0,41123.0,42126.0,43129.0,44132.0,45135.0,46138.0,47141.0,48144.0,49147.0,50150.0,51153.0,52156.0,53159.0,54162.0,55165.0,56168.0,57171.0,58174.0,59177.0,60180.0,61183.0,62186.0,63189.0,64192.0,65195.0,66198.0,67201.0,68204.0,69207.0,70210.0,71213.0,72216.0,73219.0,74222.0,75225.0,76228.0,77231.0,78234.0,79237.0,80240.0,81243.0,82246.0,83249.0,84252.0,85255.0,86258.0,87261.0,88264.0,89267.0,90270.0,91273.0,92276.0,93279.0,94282.0,95285.0,96288.0,97291.0,98294.0,99297.0,100300.0],"times":[997904.0,1935164.0,2908084.0,3831886.0,4983047.0,5763553.0,6728215.0,8022087.0,8973522.0,9720282.0,10696591.0,11646173.0,12486783.0,13508053.0,14508089.0,15385764.0,16409239.0,17281673.0,20752458.0,19229677.0,20181530.0,21422703.0,22145947.0,23048626.0,24255321.0,25154121.0,32001539.0,28153478.0,28419029.0,29172409.0,30309555.0,30902548.0,32031515.0,32782073.0,33938930.0,34857328.0,35948460.0,37374048.0,38752416.0,39304789.0,40174230.0,41110030.0,41600642.0,42437298.0,43446612.0,46140499.0,46327199.0,54343324.0,52404300.0,48692568.0,49180771.0,49946991.0,52321891.0,51796355.0,56258074.0,55067726.0,55076628.0,56237439.0,57682451.0,58359132.0,58656601.0,63029528.0,60453206.0,61957272.0,62385374.0,64132007.0,66218181.0,66024639.0,67082418.0,75038180.0,68480325.0,69490320.0,70054063.0,71318707.0,73649592.0,74618595.0,75086027.0,75357612.0,79518081.0,77338599.0,81479608.0,80124893.0,80778592.0,81426882.0,87839742.0,83660810.0,84817349.0,85358707.0,86494166.0,86805777.0,88354105.0,89245860.0,100291363.0,92342676.0,93977754.0,93528618.0,93484085.0,95338337.0,96350726.0,96695343.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..b45ea9c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/deserialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[910.8639957812213,936.599918149442,1005.2290444646973,1030.964966832918] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..d390ad6 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177514.9710052003,"upper_bound":179277.37352094788},"point_estimate":178343.2537327712,"standard_error":449.2748334644314},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":176474.35881860775,"upper_bound":177382.63523391815},"point_estimate":176846.38534946236,"standard_error":263.05484599626664},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1219.9598932549543,"upper_bound":2238.41380931323},"point_estimate":1638.4299607320122,"standard_error":266.6376409587787},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177682.91853303384,"upper_bound":179725.72796165847},"point_estimate":178609.43859021724,"standard_error":521.6139252409092},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3135.738109099659,"upper_bound":5661.414021737949},"point_estimate":4496.331553347077,"standard_error":644.0652062945259}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..259d8f8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1087100.0,2129107.0,3146338.0,4265220.0,5210250.0,6254994.0,7358484.0,8364069.0,9537139.0,10574308.0,11562074.0,12885792.0,13953711.0,14877727.0,15843238.0,17003293.0,17966752.0,19174273.0,19987360.0,21129036.0,22169365.0,23689966.0,24329041.0,25265804.0,26358580.0,27776655.0,28476045.0,29420344.0,32349023.0,31809554.0,32590010.0,33816985.0,35381932.0,36090837.0,37695424.0,37961692.0,39166660.0,42104599.0,45337149.0,45271168.0,43416949.0,44462906.0,45406625.0,46319605.0,47841328.0,49311963.0,54094883.0,51263011.0,52937355.0,53002281.0,54013975.0,54810458.0,55939318.0,57614278.0,58766252.0,59077888.0,60650173.0,65092549.0,63850088.0,63538441.0,65111771.0,65788465.0,66504444.0,67623943.0,68359881.0,69540707.0,70470805.0,77300344.0,82384220.0,80102205.0,77315133.0,77257216.0,83558185.0,82072052.0,78938184.0,80978109.0,81093512.0,83356004.0,84070182.0,84884188.0,87587988.0,87820260.0,87873618.0,89269648.0,90640661.0,91076794.0,91959696.0,92787544.0,93961597.0,95813604.0,99054869.0,97857948.0,98428118.0,99588309.0,100987773.0,103472805.0,102809112.0,103324362.0,105618418.0,106562339.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..baa2bae --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[168162.7642097578,172053.8453985297,182430.06190192144,186321.14309069334] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..d390ad6 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177514.9710052003,"upper_bound":179277.37352094788},"point_estimate":178343.2537327712,"standard_error":449.2748334644314},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":176474.35881860775,"upper_bound":177382.63523391815},"point_estimate":176846.38534946236,"standard_error":263.05484599626664},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1219.9598932549543,"upper_bound":2238.41380931323},"point_estimate":1638.4299607320122,"standard_error":266.6376409587787},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177682.91853303384,"upper_bound":179725.72796165847},"point_estimate":178609.43859021724,"standard_error":521.6139252409092},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3135.738109099659,"upper_bound":5661.414021737949},"point_estimate":4496.331553347077,"standard_error":644.0652062945259}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..259d8f8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1087100.0,2129107.0,3146338.0,4265220.0,5210250.0,6254994.0,7358484.0,8364069.0,9537139.0,10574308.0,11562074.0,12885792.0,13953711.0,14877727.0,15843238.0,17003293.0,17966752.0,19174273.0,19987360.0,21129036.0,22169365.0,23689966.0,24329041.0,25265804.0,26358580.0,27776655.0,28476045.0,29420344.0,32349023.0,31809554.0,32590010.0,33816985.0,35381932.0,36090837.0,37695424.0,37961692.0,39166660.0,42104599.0,45337149.0,45271168.0,43416949.0,44462906.0,45406625.0,46319605.0,47841328.0,49311963.0,54094883.0,51263011.0,52937355.0,53002281.0,54013975.0,54810458.0,55939318.0,57614278.0,58766252.0,59077888.0,60650173.0,65092549.0,63850088.0,63538441.0,65111771.0,65788465.0,66504444.0,67623943.0,68359881.0,69540707.0,70470805.0,77300344.0,82384220.0,80102205.0,77315133.0,77257216.0,83558185.0,82072052.0,78938184.0,80978109.0,81093512.0,83356004.0,84070182.0,84884188.0,87587988.0,87820260.0,87873618.0,89269648.0,90640661.0,91076794.0,91959696.0,92787544.0,93961597.0,95813604.0,99054869.0,97857948.0,98428118.0,99588309.0,100987773.0,103472805.0,102809112.0,103324362.0,105618418.0,106562339.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..baa2bae --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[168162.7642097578,172053.8453985297,182430.06190192144,186321.14309069334] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..c49b27e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1778406.4599728733,"upper_bound":1786994.5151738555},"point_estimate":1782517.0948066665,"standard_error":2185.2456597824653},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1773421.4108851673,"upper_bound":1779899.1063829786},"point_estimate":1775852.8021367523,"standard_error":1710.935677702082},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10353.091426303643,"upper_bound":18562.739708013032},"point_estimate":13533.007442684635,"standard_error":1990.8271587115894},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1779345.4443828766,"upper_bound":1792431.8571341082},"point_estimate":1785445.6145825328,"standard_error":3354.6955396242124},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":16785.74675960783,"upper_bound":26326.122620827206},"point_estimate":21854.627553768063,"standard_error":2443.7114076829457}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..8b8bde4 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[1785305.0,3589218.0,5398640.0,7084209.0,8948175.0,10724428.0,12213171.0,14109280.0,16068923.0,17607537.0,19454447.0,21065659.0,23087514.0,24947089.0,26683355.0,28251680.0,31081847.0,31927664.0,33518276.0,35393578.0,37452191.0,39442558.0,40485457.0,42605523.0,44315068.0,45848889.0,48628437.0,49408112.0,51747079.0,52937350.0,56858792.0,56456689.0,58046032.0,60316589.0,62484848.0,63631435.0,66959889.0,68706726.0,68904806.0,71100586.0,72385207.0,74214977.0,77468974.0,78018789.0,79559187.0,81239705.0,84648534.0,85460122.0,86755743.0,89995095.0,90811929.0,92333982.0,94241160.0,95735985.0,97811426.0,99821226.0,104959116.0,102388670.0,110198526.0,106674106.0,110369379.0,112764868.0,114421751.0,113811939.0,115025829.0,116437610.0,120087742.0,120302200.0,122563394.0,124273488.0,125432855.0,127097923.0,134099569.0,130257368.0,132617582.0,134800328.0,137418547.0,138288526.0,142429337.0,143480641.0,143285587.0,146071057.0,147211826.0,149902220.0,150578278.0,152243285.0,154759536.0,156255373.0,157886400.0,159816869.0,162065213.0,162677675.0,166035644.0,167310516.0,170548588.0,172252238.0,171833668.0,172848871.0,182958393.0,184817461.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..c8abc2a --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[1709054.4701449275,1738644.8875905797,1817552.6674456522,1847143.0848913044] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..c49b27e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1778406.4599728733,"upper_bound":1786994.5151738555},"point_estimate":1782517.0948066665,"standard_error":2185.2456597824653},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1773421.4108851673,"upper_bound":1779899.1063829786},"point_estimate":1775852.8021367523,"standard_error":1710.935677702082},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10353.091426303643,"upper_bound":18562.739708013032},"point_estimate":13533.007442684635,"standard_error":1990.8271587115894},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1779345.4443828766,"upper_bound":1792431.8571341082},"point_estimate":1785445.6145825328,"standard_error":3354.6955396242124},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":16785.74675960783,"upper_bound":26326.122620827206},"point_estimate":21854.627553768063,"standard_error":2443.7114076829457}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..8b8bde4 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[1785305.0,3589218.0,5398640.0,7084209.0,8948175.0,10724428.0,12213171.0,14109280.0,16068923.0,17607537.0,19454447.0,21065659.0,23087514.0,24947089.0,26683355.0,28251680.0,31081847.0,31927664.0,33518276.0,35393578.0,37452191.0,39442558.0,40485457.0,42605523.0,44315068.0,45848889.0,48628437.0,49408112.0,51747079.0,52937350.0,56858792.0,56456689.0,58046032.0,60316589.0,62484848.0,63631435.0,66959889.0,68706726.0,68904806.0,71100586.0,72385207.0,74214977.0,77468974.0,78018789.0,79559187.0,81239705.0,84648534.0,85460122.0,86755743.0,89995095.0,90811929.0,92333982.0,94241160.0,95735985.0,97811426.0,99821226.0,104959116.0,102388670.0,110198526.0,106674106.0,110369379.0,112764868.0,114421751.0,113811939.0,115025829.0,116437610.0,120087742.0,120302200.0,122563394.0,124273488.0,125432855.0,127097923.0,134099569.0,130257368.0,132617582.0,134800328.0,137418547.0,138288526.0,142429337.0,143480641.0,143285587.0,146071057.0,147211826.0,149902220.0,150578278.0,152243285.0,154759536.0,156255373.0,157886400.0,159816869.0,162065213.0,162677675.0,166035644.0,167310516.0,170548588.0,172252238.0,171833668.0,172848871.0,182958393.0,184817461.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..c8abc2a --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[1709054.4701449275,1738644.8875905797,1817552.6674456522,1847143.0848913044] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..8e8c4e0 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":225.89919133709734,"upper_bound":233.20354532167548},"point_estimate":228.995417607084,"standard_error":1.8917378873143864},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224.23189409682138,"upper_bound":225.1442476941207},"point_estimate":224.68469179332263,"standard_error":0.25367840619222504},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.5449557496727158,"upper_bound":2.7727541072202952},"point_estimate":2.1523788874323913,"standard_error":0.31336661016376044},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":225.51339194778174,"upper_bound":227.6149005520645},"point_estimate":226.48356285240314,"standard_error":0.5388032087959043},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.784838687704334,"upper_bound":29.074909548335103},"point_estimate":19.04810146849849,"standard_error":6.536263469833669}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..2c5e633 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4331.0,8662.0,12993.0,17324.0,21655.0,25986.0,30317.0,34648.0,38979.0,43310.0,47641.0,51972.0,56303.0,60634.0,64965.0,69296.0,73627.0,77958.0,82289.0,86620.0,90951.0,95282.0,99613.0,103944.0,108275.0,112606.0,116937.0,121268.0,125599.0,129930.0,134261.0,138592.0,142923.0,147254.0,151585.0,155916.0,160247.0,164578.0,168909.0,173240.0,177571.0,181902.0,186233.0,190564.0,194895.0,199226.0,203557.0,207888.0,212219.0,216550.0,220881.0,225212.0,229543.0,233874.0,238205.0,242536.0,246867.0,251198.0,255529.0,259860.0,264191.0,268522.0,272853.0,277184.0,281515.0,285846.0,290177.0,294508.0,298839.0,303170.0,307501.0,311832.0,316163.0,320494.0,324825.0,329156.0,333487.0,337818.0,342149.0,346480.0,350811.0,355142.0,359473.0,363804.0,368135.0,372466.0,376797.0,381128.0,385459.0,389790.0,394121.0,398452.0,402783.0,407114.0,411445.0,415776.0,420107.0,424438.0,428769.0,433100.0],"times":[1071229.0,1920153.0,2920697.0,3877782.0,4889836.0,5767261.0,6725269.0,7746496.0,8601055.0,9695428.0,10685917.0,11961780.0,12683561.0,13519958.0,22884606.0,24907168.0,16472561.0,17331464.0,18367535.0,19479481.0,20273659.0,21884336.0,22502450.0,23308768.0,24875748.0,25453837.0,26469098.0,27360724.0,28039606.0,28944247.0,29918968.0,30921406.0,32047895.0,33934328.0,34518687.0,35735420.0,39470199.0,37088417.0,37703667.0,38582417.0,39681553.0,40914722.0,41758359.0,42612831.0,43466540.0,44776645.0,45387513.0,51837315.0,51787577.0,48514431.0,49679689.0,51050838.0,52635636.0,52299610.0,55860175.0,57677297.0,55374810.0,61763254.0,57644289.0,58489757.0,59063574.0,59907939.0,60962470.0,61966615.0,63196541.0,64893792.0,65396792.0,66288271.0,67194044.0,68091906.0,68638754.0,70586530.0,71811893.0,73482580.0,72689347.0,76642817.0,75039652.0,75230963.0,76412280.0,77677816.0,78153073.0,79159107.0,80979555.0,81644569.0,87234389.0,83920726.0,87444370.0,84956203.0,89050708.0,86881490.0,88624773.0,89403240.0,92009424.0,91255682.0,92875530.0,93969441.0,94362907.0,96060014.0,96215786.0,96833660.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..41f1736 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[214.51103585763067,218.98452168836673,230.91381723699624,235.38730306773232] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..8e8c4e0 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":225.89919133709734,"upper_bound":233.20354532167548},"point_estimate":228.995417607084,"standard_error":1.8917378873143864},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224.23189409682138,"upper_bound":225.1442476941207},"point_estimate":224.68469179332263,"standard_error":0.25367840619222504},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.5449557496727158,"upper_bound":2.7727541072202952},"point_estimate":2.1523788874323913,"standard_error":0.31336661016376044},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":225.51339194778174,"upper_bound":227.6149005520645},"point_estimate":226.48356285240314,"standard_error":0.5388032087959043},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4.784838687704334,"upper_bound":29.074909548335103},"point_estimate":19.04810146849849,"standard_error":6.536263469833669}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..2c5e633 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4331.0,8662.0,12993.0,17324.0,21655.0,25986.0,30317.0,34648.0,38979.0,43310.0,47641.0,51972.0,56303.0,60634.0,64965.0,69296.0,73627.0,77958.0,82289.0,86620.0,90951.0,95282.0,99613.0,103944.0,108275.0,112606.0,116937.0,121268.0,125599.0,129930.0,134261.0,138592.0,142923.0,147254.0,151585.0,155916.0,160247.0,164578.0,168909.0,173240.0,177571.0,181902.0,186233.0,190564.0,194895.0,199226.0,203557.0,207888.0,212219.0,216550.0,220881.0,225212.0,229543.0,233874.0,238205.0,242536.0,246867.0,251198.0,255529.0,259860.0,264191.0,268522.0,272853.0,277184.0,281515.0,285846.0,290177.0,294508.0,298839.0,303170.0,307501.0,311832.0,316163.0,320494.0,324825.0,329156.0,333487.0,337818.0,342149.0,346480.0,350811.0,355142.0,359473.0,363804.0,368135.0,372466.0,376797.0,381128.0,385459.0,389790.0,394121.0,398452.0,402783.0,407114.0,411445.0,415776.0,420107.0,424438.0,428769.0,433100.0],"times":[1071229.0,1920153.0,2920697.0,3877782.0,4889836.0,5767261.0,6725269.0,7746496.0,8601055.0,9695428.0,10685917.0,11961780.0,12683561.0,13519958.0,22884606.0,24907168.0,16472561.0,17331464.0,18367535.0,19479481.0,20273659.0,21884336.0,22502450.0,23308768.0,24875748.0,25453837.0,26469098.0,27360724.0,28039606.0,28944247.0,29918968.0,30921406.0,32047895.0,33934328.0,34518687.0,35735420.0,39470199.0,37088417.0,37703667.0,38582417.0,39681553.0,40914722.0,41758359.0,42612831.0,43466540.0,44776645.0,45387513.0,51837315.0,51787577.0,48514431.0,49679689.0,51050838.0,52635636.0,52299610.0,55860175.0,57677297.0,55374810.0,61763254.0,57644289.0,58489757.0,59063574.0,59907939.0,60962470.0,61966615.0,63196541.0,64893792.0,65396792.0,66288271.0,67194044.0,68091906.0,68638754.0,70586530.0,71811893.0,73482580.0,72689347.0,76642817.0,75039652.0,75230963.0,76412280.0,77677816.0,78153073.0,79159107.0,80979555.0,81644569.0,87234389.0,83920726.0,87444370.0,84956203.0,89050708.0,86881490.0,88624773.0,89403240.0,92009424.0,91255682.0,92875530.0,93969441.0,94362907.0,96060014.0,96215786.0,96833660.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..41f1736 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-0/serialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[214.51103585763067,218.98452168836673,230.91381723699624,235.38730306773232] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1.txt new file mode 100644 index 0000000..45d4835 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1.txt @@ -0,0 +1,65 @@ +memcap: <=7717 MiB (60% of 12862 MiB available) [systemd MemoryMax, swap off] +Benchmarking deserialization/sensor_micro +Benchmarking deserialization/sensor_micro: Warming up for 3.0000 s +Benchmarking deserialization/sensor_micro: Collecting 100 samples in estimated 5.0029 s (5.2M iterations) +Benchmarking deserialization/sensor_micro: Analyzing +deserialization/sensor_micro + time: [968.69 ns 976.79 ns 987.98 ns] + thrpt: [90.736 MiB/s 91.775 MiB/s 92.543 MiB/s] +Found 10 outliers among 100 measurements (10.00%) + 3 (3.00%) high mild + 7 (7.00%) high severe +Benchmarking deserialization/catalog_items/1000 +Benchmarking deserialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/1000: Collecting 100 samples in estimated 7.9453 s (10k iterations) +Benchmarking deserialization/catalog_items/1000: Analyzing +deserialization/catalog_items/1000 + time: [783.14 µs 786.22 µs 789.79 µs] + thrpt: [77.173 MiB/s 77.523 MiB/s 77.828 MiB/s] +Found 11 outliers among 100 measurements (11.00%) + 4 (4.00%) high mild + 7 (7.00%) high severe +Benchmarking deserialization/catalog_items/10000 +Benchmarking deserialization/catalog_items/10000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/10000: Collecting 100 samples in estimated 5.5974 s (700 iterations) +Benchmarking deserialization/catalog_items/10000: Analyzing +deserialization/catalog_items/10000 + time: [7.9658 ms 8.0215 ms 8.0955 ms] + thrpt: [78.800 MiB/s 79.526 MiB/s 80.083 MiB/s] +Found 11 outliers among 100 measurements (11.00%) + 7 (7.00%) high mild + 4 (4.00%) high severe + +Benchmarking serialization/sensor_micro +Benchmarking serialization/sensor_micro: Warming up for 3.0000 s +Benchmarking serialization/sensor_micro: Collecting 100 samples in estimated 5.0004 s (22M iterations) +Benchmarking serialization/sensor_micro: Analyzing +serialization/sensor_micro + time: [224.98 ns 225.82 ns 226.85 ns] + thrpt: [395.18 MiB/s 396.97 MiB/s 398.46 MiB/s] +Found 7 outliers among 100 measurements (7.00%) + 3 (3.00%) high mild + 4 (4.00%) high severe +Benchmarking serialization/catalog_items/1000 +Benchmarking serialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking serialization/catalog_items/1000: Collecting 100 samples in estimated 5.3948 s (30k iterations) +Benchmarking serialization/catalog_items/1000: Analyzing +serialization/catalog_items/1000 + time: [177.46 µs 179.01 µs 181.47 µs] + thrpt: [333.23 MiB/s 337.82 MiB/s 340.78 MiB/s] +Found 5 outliers among 100 measurements (5.00%) + 4 (4.00%) high mild + 1 (1.00%) high severe +Benchmarking serialization/catalog_items/10000 +Benchmarking serialization/catalog_items/10000: Warming up for 3.0000 s + +Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 9.0s, enable flat sampling, or reduce sample count to 50. +Benchmarking serialization/catalog_items/10000: Collecting 100 samples in estimated 9.0262 s (5050 iterations) +Benchmarking serialization/catalog_items/10000: Analyzing +serialization/catalog_items/10000 + time: [1.7859 ms 1.7962 ms 1.8077 ms] + thrpt: [350.26 MiB/s 352.50 MiB/s 354.54 MiB/s] +Found 8 outliers among 100 measurements (8.00%) + 5 (5.00%) high mild + 3 (3.00%) high severe + diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..8d48c8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":782207.1240353667,"upper_bound":789859.4677298237},"point_estimate":785630.0261727816,"standard_error":1968.1546199716377},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":778737.9662162162,"upper_bound":782489.574074074},"point_estimate":780441.2826828344,"standard_error":1087.4168004950347},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4962.619960926627,"upper_bound":8918.078584200413},"point_estimate":6431.718672335978,"standard_error":1031.8853726054997},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":783140.0148603974,"upper_bound":789789.9847787856},"point_estimate":786220.7930249742,"standard_error":1697.4770484924995},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9620.881283761588,"upper_bound":28140.397326680883},"point_estimate":19772.883559744798,"standard_error":4901.064311487351}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..0f60fdf --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1576346.0,3252209.0,4614831.0,6229240.0,7818515.0,9661070.0,11076303.0,12459952.0,13935275.0,15701955.0,16947953.0,21608674.0,20085569.0,21999372.0,23240476.0,24799764.0,26302610.0,27911389.0,29736770.0,30885694.0,34365395.0,34003806.0,36551888.0,37275621.0,38796003.0,40476558.0,41889151.0,43487097.0,45270181.0,47069658.0,49331099.0,49619184.0,51479861.0,53204703.0,54865400.0,56160491.0,57349347.0,62144477.0,60386982.0,62540890.0,63700282.0,65268109.0,69547748.0,68331078.0,69429891.0,71539573.0,72790823.0,74282302.0,76687843.0,77936097.0,79326659.0,80826985.0,82178004.0,84508874.0,86389201.0,101121268.0,88171605.0,90763948.0,92308752.0,93848023.0,94955605.0,96640030.0,98396448.0,99769842.0,101773519.0,103305964.0,104391951.0,105634718.0,106987887.0,108882909.0,111138258.0,115091369.0,113193152.0,115265498.0,116511404.0,124177706.0,120955967.0,121259824.0,123338484.0,125507828.0,126819588.0,128870318.0,135322582.0,133698123.0,135778223.0,133764717.0,136227914.0,137260232.0,138137202.0,141219858.0,142025921.0,144798958.0,148319469.0,149136728.0,151128152.0,149021683.0,151952708.0,155258954.0,158037397.0,156867875.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..54f3293 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[750032.3269480518,763285.5926542208,798627.6345373378,811880.9002435067] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..8d48c8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":782207.1240353667,"upper_bound":789859.4677298237},"point_estimate":785630.0261727816,"standard_error":1968.1546199716377},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":778737.9662162162,"upper_bound":782489.574074074},"point_estimate":780441.2826828344,"standard_error":1087.4168004950347},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4962.619960926627,"upper_bound":8918.078584200413},"point_estimate":6431.718672335978,"standard_error":1031.8853726054997},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":783140.0148603974,"upper_bound":789789.9847787856},"point_estimate":786220.7930249742,"standard_error":1697.4770484924995},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9620.881283761588,"upper_bound":28140.397326680883},"point_estimate":19772.883559744798,"standard_error":4901.064311487351}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..0f60fdf --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1576346.0,3252209.0,4614831.0,6229240.0,7818515.0,9661070.0,11076303.0,12459952.0,13935275.0,15701955.0,16947953.0,21608674.0,20085569.0,21999372.0,23240476.0,24799764.0,26302610.0,27911389.0,29736770.0,30885694.0,34365395.0,34003806.0,36551888.0,37275621.0,38796003.0,40476558.0,41889151.0,43487097.0,45270181.0,47069658.0,49331099.0,49619184.0,51479861.0,53204703.0,54865400.0,56160491.0,57349347.0,62144477.0,60386982.0,62540890.0,63700282.0,65268109.0,69547748.0,68331078.0,69429891.0,71539573.0,72790823.0,74282302.0,76687843.0,77936097.0,79326659.0,80826985.0,82178004.0,84508874.0,86389201.0,101121268.0,88171605.0,90763948.0,92308752.0,93848023.0,94955605.0,96640030.0,98396448.0,99769842.0,101773519.0,103305964.0,104391951.0,105634718.0,106987887.0,108882909.0,111138258.0,115091369.0,113193152.0,115265498.0,116511404.0,124177706.0,120955967.0,121259824.0,123338484.0,125507828.0,126819588.0,128870318.0,135322582.0,133698123.0,135778223.0,133764717.0,136227914.0,137260232.0,138137202.0,141219858.0,142025921.0,144798958.0,148319469.0,149136728.0,151128152.0,149021683.0,151952708.0,155258954.0,158037397.0,156867875.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..54f3293 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[750032.3269480518,763285.5926542208,798627.6345373378,811880.9002435067] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..2a58f3c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7965814.913642855,"upper_bound":8095452.980607144},"point_estimate":8021541.881428573,"standard_error":33446.03678910466},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7926117.928571429,"upper_bound":7953324.142857143},"point_estimate":7937397.785714285,"standard_error":6472.023599206104},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":48063.34954670458,"upper_bound":91554.67847457914},"point_estimate":69472.41086661816,"standard_error":12120.945438874764},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":118377.84633534965,"upper_bound":510810.0136309008},"point_estimate":335454.2706849226,"standard_error":103699.71545478421}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..1d7854d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0],"times":[55063374.0,55673269.0,55396009.0,55083485.0,55039295.0,55646470.0,56054012.0,55304892.0,56902141.0,55013254.0,55534935.0,55320245.0,56421720.0,55499991.0,55949976.0,55594953.0,67901011.0,55498463.0,61671009.0,55807019.0,55490594.0,55172192.0,55121642.0,57464830.0,56744409.0,55201891.0,55131998.0,55137401.0,56230035.0,55734374.0,55555401.0,55396095.0,55878851.0,55818261.0,55098097.0,54899346.0,55103482.0,55707203.0,55324012.0,55028382.0,55111004.0,57297731.0,55707735.0,57653001.0,57149959.0,57107659.0,57879246.0,56920044.0,55568168.0,56059490.0,55573376.0,55552422.0,55685086.0,55218614.0,55174915.0,55545237.0,55584311.0,55152176.0,55489892.0,57670509.0,56703387.0,55422341.0,55536565.0,55832576.0,55774977.0,55531115.0,55303917.0,55611090.0,55389685.0,55685089.0,55328772.0,55252293.0,55312097.0,55588210.0,55366780.0,55222832.0,57023336.0,55398312.0,56100778.0,56481426.0,56101844.0,55375940.0,56634749.0,60591833.0,56032333.0,56011500.0,55424206.0,55744359.0,55187585.0,55467188.0,54822678.0,55611388.0,55284640.0,55659572.0,55463000.0,55331303.0,55997047.0,57256461.0,55120018.0,73381501.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..8e06528 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[7589703.535714284,7745587.178571427,8161276.892857144,8317160.535714287] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..2a58f3c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7965814.913642855,"upper_bound":8095452.980607144},"point_estimate":8021541.881428573,"standard_error":33446.03678910466},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7926117.928571429,"upper_bound":7953324.142857143},"point_estimate":7937397.785714285,"standard_error":6472.023599206104},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":48063.34954670458,"upper_bound":91554.67847457914},"point_estimate":69472.41086661816,"standard_error":12120.945438874764},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":118377.84633534965,"upper_bound":510810.0136309008},"point_estimate":335454.2706849226,"standard_error":103699.71545478421}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..1d7854d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0],"times":[55063374.0,55673269.0,55396009.0,55083485.0,55039295.0,55646470.0,56054012.0,55304892.0,56902141.0,55013254.0,55534935.0,55320245.0,56421720.0,55499991.0,55949976.0,55594953.0,67901011.0,55498463.0,61671009.0,55807019.0,55490594.0,55172192.0,55121642.0,57464830.0,56744409.0,55201891.0,55131998.0,55137401.0,56230035.0,55734374.0,55555401.0,55396095.0,55878851.0,55818261.0,55098097.0,54899346.0,55103482.0,55707203.0,55324012.0,55028382.0,55111004.0,57297731.0,55707735.0,57653001.0,57149959.0,57107659.0,57879246.0,56920044.0,55568168.0,56059490.0,55573376.0,55552422.0,55685086.0,55218614.0,55174915.0,55545237.0,55584311.0,55152176.0,55489892.0,57670509.0,56703387.0,55422341.0,55536565.0,55832576.0,55774977.0,55531115.0,55303917.0,55611090.0,55389685.0,55685089.0,55328772.0,55252293.0,55312097.0,55588210.0,55366780.0,55222832.0,57023336.0,55398312.0,56100778.0,56481426.0,56101844.0,55375940.0,56634749.0,60591833.0,56032333.0,56011500.0,55424206.0,55744359.0,55187585.0,55467188.0,54822678.0,55611388.0,55284640.0,55659572.0,55463000.0,55331303.0,55997047.0,57256461.0,55120018.0,73381501.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..8e06528 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[7589703.535714284,7745587.178571427,8161276.892857144,8317160.535714287] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..1b99775 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":969.0310798274186,"upper_bound":981.753606361157},"point_estimate":974.9037588771275,"standard_error":3.2562537365579494},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":961.1236623462944,"upper_bound":966.3699662660763},"point_estimate":963.8240972752737,"standard_error":1.5981731487067143},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.916285684637143,"upper_bound":12.372777940718},"point_estimate":9.122660608072414,"standard_error":1.7237209903509982},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":968.689923960584,"upper_bound":987.9762582648312},"point_estimate":976.7914190839629,"standard_error":5.012440362437121},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":20.13840920122114,"upper_bound":43.07132733047607},"point_estimate":32.81094442691774,"standard_error":5.851451723779313}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..9605eec --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1020.0,2040.0,3060.0,4080.0,5100.0,6120.0,7140.0,8160.0,9180.0,10200.0,11220.0,12240.0,13260.0,14280.0,15300.0,16320.0,17340.0,18360.0,19380.0,20400.0,21420.0,22440.0,23460.0,24480.0,25500.0,26520.0,27540.0,28560.0,29580.0,30600.0,31620.0,32640.0,33660.0,34680.0,35700.0,36720.0,37740.0,38760.0,39780.0,40800.0,41820.0,42840.0,43860.0,44880.0,45900.0,46920.0,47940.0,48960.0,49980.0,51000.0,52020.0,53040.0,54060.0,55080.0,56100.0,57120.0,58140.0,59160.0,60180.0,61200.0,62220.0,63240.0,64260.0,65280.0,66300.0,67320.0,68340.0,69360.0,70380.0,71400.0,72420.0,73440.0,74460.0,75480.0,76500.0,77520.0,78540.0,79560.0,80580.0,81600.0,82620.0,83640.0,84660.0,85680.0,86700.0,87720.0,88740.0,89760.0,90780.0,91800.0,92820.0,93840.0,94860.0,95880.0,96900.0,97920.0,98940.0,99960.0,100980.0,102000.0],"times":[1014560.0,1999779.0,3031722.0,3900546.0,4875293.0,6009681.0,7009991.0,7838852.0,9053920.0,9948208.0,10671306.0,11996651.0,12720554.0,13759428.0,14647125.0,15707335.0,16655083.0,17657990.0,18577447.0,19495218.0,20416697.0,21577986.0,22414358.0,23885994.0,24382859.0,25746833.0,30458220.0,27342440.0,28469327.0,29207765.0,30607436.0,31200910.0,33985614.0,37211007.0,34274276.0,35121330.0,36058413.0,37396651.0,38689006.0,39200705.0,40125017.0,41124401.0,41984198.0,43087284.0,44061921.0,45002430.0,46234795.0,47986039.0,50653309.0,57006275.0,51098591.0,51366725.0,52426740.0,53117737.0,54086168.0,57991596.0,55772577.0,56746656.0,57840422.0,64105484.0,60054131.0,60698207.0,61755255.0,62412458.0,63706595.0,64459372.0,65598562.0,67716321.0,68520165.0,68939073.0,69632328.0,75161469.0,71196416.0,72447296.0,74680559.0,81796993.0,75854321.0,76367219.0,78135569.0,78486370.0,80236144.0,81500465.0,82104395.0,82918110.0,84272276.0,84764095.0,86388986.0,86743289.0,87181826.0,88345459.0,89244839.0,89910027.0,91669855.0,93293208.0,95608967.0,110941824.0,95585790.0,99195107.0,96734518.0,97823995.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..3e95b1c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[913.7962358367363,936.61392766159,997.4611058611999,1020.2787976860537] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..1b99775 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":969.0310798274186,"upper_bound":981.753606361157},"point_estimate":974.9037588771275,"standard_error":3.2562537365579494},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":961.1236623462944,"upper_bound":966.3699662660763},"point_estimate":963.8240972752737,"standard_error":1.5981731487067143},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5.916285684637143,"upper_bound":12.372777940718},"point_estimate":9.122660608072414,"standard_error":1.7237209903509982},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":968.689923960584,"upper_bound":987.9762582648312},"point_estimate":976.7914190839629,"standard_error":5.012440362437121},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":20.13840920122114,"upper_bound":43.07132733047607},"point_estimate":32.81094442691774,"standard_error":5.851451723779313}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..9605eec --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1020.0,2040.0,3060.0,4080.0,5100.0,6120.0,7140.0,8160.0,9180.0,10200.0,11220.0,12240.0,13260.0,14280.0,15300.0,16320.0,17340.0,18360.0,19380.0,20400.0,21420.0,22440.0,23460.0,24480.0,25500.0,26520.0,27540.0,28560.0,29580.0,30600.0,31620.0,32640.0,33660.0,34680.0,35700.0,36720.0,37740.0,38760.0,39780.0,40800.0,41820.0,42840.0,43860.0,44880.0,45900.0,46920.0,47940.0,48960.0,49980.0,51000.0,52020.0,53040.0,54060.0,55080.0,56100.0,57120.0,58140.0,59160.0,60180.0,61200.0,62220.0,63240.0,64260.0,65280.0,66300.0,67320.0,68340.0,69360.0,70380.0,71400.0,72420.0,73440.0,74460.0,75480.0,76500.0,77520.0,78540.0,79560.0,80580.0,81600.0,82620.0,83640.0,84660.0,85680.0,86700.0,87720.0,88740.0,89760.0,90780.0,91800.0,92820.0,93840.0,94860.0,95880.0,96900.0,97920.0,98940.0,99960.0,100980.0,102000.0],"times":[1014560.0,1999779.0,3031722.0,3900546.0,4875293.0,6009681.0,7009991.0,7838852.0,9053920.0,9948208.0,10671306.0,11996651.0,12720554.0,13759428.0,14647125.0,15707335.0,16655083.0,17657990.0,18577447.0,19495218.0,20416697.0,21577986.0,22414358.0,23885994.0,24382859.0,25746833.0,30458220.0,27342440.0,28469327.0,29207765.0,30607436.0,31200910.0,33985614.0,37211007.0,34274276.0,35121330.0,36058413.0,37396651.0,38689006.0,39200705.0,40125017.0,41124401.0,41984198.0,43087284.0,44061921.0,45002430.0,46234795.0,47986039.0,50653309.0,57006275.0,51098591.0,51366725.0,52426740.0,53117737.0,54086168.0,57991596.0,55772577.0,56746656.0,57840422.0,64105484.0,60054131.0,60698207.0,61755255.0,62412458.0,63706595.0,64459372.0,65598562.0,67716321.0,68520165.0,68939073.0,69632328.0,75161469.0,71196416.0,72447296.0,74680559.0,81796993.0,75854321.0,76367219.0,78135569.0,78486370.0,80236144.0,81500465.0,82104395.0,82918110.0,84272276.0,84764095.0,86388986.0,86743289.0,87181826.0,88345459.0,89244839.0,89910027.0,91669855.0,93293208.0,95608967.0,110941824.0,95585790.0,99195107.0,96734518.0,97823995.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..3e95b1c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/deserialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[913.7962358367363,936.61392766159,997.4611058611999,1020.2787976860537] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..6f64b92 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177589.12502072455,"upper_bound":179466.28443194425},"point_estimate":178421.87930817937,"standard_error":482.11121204347234},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":176417.56274081016,"upper_bound":177709.49599358975},"point_estimate":176920.54984126985,"standard_error":399.6109357898183},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1553.7242092299864,"upper_bound":3080.842034613198},"point_estimate":2156.935181854879,"standard_error":406.1754118958026},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177456.82922730062,"upper_bound":181474.97373080783},"point_estimate":179009.42544061868,"standard_error":1079.7316169307624},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2710.828641942142,"upper_bound":7155.4051768386025},"point_estimate":4844.365365462399,"standard_error":1357.785917272449}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..d2818a9 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1118347.0,2078007.0,3257651.0,4231817.0,5522547.0,6558626.0,7333136.0,8525503.0,9449074.0,10459653.0,12150161.0,13184236.0,13868739.0,15207213.0,16014314.0,16836386.0,17840016.0,19094168.0,19950762.0,21007930.0,22298792.0,23025522.0,24505033.0,25961242.0,28011593.0,27432970.0,28368048.0,29509709.0,30503417.0,32119190.0,33355807.0,34592764.0,34928470.0,35764672.0,36953168.0,37923384.0,39878326.0,39936576.0,41166620.0,42365971.0,43332982.0,46666724.0,47210260.0,47046511.0,50226080.0,48606668.0,50196421.0,51329399.0,55168772.0,53059968.0,56023916.0,54857912.0,56393853.0,56967045.0,57789311.0,59279011.0,60734733.0,61402800.0,62906329.0,63937995.0,64384857.0,65581009.0,68018660.0,68118284.0,68958432.0,69825402.0,70811245.0,71553185.0,74287074.0,76134136.0,75239379.0,79211924.0,78012263.0,78303876.0,80848364.0,81666371.0,81435270.0,82647423.0,83301312.0,84386553.0,86659059.0,87798209.0,89823196.0,88682479.0,90017206.0,92347549.0,94182965.0,95304328.0,97799815.0,94826492.0,95592755.0,97288152.0,98850747.0,98915881.0,101069094.0,101264362.0,102681510.0,126457407.0,109116440.0,107220483.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..4306534 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[164464.26010395004,170155.09960325708,185330.67160140915,191021.51110071616] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..6f64b92 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177589.12502072455,"upper_bound":179466.28443194425},"point_estimate":178421.87930817937,"standard_error":482.11121204347234},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":176417.56274081016,"upper_bound":177709.49599358975},"point_estimate":176920.54984126985,"standard_error":399.6109357898183},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1553.7242092299864,"upper_bound":3080.842034613198},"point_estimate":2156.935181854879,"standard_error":406.1754118958026},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177456.82922730062,"upper_bound":181474.97373080783},"point_estimate":179009.42544061868,"standard_error":1079.7316169307624},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2710.828641942142,"upper_bound":7155.4051768386025},"point_estimate":4844.365365462399,"standard_error":1357.785917272449}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..d2818a9 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1118347.0,2078007.0,3257651.0,4231817.0,5522547.0,6558626.0,7333136.0,8525503.0,9449074.0,10459653.0,12150161.0,13184236.0,13868739.0,15207213.0,16014314.0,16836386.0,17840016.0,19094168.0,19950762.0,21007930.0,22298792.0,23025522.0,24505033.0,25961242.0,28011593.0,27432970.0,28368048.0,29509709.0,30503417.0,32119190.0,33355807.0,34592764.0,34928470.0,35764672.0,36953168.0,37923384.0,39878326.0,39936576.0,41166620.0,42365971.0,43332982.0,46666724.0,47210260.0,47046511.0,50226080.0,48606668.0,50196421.0,51329399.0,55168772.0,53059968.0,56023916.0,54857912.0,56393853.0,56967045.0,57789311.0,59279011.0,60734733.0,61402800.0,62906329.0,63937995.0,64384857.0,65581009.0,68018660.0,68118284.0,68958432.0,69825402.0,70811245.0,71553185.0,74287074.0,76134136.0,75239379.0,79211924.0,78012263.0,78303876.0,80848364.0,81666371.0,81435270.0,82647423.0,83301312.0,84386553.0,86659059.0,87798209.0,89823196.0,88682479.0,90017206.0,92347549.0,94182965.0,95304328.0,97799815.0,94826492.0,95592755.0,97288152.0,98850747.0,98915881.0,101069094.0,101264362.0,102681510.0,126457407.0,109116440.0,107220483.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..4306534 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[164464.26010395004,170155.09960325708,185330.67160140915,191021.51110071616] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..917bd6a --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1781022.8666719596,"upper_bound":1794240.351775516},"point_estimate":1787315.6521489527,"standard_error":3370.814409598635},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1772025.4,"upper_bound":1779354.2921348314},"point_estimate":1775075.6891854706,"standard_error":1791.0892382515465},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9569.69058089353,"upper_bound":22185.04847045046},"point_estimate":14360.662849072998,"standard_error":3262.635210028323},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1785872.598635615,"upper_bound":1807679.6629758116},"point_estimate":1796208.187577952,"standard_error":5589.994371923697},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24097.57264987425,"upper_bound":42255.1243222719},"point_estimate":33909.77327509246,"standard_error":4636.467898269519}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..8d0430f --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[1780443.0,3637027.0,5223399.0,7020632.0,8809236.0,10535384.0,12322880.0,14120880.0,15959133.0,17582114.0,19574189.0,21692814.0,22990181.0,24719356.0,26365656.0,28775402.0,30050116.0,31763829.0,33753254.0,35417048.0,37301267.0,39029111.0,40429944.0,42337342.0,44398206.0,46954907.0,48120379.0,50946941.0,51528961.0,54031123.0,56387222.0,57470288.0,59540938.0,61554672.0,61881908.0,63379369.0,65966797.0,67163969.0,69074806.0,71282156.0,72183488.0,74212656.0,75972102.0,77993322.0,80086727.0,81658337.0,86974672.0,85258832.0,86377774.0,88675282.0,90242076.0,92139206.0,93798227.0,96730741.0,99855791.0,100467404.0,101262069.0,109573535.0,104462823.0,106321524.0,107882596.0,109644817.0,111301503.0,115673524.0,117197050.0,125046574.0,120885346.0,120027536.0,122146427.0,124061512.0,125765999.0,128652924.0,131469806.0,134428992.0,143536386.0,134335424.0,135960538.0,137419173.0,140222641.0,143863179.0,143577890.0,147494616.0,147103044.0,148950876.0,164450035.0,154384111.0,155176729.0,156268237.0,158362532.0,159040950.0,161023132.0,162844821.0,169673667.0,174508236.0,168811699.0,177922296.0,170960052.0,176811426.0,184804617.0,178831825.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..c7375ab --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[1674955.9872786563,1721294.6205743128,1844864.3093627295,1891202.9426583857] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..917bd6a --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1781022.8666719596,"upper_bound":1794240.351775516},"point_estimate":1787315.6521489527,"standard_error":3370.814409598635},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1772025.4,"upper_bound":1779354.2921348314},"point_estimate":1775075.6891854706,"standard_error":1791.0892382515465},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9569.69058089353,"upper_bound":22185.04847045046},"point_estimate":14360.662849072998,"standard_error":3262.635210028323},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1785872.598635615,"upper_bound":1807679.6629758116},"point_estimate":1796208.187577952,"standard_error":5589.994371923697},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24097.57264987425,"upper_bound":42255.1243222719},"point_estimate":33909.77327509246,"standard_error":4636.467898269519}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..8d0430f --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[1780443.0,3637027.0,5223399.0,7020632.0,8809236.0,10535384.0,12322880.0,14120880.0,15959133.0,17582114.0,19574189.0,21692814.0,22990181.0,24719356.0,26365656.0,28775402.0,30050116.0,31763829.0,33753254.0,35417048.0,37301267.0,39029111.0,40429944.0,42337342.0,44398206.0,46954907.0,48120379.0,50946941.0,51528961.0,54031123.0,56387222.0,57470288.0,59540938.0,61554672.0,61881908.0,63379369.0,65966797.0,67163969.0,69074806.0,71282156.0,72183488.0,74212656.0,75972102.0,77993322.0,80086727.0,81658337.0,86974672.0,85258832.0,86377774.0,88675282.0,90242076.0,92139206.0,93798227.0,96730741.0,99855791.0,100467404.0,101262069.0,109573535.0,104462823.0,106321524.0,107882596.0,109644817.0,111301503.0,115673524.0,117197050.0,125046574.0,120885346.0,120027536.0,122146427.0,124061512.0,125765999.0,128652924.0,131469806.0,134428992.0,143536386.0,134335424.0,135960538.0,137419173.0,140222641.0,143863179.0,143577890.0,147494616.0,147103044.0,148950876.0,164450035.0,154384111.0,155176729.0,156268237.0,158362532.0,159040950.0,161023132.0,162844821.0,169673667.0,174508236.0,168811699.0,177922296.0,170960052.0,176811426.0,184804617.0,178831825.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..c7375ab --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[1674955.9872786563,1721294.6205743128,1844864.3093627295,1891202.9426583857] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..dcb5ab8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224.9242009658034,"upper_bound":226.28061755410195},"point_estimate":225.5634597917243,"standard_error":0.34667066643983174},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224.04811267970172,"upper_bound":225.1364445029856},"point_estimate":224.41267803888084,"standard_error":0.3064511244001218},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.2883938163189115,"upper_bound":2.454553943239509},"point_estimate":1.7248869099768827,"standard_error":0.2754360504590772},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224.97735728785452,"upper_bound":226.84954194265674},"point_estimate":225.82496135961992,"standard_error":0.48114454853478406},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.407675379598186,"upper_bound":4.4356661453751745},"point_estimate":3.4941759874976848,"standard_error":0.5176812661449182}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..500a051 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4380.0,8760.0,13140.0,17520.0,21900.0,26280.0,30660.0,35040.0,39420.0,43800.0,48180.0,52560.0,56940.0,61320.0,65700.0,70080.0,74460.0,78840.0,83220.0,87600.0,91980.0,96360.0,100740.0,105120.0,109500.0,113880.0,118260.0,122640.0,127020.0,131400.0,135780.0,140160.0,144540.0,148920.0,153300.0,157680.0,162060.0,166440.0,170820.0,175200.0,179580.0,183960.0,188340.0,192720.0,197100.0,201480.0,205860.0,210240.0,214620.0,219000.0,223380.0,227760.0,232140.0,236520.0,240900.0,245280.0,249660.0,254040.0,258420.0,262800.0,267180.0,271560.0,275940.0,280320.0,284700.0,289080.0,293460.0,297840.0,302220.0,306600.0,310980.0,315360.0,319740.0,324120.0,328500.0,332880.0,337260.0,341640.0,346020.0,350400.0,354780.0,359160.0,363540.0,367920.0,372300.0,376680.0,381060.0,385440.0,389820.0,394200.0,398580.0,402960.0,407340.0,411720.0,416100.0,420480.0,424860.0,429240.0,433620.0,438000.0],"times":[1007939.0,1942098.0,3049315.0,3981747.0,4854951.0,5865964.0,6914403.0,7740514.0,8823693.0,9984882.0,10790533.0,11758152.0,12834147.0,13696189.0,14893313.0,16250285.0,16679132.0,17697184.0,18812589.0,19617654.0,20441318.0,21799011.0,22623047.0,23440683.0,24533278.0,25522877.0,26691424.0,27196935.0,28294976.0,29266157.0,30804709.0,31166685.0,32382552.0,33930143.0,34388139.0,35516215.0,36467332.0,37094787.0,38111550.0,39214593.0,41725288.0,40997812.0,42896629.0,43732027.0,44052715.0,46021644.0,47160250.0,47279279.0,48036131.0,49316405.0,50060178.0,51358400.0,51959224.0,52592246.0,53678027.0,55148542.0,55949173.0,57883906.0,57899517.0,58899420.0,59860137.0,60964270.0,62559043.0,64211343.0,65292906.0,68202997.0,70171112.0,71950489.0,67758302.0,68435267.0,69637403.0,71129735.0,71619965.0,73141131.0,73947328.0,74518111.0,76999133.0,77824360.0,78436304.0,78813411.0,80249678.0,80579610.0,81548942.0,82144207.0,83320954.0,84975609.0,85217213.0,86251739.0,86956380.0,93714543.0,89713911.0,90988818.0,91262078.0,91922310.0,92886523.0,94406122.0,95774813.0,96089579.0,98674370.0,98791990.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..8600890 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[216.1598603091472,219.97698924899282,230.15599975524776,233.97312869509335] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..dcb5ab8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224.9242009658034,"upper_bound":226.28061755410195},"point_estimate":225.5634597917243,"standard_error":0.34667066643983174},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224.04811267970172,"upper_bound":225.1364445029856},"point_estimate":224.41267803888084,"standard_error":0.3064511244001218},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.2883938163189115,"upper_bound":2.454553943239509},"point_estimate":1.7248869099768827,"standard_error":0.2754360504590772},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224.97735728785452,"upper_bound":226.84954194265674},"point_estimate":225.82496135961992,"standard_error":0.48114454853478406},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.407675379598186,"upper_bound":4.4356661453751745},"point_estimate":3.4941759874976848,"standard_error":0.5176812661449182}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..500a051 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4380.0,8760.0,13140.0,17520.0,21900.0,26280.0,30660.0,35040.0,39420.0,43800.0,48180.0,52560.0,56940.0,61320.0,65700.0,70080.0,74460.0,78840.0,83220.0,87600.0,91980.0,96360.0,100740.0,105120.0,109500.0,113880.0,118260.0,122640.0,127020.0,131400.0,135780.0,140160.0,144540.0,148920.0,153300.0,157680.0,162060.0,166440.0,170820.0,175200.0,179580.0,183960.0,188340.0,192720.0,197100.0,201480.0,205860.0,210240.0,214620.0,219000.0,223380.0,227760.0,232140.0,236520.0,240900.0,245280.0,249660.0,254040.0,258420.0,262800.0,267180.0,271560.0,275940.0,280320.0,284700.0,289080.0,293460.0,297840.0,302220.0,306600.0,310980.0,315360.0,319740.0,324120.0,328500.0,332880.0,337260.0,341640.0,346020.0,350400.0,354780.0,359160.0,363540.0,367920.0,372300.0,376680.0,381060.0,385440.0,389820.0,394200.0,398580.0,402960.0,407340.0,411720.0,416100.0,420480.0,424860.0,429240.0,433620.0,438000.0],"times":[1007939.0,1942098.0,3049315.0,3981747.0,4854951.0,5865964.0,6914403.0,7740514.0,8823693.0,9984882.0,10790533.0,11758152.0,12834147.0,13696189.0,14893313.0,16250285.0,16679132.0,17697184.0,18812589.0,19617654.0,20441318.0,21799011.0,22623047.0,23440683.0,24533278.0,25522877.0,26691424.0,27196935.0,28294976.0,29266157.0,30804709.0,31166685.0,32382552.0,33930143.0,34388139.0,35516215.0,36467332.0,37094787.0,38111550.0,39214593.0,41725288.0,40997812.0,42896629.0,43732027.0,44052715.0,46021644.0,47160250.0,47279279.0,48036131.0,49316405.0,50060178.0,51358400.0,51959224.0,52592246.0,53678027.0,55148542.0,55949173.0,57883906.0,57899517.0,58899420.0,59860137.0,60964270.0,62559043.0,64211343.0,65292906.0,68202997.0,70171112.0,71950489.0,67758302.0,68435267.0,69637403.0,71129735.0,71619965.0,73141131.0,73947328.0,74518111.0,76999133.0,77824360.0,78436304.0,78813411.0,80249678.0,80579610.0,81548942.0,82144207.0,83320954.0,84975609.0,85217213.0,86251739.0,86956380.0,93714543.0,89713911.0,90988818.0,91262078.0,91922310.0,92886523.0,94406122.0,95774813.0,96089579.0,98674370.0,98791990.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..8600890 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-1/serialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[216.1598603091472,219.97698924899282,230.15599975524776,233.97312869509335] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2.txt new file mode 100644 index 0000000..9a2e876 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2.txt @@ -0,0 +1,65 @@ +memcap: <=7721 MiB (60% of 12869 MiB available) [systemd MemoryMax, swap off] +Benchmarking deserialization/sensor_micro +Benchmarking deserialization/sensor_micro: Warming up for 3.0000 s +Benchmarking deserialization/sensor_micro: Collecting 100 samples in estimated 5.0004 s (5.1M iterations) +Benchmarking deserialization/sensor_micro: Analyzing +deserialization/sensor_micro + time: [969.17 ns 974.70 ns 981.17 ns] + thrpt: [91.366 MiB/s 91.972 MiB/s 92.497 MiB/s] +Found 14 outliers among 100 measurements (14.00%) + 9 (9.00%) high mild + 5 (5.00%) high severe +Benchmarking deserialization/catalog_items/1000 +Benchmarking deserialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/1000: Collecting 100 samples in estimated 8.0178 s (10k iterations) +Benchmarking deserialization/catalog_items/1000: Analyzing +deserialization/catalog_items/1000 + time: [782.57 µs 786.98 µs 792.35 µs] + thrpt: [76.923 MiB/s 77.449 MiB/s 77.885 MiB/s] +Found 8 outliers among 100 measurements (8.00%) + 5 (5.00%) high mild + 3 (3.00%) high severe +Benchmarking deserialization/catalog_items/10000 +Benchmarking deserialization/catalog_items/10000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/10000: Collecting 100 samples in estimated 5.5677 s (700 iterations) +Benchmarking deserialization/catalog_items/10000: Analyzing +deserialization/catalog_items/10000 + time: [7.9025 ms 7.9553 ms 8.0179 ms] + thrpt: [79.563 MiB/s 80.188 MiB/s 80.724 MiB/s] +Found 13 outliers among 100 measurements (13.00%) + 5 (5.00%) high mild + 8 (8.00%) high severe + +Benchmarking serialization/sensor_micro +Benchmarking serialization/sensor_micro: Warming up for 3.0000 s +Benchmarking serialization/sensor_micro: Collecting 100 samples in estimated 5.0007 s (22M iterations) +Benchmarking serialization/sensor_micro: Analyzing +serialization/sensor_micro + time: [225.32 ns 227.06 ns 229.18 ns] + thrpt: [391.15 MiB/s 394.82 MiB/s 397.85 MiB/s] +Found 11 outliers among 100 measurements (11.00%) + 4 (4.00%) high mild + 7 (7.00%) high severe +Benchmarking serialization/catalog_items/1000 +Benchmarking serialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking serialization/catalog_items/1000: Collecting 100 samples in estimated 5.4187 s (30k iterations) +Benchmarking serialization/catalog_items/1000: Analyzing +serialization/catalog_items/1000 + time: [176.93 µs 177.45 µs 178.05 µs] + thrpt: [339.65 MiB/s 340.79 MiB/s 341.78 MiB/s] +Found 7 outliers among 100 measurements (7.00%) + 2 (2.00%) high mild + 5 (5.00%) high severe +Benchmarking serialization/catalog_items/10000 +Benchmarking serialization/catalog_items/10000: Warming up for 3.0000 s + +Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 9.1s, enable flat sampling, or reduce sample count to 50. +Benchmarking serialization/catalog_items/10000: Collecting 100 samples in estimated 9.0502 s (5050 iterations) +Benchmarking serialization/catalog_items/10000: Analyzing +serialization/catalog_items/10000 + time: [1.8186 ms 1.8539 ms 1.8947 ms] + thrpt: [334.18 MiB/s 341.52 MiB/s 348.15 MiB/s] +Found 14 outliers among 100 measurements (14.00%) + 6 (6.00%) high mild + 8 (8.00%) high severe + diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..82c6e26 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":784670.0418452171,"upper_bound":794608.2931641726},"point_estimate":789190.6971912745,"standard_error":2547.8518144736636},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":778471.1048534799,"upper_bound":782317.0396825396},"point_estimate":780663.4399350649,"standard_error":1038.032924591344},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5163.667060599352,"upper_bound":10792.929647118217},"point_estimate":7971.797624541917,"standard_error":1515.7806438615266},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":782566.1503339584,"upper_bound":792350.1520176603},"point_estimate":786976.4518368554,"standard_error":2505.3831362831697},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14401.803843362462,"upper_bound":35788.71851207234},"point_estimate":25661.520169974112,"standard_error":5556.318271266768}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..3ac1195 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1585870.0,3342990.0,4823266.0,6171546.0,7820797.0,9361250.0,13277394.0,12434339.0,14116167.0,15909090.0,17044422.0,18525954.0,20195041.0,22503445.0,23284215.0,24808747.0,26215888.0,28590586.0,30991915.0,32626268.0,32684612.0,34157405.0,36163467.0,39586424.0,38717767.0,40609306.0,41830295.0,43402104.0,45133865.0,46504629.0,48236118.0,50837694.0,51340827.0,54287660.0,54120057.0,56740556.0,58540431.0,59915911.0,60736307.0,61982100.0,65132428.0,66714771.0,74471206.0,70916031.0,70112434.0,75198829.0,73285031.0,74292837.0,76747973.0,77607114.0,79869550.0,86327469.0,82454130.0,83633727.0,85472131.0,87436137.0,88323624.0,90673638.0,91409752.0,93726127.0,95443498.0,97286753.0,98571947.0,114997071.0,100500880.0,103185976.0,109900596.0,105704458.0,106906464.0,108958025.0,110557674.0,114317296.0,114068320.0,115860634.0,116719579.0,118717308.0,119980422.0,122281481.0,123711386.0,127888019.0,126209993.0,127260741.0,129023024.0,137408950.0,132293799.0,133058209.0,136674153.0,137393887.0,138141573.0,140227452.0,144513212.0,142655150.0,145476972.0,146233095.0,150618910.0,148941510.0,151325812.0,155501038.0,153410652.0,167750309.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..c8bf01a --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[725921.24512987,751092.432224026,818215.5978084416,843386.7849025974] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..82c6e26 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":784670.0418452171,"upper_bound":794608.2931641726},"point_estimate":789190.6971912745,"standard_error":2547.8518144736636},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":778471.1048534799,"upper_bound":782317.0396825396},"point_estimate":780663.4399350649,"standard_error":1038.032924591344},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5163.667060599352,"upper_bound":10792.929647118217},"point_estimate":7971.797624541917,"standard_error":1515.7806438615266},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":782566.1503339584,"upper_bound":792350.1520176603},"point_estimate":786976.4518368554,"standard_error":2505.3831362831697},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14401.803843362462,"upper_bound":35788.71851207234},"point_estimate":25661.520169974112,"standard_error":5556.318271266768}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..3ac1195 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1585870.0,3342990.0,4823266.0,6171546.0,7820797.0,9361250.0,13277394.0,12434339.0,14116167.0,15909090.0,17044422.0,18525954.0,20195041.0,22503445.0,23284215.0,24808747.0,26215888.0,28590586.0,30991915.0,32626268.0,32684612.0,34157405.0,36163467.0,39586424.0,38717767.0,40609306.0,41830295.0,43402104.0,45133865.0,46504629.0,48236118.0,50837694.0,51340827.0,54287660.0,54120057.0,56740556.0,58540431.0,59915911.0,60736307.0,61982100.0,65132428.0,66714771.0,74471206.0,70916031.0,70112434.0,75198829.0,73285031.0,74292837.0,76747973.0,77607114.0,79869550.0,86327469.0,82454130.0,83633727.0,85472131.0,87436137.0,88323624.0,90673638.0,91409752.0,93726127.0,95443498.0,97286753.0,98571947.0,114997071.0,100500880.0,103185976.0,109900596.0,105704458.0,106906464.0,108958025.0,110557674.0,114317296.0,114068320.0,115860634.0,116719579.0,118717308.0,119980422.0,122281481.0,123711386.0,127888019.0,126209993.0,127260741.0,129023024.0,137408950.0,132293799.0,133058209.0,136674153.0,137393887.0,138141573.0,140227452.0,144513212.0,142655150.0,145476972.0,146233095.0,150618910.0,148941510.0,151325812.0,155501038.0,153410652.0,167750309.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..c8bf01a --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[725921.24512987,751092.432224026,818215.5978084416,843386.7849025974] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..c3c08e0 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7902489.854464282,"upper_bound":8017853.829928573},"point_estimate":7955338.324285713,"standard_error":29489.23673649763},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7835334.785714285,"upper_bound":7880328.285714285},"point_estimate":7851814.071428571,"standard_error":11798.93535456849},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56441.0983979702,"upper_bound":109101.77866305673},"point_estimate":79504.52948851234,"standard_error":12737.762238086523},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177309.73640344606,"upper_bound":404427.6661873185},"point_estimate":295713.86290807475,"standard_error":58892.415672625684}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..c2c660f --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0],"times":[54509359.0,54822429.0,54697975.0,54913292.0,54506448.0,55830021.0,55371460.0,55607326.0,54762031.0,56581681.0,61463543.0,56447696.0,58634490.0,61874992.0,54671359.0,54695053.0,55993557.0,57001898.0,58024843.0,62859520.0,54851432.0,54614971.0,54474322.0,54634755.0,54996129.0,55292912.0,54509557.0,55372067.0,55463733.0,54911667.0,56377597.0,56201363.0,55074464.0,54718141.0,55510337.0,54814217.0,54914955.0,54664532.0,54727422.0,55116991.0,54642605.0,54877278.0,55002945.0,55432820.0,54538139.0,54929268.0,57561402.0,55266276.0,55161390.0,55006017.0,54591086.0,55426891.0,55589068.0,55595864.0,54557047.0,55009731.0,54618366.0,55207605.0,54304330.0,54723409.0,54708549.0,57092071.0,60261911.0,55621100.0,56393198.0,56644119.0,55611898.0,55059073.0,54722632.0,55262861.0,55341837.0,54397428.0,54734786.0,54530120.0,54545606.0,54826959.0,54484241.0,54642489.0,54531483.0,54870646.0,55314216.0,54363173.0,55927515.0,59417381.0,54911196.0,54867728.0,54894907.0,55055971.0,55075338.0,54781914.0,54641178.0,54542306.0,54660108.0,68090349.0,57588975.0,60727253.0,54522336.0,54555551.0,55268836.0,54695515.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..451d1a9 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[7411774.357142855,7610862.339285713,8141763.625,8340851.607142858] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..c3c08e0 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7902489.854464282,"upper_bound":8017853.829928573},"point_estimate":7955338.324285713,"standard_error":29489.23673649763},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7835334.785714285,"upper_bound":7880328.285714285},"point_estimate":7851814.071428571,"standard_error":11798.93535456849},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":56441.0983979702,"upper_bound":109101.77866305673},"point_estimate":79504.52948851234,"standard_error":12737.762238086523},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177309.73640344606,"upper_bound":404427.6661873185},"point_estimate":295713.86290807475,"standard_error":58892.415672625684}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..c2c660f --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0],"times":[54509359.0,54822429.0,54697975.0,54913292.0,54506448.0,55830021.0,55371460.0,55607326.0,54762031.0,56581681.0,61463543.0,56447696.0,58634490.0,61874992.0,54671359.0,54695053.0,55993557.0,57001898.0,58024843.0,62859520.0,54851432.0,54614971.0,54474322.0,54634755.0,54996129.0,55292912.0,54509557.0,55372067.0,55463733.0,54911667.0,56377597.0,56201363.0,55074464.0,54718141.0,55510337.0,54814217.0,54914955.0,54664532.0,54727422.0,55116991.0,54642605.0,54877278.0,55002945.0,55432820.0,54538139.0,54929268.0,57561402.0,55266276.0,55161390.0,55006017.0,54591086.0,55426891.0,55589068.0,55595864.0,54557047.0,55009731.0,54618366.0,55207605.0,54304330.0,54723409.0,54708549.0,57092071.0,60261911.0,55621100.0,56393198.0,56644119.0,55611898.0,55059073.0,54722632.0,55262861.0,55341837.0,54397428.0,54734786.0,54530120.0,54545606.0,54826959.0,54484241.0,54642489.0,54531483.0,54870646.0,55314216.0,54363173.0,55927515.0,59417381.0,54911196.0,54867728.0,54894907.0,55055971.0,55075338.0,54781914.0,54641178.0,54542306.0,54660108.0,68090349.0,57588975.0,60727253.0,54522336.0,54555551.0,55268836.0,54695515.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..451d1a9 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[7411774.357142855,7610862.339285713,8141763.625,8340851.607142858] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..1b39590 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":969.0449856731873,"upper_bound":977.4409164247452},"point_estimate":973.0213410592216,"standard_error":2.1494153276342978},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":963.7176751031085,"upper_bound":968.1495798521657},"point_estimate":965.3985231966265,"standard_error":0.9992990740392914},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":6.5037000147841155,"upper_bound":12.430715317316556},"point_estimate":8.563022997304289,"standard_error":1.4220290692036217},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":969.1708605720748,"upper_bound":981.1727128245149},"point_estimate":974.6982135037479,"standard_error":3.0753641392174624},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":15.805680203850999,"upper_bound":26.786210309898927},"point_estimate":21.671459118049277,"standard_error":2.8155455211434286}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..d83fdee --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1013.0,2026.0,3039.0,4052.0,5065.0,6078.0,7091.0,8104.0,9117.0,10130.0,11143.0,12156.0,13169.0,14182.0,15195.0,16208.0,17221.0,18234.0,19247.0,20260.0,21273.0,22286.0,23299.0,24312.0,25325.0,26338.0,27351.0,28364.0,29377.0,30390.0,31403.0,32416.0,33429.0,34442.0,35455.0,36468.0,37481.0,38494.0,39507.0,40520.0,41533.0,42546.0,43559.0,44572.0,45585.0,46598.0,47611.0,48624.0,49637.0,50650.0,51663.0,52676.0,53689.0,54702.0,55715.0,56728.0,57741.0,58754.0,59767.0,60780.0,61793.0,62806.0,63819.0,64832.0,65845.0,66858.0,67871.0,68884.0,69897.0,70910.0,71923.0,72936.0,73949.0,74962.0,75975.0,76988.0,78001.0,79014.0,80027.0,81040.0,82053.0,83066.0,84079.0,85092.0,86105.0,87118.0,88131.0,89144.0,90157.0,91170.0,92183.0,93196.0,94209.0,95222.0,96235.0,97248.0,98261.0,99274.0,100287.0,101300.0],"times":[1022826.0,1991679.0,3074513.0,3916822.0,4865097.0,5841211.0,6771443.0,7711994.0,8791560.0,9876989.0,10823595.0,12249631.0,13675056.0,14602032.0,14725935.0,15704353.0,17126527.0,17496809.0,18464000.0,19359756.0,20452240.0,21330093.0,22354768.0,23502812.0,24204232.0,25575682.0,26194249.0,27265936.0,28510764.0,29231409.0,30137016.0,31729833.0,33718222.0,33209654.0,34099329.0,34736705.0,36031226.0,36803304.0,38522320.0,38922550.0,40292899.0,40918876.0,41633047.0,42615676.0,43878482.0,44988386.0,45789313.0,46525728.0,47489349.0,50052385.0,49809739.0,50790770.0,51420179.0,52835503.0,53850181.0,54328940.0,58364833.0,59144577.0,57491183.0,60775059.0,60382046.0,60563604.0,62283189.0,62244652.0,62993031.0,64182472.0,65375011.0,66178615.0,67310467.0,68932711.0,69437690.0,70641458.0,71403307.0,80106857.0,79059576.0,74569908.0,75233562.0,75827773.0,78244122.0,81458848.0,80676091.0,80420313.0,81138245.0,82193920.0,83389040.0,84243494.0,86264052.0,89184905.0,86453421.0,87622329.0,89353438.0,90530472.0,90944865.0,91844337.0,94069554.0,95348162.0,94801277.0,96337366.0,104209199.0,97186413.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..5dd0507 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[916.389512166018,938.4774127957435,997.3784811416781,1019.4663817714036] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..1b39590 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":969.0449856731873,"upper_bound":977.4409164247452},"point_estimate":973.0213410592216,"standard_error":2.1494153276342978},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":963.7176751031085,"upper_bound":968.1495798521657},"point_estimate":965.3985231966265,"standard_error":0.9992990740392914},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":6.5037000147841155,"upper_bound":12.430715317316556},"point_estimate":8.563022997304289,"standard_error":1.4220290692036217},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":969.1708605720748,"upper_bound":981.1727128245149},"point_estimate":974.6982135037479,"standard_error":3.0753641392174624},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":15.805680203850999,"upper_bound":26.786210309898927},"point_estimate":21.671459118049277,"standard_error":2.8155455211434286}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..d83fdee --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1013.0,2026.0,3039.0,4052.0,5065.0,6078.0,7091.0,8104.0,9117.0,10130.0,11143.0,12156.0,13169.0,14182.0,15195.0,16208.0,17221.0,18234.0,19247.0,20260.0,21273.0,22286.0,23299.0,24312.0,25325.0,26338.0,27351.0,28364.0,29377.0,30390.0,31403.0,32416.0,33429.0,34442.0,35455.0,36468.0,37481.0,38494.0,39507.0,40520.0,41533.0,42546.0,43559.0,44572.0,45585.0,46598.0,47611.0,48624.0,49637.0,50650.0,51663.0,52676.0,53689.0,54702.0,55715.0,56728.0,57741.0,58754.0,59767.0,60780.0,61793.0,62806.0,63819.0,64832.0,65845.0,66858.0,67871.0,68884.0,69897.0,70910.0,71923.0,72936.0,73949.0,74962.0,75975.0,76988.0,78001.0,79014.0,80027.0,81040.0,82053.0,83066.0,84079.0,85092.0,86105.0,87118.0,88131.0,89144.0,90157.0,91170.0,92183.0,93196.0,94209.0,95222.0,96235.0,97248.0,98261.0,99274.0,100287.0,101300.0],"times":[1022826.0,1991679.0,3074513.0,3916822.0,4865097.0,5841211.0,6771443.0,7711994.0,8791560.0,9876989.0,10823595.0,12249631.0,13675056.0,14602032.0,14725935.0,15704353.0,17126527.0,17496809.0,18464000.0,19359756.0,20452240.0,21330093.0,22354768.0,23502812.0,24204232.0,25575682.0,26194249.0,27265936.0,28510764.0,29231409.0,30137016.0,31729833.0,33718222.0,33209654.0,34099329.0,34736705.0,36031226.0,36803304.0,38522320.0,38922550.0,40292899.0,40918876.0,41633047.0,42615676.0,43878482.0,44988386.0,45789313.0,46525728.0,47489349.0,50052385.0,49809739.0,50790770.0,51420179.0,52835503.0,53850181.0,54328940.0,58364833.0,59144577.0,57491183.0,60775059.0,60382046.0,60563604.0,62283189.0,62244652.0,62993031.0,64182472.0,65375011.0,66178615.0,67310467.0,68932711.0,69437690.0,70641458.0,71403307.0,80106857.0,79059576.0,74569908.0,75233562.0,75827773.0,78244122.0,81458848.0,80676091.0,80420313.0,81138245.0,82193920.0,83389040.0,84243494.0,86264052.0,89184905.0,86453421.0,87622329.0,89353438.0,90530472.0,90944865.0,91844337.0,94069554.0,95348162.0,94801277.0,96337366.0,104209199.0,97186413.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..5dd0507 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/deserialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[916.389512166018,938.4774127957435,997.3784811416781,1019.4663817714036] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..95ee3b4 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177309.1110682692,"upper_bound":179616.67478112257},"point_estimate":178287.9904270703,"standard_error":596.1268086997642},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":176300.9693877551,"upper_bound":177135.64112276613},"point_estimate":176612.1171507064,"standard_error":219.15317387868498},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":960.3208990343982,"upper_bound":2010.6282165922303},"point_estimate":1458.0967237016273,"standard_error":269.64958843698946},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":176934.53331327997,"upper_bound":178046.04724562925},"point_estimate":177452.954702724,"standard_error":284.48334360653416},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2470.5203127665736,"upper_bound":9250.314253539413},"point_estimate":5966.220917024158,"standard_error":1990.2992664459657}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..500710a --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1129448.0,2120117.0,3115375.0,4258484.0,5292028.0,7006899.0,7635346.0,8454105.0,9728509.0,10585099.0,11583578.0,12733854.0,13773455.0,15186162.0,20389122.0,16854865.0,17927511.0,18992163.0,20380643.0,21055475.0,22207969.0,23385518.0,26508923.0,25230276.0,26816449.0,27889118.0,28431839.0,29495623.0,30569144.0,31730724.0,33126323.0,34611432.0,35406950.0,39163127.0,38091231.0,37773989.0,39174080.0,40246095.0,41199178.0,42204028.0,43146996.0,44404758.0,45902587.0,46375095.0,48011680.0,49037999.0,49711497.0,50678414.0,51832485.0,54143634.0,54411192.0,55672535.0,55964040.0,58614797.0,59197034.0,59089415.0,60273803.0,61089686.0,62281537.0,63224936.0,64388945.0,66706544.0,66496003.0,68501769.0,70283650.0,71373767.0,71478682.0,71726833.0,73102308.0,74453736.0,75152736.0,75938085.0,77576228.0,81149505.0,79628500.0,81477482.0,82134971.0,82886669.0,83829412.0,84229945.0,85204469.0,88263083.0,87554709.0,88741385.0,89803062.0,90749261.0,92935820.0,93272128.0,94834004.0,95604552.0,95967796.0,96869522.0,98608524.0,102475359.0,100542408.0,101335553.0,102643823.0,103865189.0,108824456.0,107139161.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..2fab925 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[167835.84621090032,171870.01265648374,182627.78984470625,186661.9562902897] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..95ee3b4 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":177309.1110682692,"upper_bound":179616.67478112257},"point_estimate":178287.9904270703,"standard_error":596.1268086997642},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":176300.9693877551,"upper_bound":177135.64112276613},"point_estimate":176612.1171507064,"standard_error":219.15317387868498},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":960.3208990343982,"upper_bound":2010.6282165922303},"point_estimate":1458.0967237016273,"standard_error":269.64958843698946},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":176934.53331327997,"upper_bound":178046.04724562925},"point_estimate":177452.954702724,"standard_error":284.48334360653416},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2470.5203127665736,"upper_bound":9250.314253539413},"point_estimate":5966.220917024158,"standard_error":1990.2992664459657}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..500710a --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1129448.0,2120117.0,3115375.0,4258484.0,5292028.0,7006899.0,7635346.0,8454105.0,9728509.0,10585099.0,11583578.0,12733854.0,13773455.0,15186162.0,20389122.0,16854865.0,17927511.0,18992163.0,20380643.0,21055475.0,22207969.0,23385518.0,26508923.0,25230276.0,26816449.0,27889118.0,28431839.0,29495623.0,30569144.0,31730724.0,33126323.0,34611432.0,35406950.0,39163127.0,38091231.0,37773989.0,39174080.0,40246095.0,41199178.0,42204028.0,43146996.0,44404758.0,45902587.0,46375095.0,48011680.0,49037999.0,49711497.0,50678414.0,51832485.0,54143634.0,54411192.0,55672535.0,55964040.0,58614797.0,59197034.0,59089415.0,60273803.0,61089686.0,62281537.0,63224936.0,64388945.0,66706544.0,66496003.0,68501769.0,70283650.0,71373767.0,71478682.0,71726833.0,73102308.0,74453736.0,75152736.0,75938085.0,77576228.0,81149505.0,79628500.0,81477482.0,82134971.0,82886669.0,83829412.0,84229945.0,85204469.0,88263083.0,87554709.0,88741385.0,89803062.0,90749261.0,92935820.0,93272128.0,94834004.0,95604552.0,95967796.0,96869522.0,98608524.0,102475359.0,100542408.0,101335553.0,102643823.0,103865189.0,108824456.0,107139161.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..2fab925 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[167835.84621090032,171870.01265648374,182627.78984470625,186661.9562902897] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..7be54fb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1803586.690858,"upper_bound":1840220.847117122},"point_estimate":1820118.9438290582,"standard_error":9434.505392752879},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1781925.4583333333,"upper_bound":1797027.5076923077},"point_estimate":1788443.3928571427,"standard_error":3979.5711371244574},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11668.916245731336,"upper_bound":28357.26654424988},"point_estimate":18193.179573110236,"standard_error":3985.9400682861947},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1818643.0428494925,"upper_bound":1894664.5750367765},"point_estimate":1853907.4200591105,"standard_error":19617.3403139743},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":52005.692940096436,"upper_bound":134859.82549583056},"point_estimate":94736.88417429304,"standard_error":21962.254250396527}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..580d6fd --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[2131564.0,3640648.0,5439596.0,7244735.0,8983025.0,10508184.0,12399821.0,14210272.0,16315943.0,18334481.0,19673588.0,21232871.0,22961129.0,25037303.0,26692274.0,28162962.0,30091279.0,32034901.0,34194970.0,35637385.0,37160334.0,38977517.0,41345730.0,42949483.0,44283901.0,47736375.0,47965775.0,49735064.0,52353825.0,54112690.0,55560019.0,57998413.0,58424890.0,63630173.0,62897181.0,63953645.0,65840092.0,67539285.0,70553868.0,76183609.0,73140414.0,74540771.0,76560764.0,78154662.0,80229383.0,82714699.0,84052827.0,86290688.0,87029008.0,88901351.0,90798775.0,92002352.0,94590999.0,96088370.0,97923858.0,101386789.0,101385850.0,104095564.0,105616458.0,106840022.0,109235491.0,109607679.0,112269182.0,114095080.0,116806788.0,117577768.0,131254128.0,120716106.0,127849932.0,129166149.0,128014205.0,128016819.0,136142820.0,133097334.0,141522625.0,135281689.0,137087346.0,140186471.0,140287848.0,142675979.0,144993151.0,148419902.0,147472487.0,149404303.0,155947139.0,152718980.0,156011836.0,162303622.0,163315095.0,220084059.0,184629214.0,174796531.0,186421843.0,188446785.0,176339585.0,171064844.0,172952812.0,186092510.0,194430580.0,214736557.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..89a75c5 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[1674417.1042708335,1726220.1065104168,1864361.4458159723,1916164.4480555556] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..7be54fb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1803586.690858,"upper_bound":1840220.847117122},"point_estimate":1820118.9438290582,"standard_error":9434.505392752879},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1781925.4583333333,"upper_bound":1797027.5076923077},"point_estimate":1788443.3928571427,"standard_error":3979.5711371244574},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":11668.916245731336,"upper_bound":28357.26654424988},"point_estimate":18193.179573110236,"standard_error":3985.9400682861947},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1818643.0428494925,"upper_bound":1894664.5750367765},"point_estimate":1853907.4200591105,"standard_error":19617.3403139743},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":52005.692940096436,"upper_bound":134859.82549583056},"point_estimate":94736.88417429304,"standard_error":21962.254250396527}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..580d6fd --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[2131564.0,3640648.0,5439596.0,7244735.0,8983025.0,10508184.0,12399821.0,14210272.0,16315943.0,18334481.0,19673588.0,21232871.0,22961129.0,25037303.0,26692274.0,28162962.0,30091279.0,32034901.0,34194970.0,35637385.0,37160334.0,38977517.0,41345730.0,42949483.0,44283901.0,47736375.0,47965775.0,49735064.0,52353825.0,54112690.0,55560019.0,57998413.0,58424890.0,63630173.0,62897181.0,63953645.0,65840092.0,67539285.0,70553868.0,76183609.0,73140414.0,74540771.0,76560764.0,78154662.0,80229383.0,82714699.0,84052827.0,86290688.0,87029008.0,88901351.0,90798775.0,92002352.0,94590999.0,96088370.0,97923858.0,101386789.0,101385850.0,104095564.0,105616458.0,106840022.0,109235491.0,109607679.0,112269182.0,114095080.0,116806788.0,117577768.0,131254128.0,120716106.0,127849932.0,129166149.0,128014205.0,128016819.0,136142820.0,133097334.0,141522625.0,135281689.0,137087346.0,140186471.0,140287848.0,142675979.0,144993151.0,148419902.0,147472487.0,149404303.0,155947139.0,152718980.0,156011836.0,162303622.0,163315095.0,220084059.0,184629214.0,174796531.0,186421843.0,188446785.0,176339585.0,171064844.0,172952812.0,186092510.0,194430580.0,214736557.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..89a75c5 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[1674417.1042708335,1726220.1065104168,1864361.4458159723,1916164.4480555556] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..54da69e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":225.0686614468257,"upper_bound":227.24277367713145},"point_estimate":226.0632235067906,"standard_error":0.5554465166915109},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224.01794768201555,"upper_bound":224.96148946469975},"point_estimate":224.44299182816724,"standard_error":0.25606884125945806},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.211226923003238,"upper_bound":2.154550043953596},"point_estimate":1.6268131225360645,"standard_error":0.24072088348347356},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":225.32234702595224,"upper_bound":229.1834547907037},"point_estimate":227.0558781049177,"standard_error":0.9955497413117136},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.279853139565905,"upper_bound":7.528650299315664},"point_estimate":5.561546363111269,"standard_error":1.0854890938764552}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..3d4b702 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4361.0,8722.0,13083.0,17444.0,21805.0,26166.0,30527.0,34888.0,39249.0,43610.0,47971.0,52332.0,56693.0,61054.0,65415.0,69776.0,74137.0,78498.0,82859.0,87220.0,91581.0,95942.0,100303.0,104664.0,109025.0,113386.0,117747.0,122108.0,126469.0,130830.0,135191.0,139552.0,143913.0,148274.0,152635.0,156996.0,161357.0,165718.0,170079.0,174440.0,178801.0,183162.0,187523.0,191884.0,196245.0,200606.0,204967.0,209328.0,213689.0,218050.0,222411.0,226772.0,231133.0,235494.0,239855.0,244216.0,248577.0,252938.0,257299.0,261660.0,266021.0,270382.0,274743.0,279104.0,283465.0,287826.0,292187.0,296548.0,300909.0,305270.0,309631.0,313992.0,318353.0,322714.0,327075.0,331436.0,335797.0,340158.0,344519.0,348880.0,353241.0,357602.0,361963.0,366324.0,370685.0,375046.0,379407.0,383768.0,388129.0,392490.0,396851.0,401212.0,405573.0,409934.0,414295.0,418656.0,423017.0,427378.0,431739.0,436100.0],"times":[997002.0,1974507.0,3004831.0,3868935.0,4921013.0,5772179.0,6897616.0,7691677.0,8825841.0,9732425.0,10619252.0,11719514.0,12734061.0,13646864.0,14695554.0,15641555.0,16783207.0,17480985.0,18447419.0,19453823.0,20478501.0,21929095.0,22706432.0,23428793.0,24309849.0,25538785.0,26465258.0,27405670.0,31604357.0,29477171.0,30282343.0,31198424.0,32094882.0,33433844.0,34191373.0,35674406.0,36000440.0,37004347.0,38219680.0,39381344.0,40594390.0,40973549.0,42227316.0,42856977.0,44440653.0,45630761.0,46197087.0,47029440.0,47655589.0,49406882.0,49645272.0,50898528.0,53665351.0,53074073.0,53740026.0,54479426.0,59566979.0,57496028.0,57318215.0,58568387.0,59686538.0,60387949.0,61547363.0,66647671.0,63370642.0,64717147.0,65493130.0,68343362.0,67404560.0,68768976.0,69910645.0,70325056.0,72056490.0,71821422.0,73269246.0,74199100.0,75083806.0,76086403.0,83672790.0,78458072.0,79538244.0,80054716.0,81851514.0,82367852.0,83836010.0,84068385.0,84839541.0,85796565.0,87094607.0,93606308.0,102113893.0,90571265.0,91338887.0,98527745.0,95678851.0,93833483.0,94874850.0,95314738.0,97165046.0,97388043.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..dceee2c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[216.37034744725824,219.98017649874325,229.60638730270327,233.21621635418828] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..54da69e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":225.0686614468257,"upper_bound":227.24277367713145},"point_estimate":226.0632235067906,"standard_error":0.5554465166915109},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":224.01794768201555,"upper_bound":224.96148946469975},"point_estimate":224.44299182816724,"standard_error":0.25606884125945806},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.211226923003238,"upper_bound":2.154550043953596},"point_estimate":1.6268131225360645,"standard_error":0.24072088348347356},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":225.32234702595224,"upper_bound":229.1834547907037},"point_estimate":227.0558781049177,"standard_error":0.9955497413117136},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3.279853139565905,"upper_bound":7.528650299315664},"point_estimate":5.561546363111269,"standard_error":1.0854890938764552}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..3d4b702 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4361.0,8722.0,13083.0,17444.0,21805.0,26166.0,30527.0,34888.0,39249.0,43610.0,47971.0,52332.0,56693.0,61054.0,65415.0,69776.0,74137.0,78498.0,82859.0,87220.0,91581.0,95942.0,100303.0,104664.0,109025.0,113386.0,117747.0,122108.0,126469.0,130830.0,135191.0,139552.0,143913.0,148274.0,152635.0,156996.0,161357.0,165718.0,170079.0,174440.0,178801.0,183162.0,187523.0,191884.0,196245.0,200606.0,204967.0,209328.0,213689.0,218050.0,222411.0,226772.0,231133.0,235494.0,239855.0,244216.0,248577.0,252938.0,257299.0,261660.0,266021.0,270382.0,274743.0,279104.0,283465.0,287826.0,292187.0,296548.0,300909.0,305270.0,309631.0,313992.0,318353.0,322714.0,327075.0,331436.0,335797.0,340158.0,344519.0,348880.0,353241.0,357602.0,361963.0,366324.0,370685.0,375046.0,379407.0,383768.0,388129.0,392490.0,396851.0,401212.0,405573.0,409934.0,414295.0,418656.0,423017.0,427378.0,431739.0,436100.0],"times":[997002.0,1974507.0,3004831.0,3868935.0,4921013.0,5772179.0,6897616.0,7691677.0,8825841.0,9732425.0,10619252.0,11719514.0,12734061.0,13646864.0,14695554.0,15641555.0,16783207.0,17480985.0,18447419.0,19453823.0,20478501.0,21929095.0,22706432.0,23428793.0,24309849.0,25538785.0,26465258.0,27405670.0,31604357.0,29477171.0,30282343.0,31198424.0,32094882.0,33433844.0,34191373.0,35674406.0,36000440.0,37004347.0,38219680.0,39381344.0,40594390.0,40973549.0,42227316.0,42856977.0,44440653.0,45630761.0,46197087.0,47029440.0,47655589.0,49406882.0,49645272.0,50898528.0,53665351.0,53074073.0,53740026.0,54479426.0,59566979.0,57496028.0,57318215.0,58568387.0,59686538.0,60387949.0,61547363.0,66647671.0,63370642.0,64717147.0,65493130.0,68343362.0,67404560.0,68768976.0,69910645.0,70325056.0,72056490.0,71821422.0,73269246.0,74199100.0,75083806.0,76086403.0,83672790.0,78458072.0,79538244.0,80054716.0,81851514.0,82367852.0,83836010.0,84068385.0,84839541.0,85796565.0,87094607.0,93606308.0,102113893.0,90571265.0,91338887.0,98527745.0,95678851.0,93833483.0,94874850.0,95314738.0,97165046.0,97388043.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..dceee2c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-2/serialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[216.37034744725824,219.98017649874325,229.60638730270327,233.21621635418828] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-build.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-build.txt new file mode 100644 index 0000000..ff874f2 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline-build.txt @@ -0,0 +1,3 @@ +memcap: <=7715 MiB (60% of 12859 MiB available) [systemd MemoryMax, swap off] + Compiling core-regression v0.0.0 (/home/bailey/github/polyxml-combined-read/benchmarks/rust-xml-regression/target/core-baseline) + Finished `bench` profile [optimized] target(s) in 2.59s diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline.lock b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline.lock new file mode 100644 index 0000000..78a11b2 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/baseline.lock @@ -0,0 +1,633 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloca" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7d05ea6aea7e9e64d25b9156ba2fee3fdd659e34e41063cd2fc7cd020d7f4" +dependencies = [ + "cc", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cc" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f74872d07caf508b30a21f6836e7d7016a2eaf7d9ff4f48deaa58cd8a0407630" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "clap" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d" +dependencies = [ + "anstyle", + "clap_lex", +] + +[[package]] +name = "clap_lex" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486" + +[[package]] +name = "core-regression" +version = "0.0.0" +dependencies = [ + "criterion", + "polyxml", +] + +[[package]] +name = "criterion" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950046b2aa2492f9a536f5f4f9a3de7b9e2476e575e05bd6c333371add4d98f3" +dependencies = [ + "alloca", + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "itertools", + "num-traits", + "oorandom", + "page_size", + "regex", + "serde", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8d80a2f4f5b554395e47b5d8305bc3d27813bacb73493eb1001e8f76dae29ea" +dependencies = [ + "cast", + "itertools", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "fastrand" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + +[[package]] +name = "find-msvc-tools" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aedcfb3409746eddb02b9e19ebda1c3394f759a152e48ee875a0844d1b955484" + +[[package]] +name = "half" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" +dependencies = [ + "cfg-if", + "crunchy", + "zerocopy", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "lexical-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8d125a277f807e55a77304455eb7b1cb52f2b18c143b60e766c120bd64a594" +dependencies = [ + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", +] + +[[package]] +name = "lexical-parse-float" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a9f232fbd6f550bc0137dcb5f99ab674071ac2d690ac69704593cb4abbea56" +dependencies = [ + "lexical-parse-integer", + "lexical-util", +] + +[[package]] +name = "lexical-parse-integer" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7a039f8fb9c19c996cd7b2fcce303c1b2874fe1aca544edc85c4a5f8489b34" +dependencies = [ + "lexical-util", +] + +[[package]] +name = "lexical-util" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2604dd126bb14f13fb5d1bd6a66155079cb9fa655b37f875b3a742c705dbed17" + +[[package]] +name = "lexical-write-float" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c438c87c013188d415fbabbb1dceb44249ab81664efbd31b14ae55dabb6361" +dependencies = [ + "lexical-util", + "lexical-write-integer", +] + +[[package]] +name = "lexical-write-integer" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "409851a618475d2d5796377cad353802345cba92c867d9fbcde9cf4eac4e14df" +dependencies = [ + "lexical-util", +] + +[[package]] +name = "libc" +version = "0.2.190" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce5d3ddc6d3fa000eb1536d85e147bfe31aacaba692ed6a876f95cb7c855be78" + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "memo-map" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5449c8c750f1a07ea702bbd212bd999fceece9b3d1508b17023b3e174583124b" + +[[package]] +name = "minijinja" +version = "2.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86886cf6dbf4e614b19c9a1eec9775f021869d7eadde0fc73921a81b90c9b4c9" +dependencies = [ + "memo-map", + "serde", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "oorandom" +version = "11.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" + +[[package]] +name = "page_size" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "phf_codegen" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b585a510fb76fdebead6897982ef2a03a21d8e6cbcca904999742a4afc6ffe" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aeb62e0959d5a1bebc965f4d15d9e2b7cea002b6b0f5ba8cde6cc26738467100" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_shared" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fd9027e2d9319be6349febd1db4e8d02aa544921200c9b777720ac34a3aa89" +dependencies = [ + "siphasher", +] + +[[package]] +name = "polyxml" +version = "0.34.6" +dependencies = [ + "heck", + "lexical-core", + "memchr", + "minijinja", + "phf_codegen", + "quick-xml", + "regex", + "serde", + "serde_json", + "smallvec", + "thiserror", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "siphasher" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33f4fe9184a62d842c9ef383018f3306d8ba224fd9d836f56d7288308847c256" + +[[package]] +name = "smallvec" +version = "1.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9395f0f0eee849a9b707b2f06bb92a6a422090e2123bb2ef8e87a0e61892a8e" + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "2.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "unicode-ident" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "zerocopy" +version = "0.8.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6df92bf3d9227be3d53173901ddbffac2babc27ae50f397776ffd6dc33f800cb" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac4f328cf2f05d084e496c3e9c3f33ed0a183656a16e1fcec4d464d8373aec82" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0.txt new file mode 100644 index 0000000..df2e315 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0.txt @@ -0,0 +1,65 @@ +memcap: <=7722 MiB (60% of 12871 MiB available) [systemd MemoryMax, swap off] +Benchmarking deserialization/sensor_micro +Benchmarking deserialization/sensor_micro: Warming up for 3.0000 s +Benchmarking deserialization/sensor_micro: Collecting 100 samples in estimated 5.0004 s (5.3M iterations) +Benchmarking deserialization/sensor_micro: Analyzing +deserialization/sensor_micro + time: [925.83 ns 932.08 ns 940.15 ns] + thrpt: [95.352 MiB/s 96.177 MiB/s 96.827 MiB/s] +Found 9 outliers among 100 measurements (9.00%) + 4 (4.00%) high mild + 5 (5.00%) high severe +Benchmarking deserialization/catalog_items/1000 +Benchmarking deserialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/1000: Collecting 100 samples in estimated 7.5668 s (10k iterations) +Benchmarking deserialization/catalog_items/1000: Analyzing +deserialization/catalog_items/1000 + time: [761.37 µs 768.03 µs 777.11 µs] + thrpt: [78.432 MiB/s 79.360 MiB/s 80.053 MiB/s] +Found 9 outliers among 100 measurements (9.00%) + 3 (3.00%) high mild + 6 (6.00%) high severe +Benchmarking deserialization/catalog_items/10000 +Benchmarking deserialization/catalog_items/10000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/10000: Collecting 100 samples in estimated 5.3390 s (700 iterations) +Benchmarking deserialization/catalog_items/10000: Analyzing +deserialization/catalog_items/10000 + time: [7.5568 ms 7.5938 ms 7.6362 ms] + thrpt: [83.540 MiB/s 84.006 MiB/s 84.417 MiB/s] +Found 11 outliers among 100 measurements (11.00%) + 6 (6.00%) high mild + 5 (5.00%) high severe + +Benchmarking serialization/sensor_micro +Benchmarking serialization/sensor_micro: Warming up for 3.0000 s +Benchmarking serialization/sensor_micro: Collecting 100 samples in estimated 5.0010 s (21M iterations) +Benchmarking serialization/sensor_micro: Analyzing +serialization/sensor_micro + time: [232.78 ns 234.25 ns 236.66 ns] + thrpt: [378.79 MiB/s 382.69 MiB/s 385.11 MiB/s] +Found 12 outliers among 100 measurements (12.00%) + 5 (5.00%) high mild + 7 (7.00%) high severe +Benchmarking serialization/catalog_items/1000 +Benchmarking serialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking serialization/catalog_items/1000: Collecting 100 samples in estimated 5.3374 s (30k iterations) +Benchmarking serialization/catalog_items/1000: Analyzing +serialization/catalog_items/1000 + time: [174.68 µs 175.13 µs 175.66 µs] + thrpt: [344.26 MiB/s 345.30 MiB/s 346.20 MiB/s] +Found 12 outliers among 100 measurements (12.00%) + 3 (3.00%) high mild + 9 (9.00%) high severe +Benchmarking serialization/catalog_items/10000 +Benchmarking serialization/catalog_items/10000: Warming up for 3.0000 s + +Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 9.0s, enable flat sampling, or reduce sample count to 50. +Benchmarking serialization/catalog_items/10000: Collecting 100 samples in estimated 8.9555 s (5050 iterations) +Benchmarking serialization/catalog_items/10000: Analyzing +serialization/catalog_items/10000 + time: [1.7893 ms 1.8310 ms 1.8910 ms] + thrpt: [334.83 MiB/s 345.79 MiB/s 353.86 MiB/s] +Found 8 outliers among 100 measurements (8.00%) + 4 (4.00%) high mild + 4 (4.00%) high severe + diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..7db679c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":756728.0802774625,"upper_bound":766504.6790133109},"point_estimate":761319.7858169902,"standard_error":2497.2585789894356},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":751265.8523924248,"upper_bound":757727.8703703703},"point_estimate":754677.556372549,"standard_error":1846.5899226867618},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9013.797730593289,"upper_bound":15882.086484880107},"point_estimate":12124.987792692975,"standard_error":1756.6127270371428},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":761374.72135039,"upper_bound":777112.2495242736},"point_estimate":768027.3376488843,"standard_error":4094.2938158488078},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":17083.038229696405,"upper_bound":32247.10498050633},"point_estimate":25058.068844350193,"standard_error":3890.3216799656975}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..6037ea9 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1552934.0,3062350.0,4575057.0,5932419.0,7354882.0,8898357.0,10400264.0,11774264.0,13320781.0,14893713.0,16444574.0,17754847.0,19299483.0,21181409.0,22151324.0,23750037.0,25146107.0,26946615.0,29870265.0,29876650.0,31515974.0,32629323.0,34233003.0,35620687.0,37111024.0,38628545.0,40917305.0,46801144.0,43240870.0,45011050.0,45983639.0,47744020.0,49350617.0,51317681.0,52650353.0,53804074.0,57475747.0,56762291.0,58461541.0,59996389.0,61407982.0,63393400.0,64541225.0,65718381.0,67296090.0,69609487.0,70213602.0,71745805.0,73409473.0,83611341.0,82785088.0,82060836.0,81251486.0,80951109.0,91945966.0,84285049.0,85063506.0,88794692.0,89717773.0,90154198.0,92569404.0,95337176.0,95452825.0,99163758.0,97761480.0,100552171.0,101226177.0,102964870.0,110613846.0,106372083.0,117621767.0,114494347.0,114208961.0,113507149.0,123608547.0,117036797.0,117526050.0,119533501.0,120407801.0,123670624.0,124716607.0,124304154.0,125784525.0,126575710.0,127801008.0,130488342.0,131397255.0,134920003.0,134505274.0,135463217.0,137314942.0,138279491.0,142047375.0,143770691.0,144823242.0,145405678.0,145696470.0,148928513.0,176049112.0,153519938.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..c3366d3 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[692288.1682257279,719742.787791942,792955.1066351796,820409.7262013936] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..7db679c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":756728.0802774625,"upper_bound":766504.6790133109},"point_estimate":761319.7858169902,"standard_error":2497.2585789894356},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":751265.8523924248,"upper_bound":757727.8703703703},"point_estimate":754677.556372549,"standard_error":1846.5899226867618},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9013.797730593289,"upper_bound":15882.086484880107},"point_estimate":12124.987792692975,"standard_error":1756.6127270371428},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":761374.72135039,"upper_bound":777112.2495242736},"point_estimate":768027.3376488843,"standard_error":4094.2938158488078},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":17083.038229696405,"upper_bound":32247.10498050633},"point_estimate":25058.068844350193,"standard_error":3890.3216799656975}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..6037ea9 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1552934.0,3062350.0,4575057.0,5932419.0,7354882.0,8898357.0,10400264.0,11774264.0,13320781.0,14893713.0,16444574.0,17754847.0,19299483.0,21181409.0,22151324.0,23750037.0,25146107.0,26946615.0,29870265.0,29876650.0,31515974.0,32629323.0,34233003.0,35620687.0,37111024.0,38628545.0,40917305.0,46801144.0,43240870.0,45011050.0,45983639.0,47744020.0,49350617.0,51317681.0,52650353.0,53804074.0,57475747.0,56762291.0,58461541.0,59996389.0,61407982.0,63393400.0,64541225.0,65718381.0,67296090.0,69609487.0,70213602.0,71745805.0,73409473.0,83611341.0,82785088.0,82060836.0,81251486.0,80951109.0,91945966.0,84285049.0,85063506.0,88794692.0,89717773.0,90154198.0,92569404.0,95337176.0,95452825.0,99163758.0,97761480.0,100552171.0,101226177.0,102964870.0,110613846.0,106372083.0,117621767.0,114494347.0,114208961.0,113507149.0,123608547.0,117036797.0,117526050.0,119533501.0,120407801.0,123670624.0,124716607.0,124304154.0,125784525.0,126575710.0,127801008.0,130488342.0,131397255.0,134920003.0,134505274.0,135463217.0,137314942.0,138279491.0,142047375.0,143770691.0,144823242.0,145405678.0,145696470.0,148928513.0,176049112.0,153519938.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..c3366d3 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[692288.1682257279,719742.787791942,792955.1066351796,820409.7262013936] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..1fbe509 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7556777.279499999,"upper_bound":7636154.168964284},"point_estimate":7593825.180000002,"standard_error":20268.69762123049},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7509008.857142857,"upper_bound":7549958.714285715},"point_estimate":7535798.071428571,"standard_error":9928.880395607306},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":63172.419978464364,"upper_bound":116992.91702296033},"point_estimate":86677.9835611575,"standard_error":13795.16702968617},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":133765.4182065312,"upper_bound":261827.82103151173},"point_estimate":203144.08770854893,"standard_error":32689.443882429856}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..cc9ee42 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0],"times":[52955370.0,52805753.0,52760310.0,52339727.0,53537949.0,57497258.0,52254831.0,52273536.0,52509320.0,52761242.0,52931560.0,52990603.0,52267300.0,52821689.0,53129688.0,52444974.0,52584624.0,54972035.0,52633359.0,53877227.0,52960013.0,54032800.0,52718607.0,52575648.0,52806609.0,52933544.0,52376198.0,52266198.0,53099649.0,52563062.0,51980160.0,53026956.0,52319288.0,52706211.0,59393533.0,52342957.0,55551377.0,53251475.0,52752663.0,52701709.0,53796902.0,52493697.0,52849711.0,52254538.0,52508998.0,56041517.0,56165718.0,55323688.0,53534084.0,52454312.0,52392847.0,53383336.0,54748975.0,53632611.0,53076424.0,55225642.0,53290200.0,52818747.0,52379146.0,52736116.0,52255389.0,52306239.0,57914402.0,51967649.0,52412741.0,52827521.0,53934883.0,53471045.0,52459627.0,51997665.0,52097723.0,52529672.0,52394089.0,52159663.0,53402653.0,52913917.0,52850846.0,52396216.0,53065624.0,52216696.0,52748510.0,52242146.0,52060363.0,52208944.0,52808465.0,52065365.0,52249582.0,52180770.0,52144248.0,53505509.0,52735803.0,52352225.0,52850882.0,59664840.0,54097572.0,53727776.0,52552364.0,53520819.0,52175525.0,52397437.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..1950fa7 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[7077195.285714284,7279326.553571427,7818343.267857144,8020474.535714287] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..1fbe509 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7556777.279499999,"upper_bound":7636154.168964284},"point_estimate":7593825.180000002,"standard_error":20268.69762123049},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7509008.857142857,"upper_bound":7549958.714285715},"point_estimate":7535798.071428571,"standard_error":9928.880395607306},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":63172.419978464364,"upper_bound":116992.91702296033},"point_estimate":86677.9835611575,"standard_error":13795.16702968617},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":133765.4182065312,"upper_bound":261827.82103151173},"point_estimate":203144.08770854893,"standard_error":32689.443882429856}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..cc9ee42 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0],"times":[52955370.0,52805753.0,52760310.0,52339727.0,53537949.0,57497258.0,52254831.0,52273536.0,52509320.0,52761242.0,52931560.0,52990603.0,52267300.0,52821689.0,53129688.0,52444974.0,52584624.0,54972035.0,52633359.0,53877227.0,52960013.0,54032800.0,52718607.0,52575648.0,52806609.0,52933544.0,52376198.0,52266198.0,53099649.0,52563062.0,51980160.0,53026956.0,52319288.0,52706211.0,59393533.0,52342957.0,55551377.0,53251475.0,52752663.0,52701709.0,53796902.0,52493697.0,52849711.0,52254538.0,52508998.0,56041517.0,56165718.0,55323688.0,53534084.0,52454312.0,52392847.0,53383336.0,54748975.0,53632611.0,53076424.0,55225642.0,53290200.0,52818747.0,52379146.0,52736116.0,52255389.0,52306239.0,57914402.0,51967649.0,52412741.0,52827521.0,53934883.0,53471045.0,52459627.0,51997665.0,52097723.0,52529672.0,52394089.0,52159663.0,53402653.0,52913917.0,52850846.0,52396216.0,53065624.0,52216696.0,52748510.0,52242146.0,52060363.0,52208944.0,52808465.0,52065365.0,52249582.0,52180770.0,52144248.0,53505509.0,52735803.0,52352225.0,52850882.0,59664840.0,54097572.0,53727776.0,52552364.0,53520819.0,52175525.0,52397437.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..1950fa7 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[7077195.285714284,7279326.553571427,7818343.267857144,8020474.535714287] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..59d6d47 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":926.0840733100691,"upper_bound":936.0275796270612},"point_estimate":930.6837853940627,"standard_error":2.5428616470966214},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":920.9667107750472,"upper_bound":924.8443406044901},"point_estimate":922.7786709910604,"standard_error":1.072101023246029},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7.2572738438118884,"upper_bound":12.941303686171592},"point_estimate":9.54897968287129,"standard_error":1.4153574068620203},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":925.8333605013077,"upper_bound":940.1541446783413},"point_estimate":932.0849040838965,"standard_error":3.7084263135471636},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":15.85181657763021,"upper_bound":34.06035578523175},"point_estimate":25.577987634942932,"standard_error":4.658444422683846}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..924978b --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1058.0,2116.0,3174.0,4232.0,5290.0,6348.0,7406.0,8464.0,9522.0,10580.0,11638.0,12696.0,13754.0,14812.0,15870.0,16928.0,17986.0,19044.0,20102.0,21160.0,22218.0,23276.0,24334.0,25392.0,26450.0,27508.0,28566.0,29624.0,30682.0,31740.0,32798.0,33856.0,34914.0,35972.0,37030.0,38088.0,39146.0,40204.0,41262.0,42320.0,43378.0,44436.0,45494.0,46552.0,47610.0,48668.0,49726.0,50784.0,51842.0,52900.0,53958.0,55016.0,56074.0,57132.0,58190.0,59248.0,60306.0,61364.0,62422.0,63480.0,64538.0,65596.0,66654.0,67712.0,68770.0,69828.0,70886.0,71944.0,73002.0,74060.0,75118.0,76176.0,77234.0,78292.0,79350.0,80408.0,81466.0,82524.0,83582.0,84640.0,85698.0,86756.0,87814.0,88872.0,89930.0,90988.0,92046.0,93104.0,94162.0,95220.0,96278.0,97336.0,98394.0,99452.0,100510.0,101568.0,102626.0,103684.0,104742.0,105800.0],"times":[1007607.0,1966395.0,3021200.0,3831103.0,4879581.0,5817229.0,6741319.0,7638926.0,8782300.0,9729667.0,10554478.0,11786867.0,12848718.0,13876860.0,14674701.0,15603994.0,17018818.0,18922704.0,18893090.0,19787792.0,20618431.0,24376653.0,24277906.0,24863429.0,24461004.0,25733755.0,26465907.0,27069404.0,28089278.0,28971337.0,30321723.0,31102733.0,31975702.0,34085586.0,33782562.0,34802639.0,36357332.0,36859692.0,37774480.0,39412761.0,40140442.0,40688097.0,41719232.0,42785800.0,43721035.0,44397014.0,46845782.0,46570749.0,47748708.0,48719139.0,49461800.0,50749208.0,54637111.0,52746122.0,53544954.0,54082856.0,55599225.0,56227113.0,58387956.0,58344852.0,59536487.0,60027329.0,60992459.0,61995470.0,65184845.0,64718391.0,65824275.0,65973142.0,66843649.0,70950289.0,68972190.0,69822779.0,70917392.0,72314097.0,73840332.0,74220968.0,75368629.0,75666698.0,77253324.0,77752883.0,78951025.0,82807958.0,87213907.0,82155116.0,83744472.0,84010996.0,98187740.0,85711492.0,87100493.0,87552353.0,89738592.0,90265925.0,90750164.0,94275863.0,92933566.0,93511451.0,93999338.0,99934999.0,98733547.0,99092470.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..21df989 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[870.1154375666217,893.5484638107823,956.0365337952107,979.4695600393715] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..59d6d47 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":926.0840733100691,"upper_bound":936.0275796270612},"point_estimate":930.6837853940627,"standard_error":2.5428616470966214},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":920.9667107750472,"upper_bound":924.8443406044901},"point_estimate":922.7786709910604,"standard_error":1.072101023246029},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7.2572738438118884,"upper_bound":12.941303686171592},"point_estimate":9.54897968287129,"standard_error":1.4153574068620203},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":925.8333605013077,"upper_bound":940.1541446783413},"point_estimate":932.0849040838965,"standard_error":3.7084263135471636},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":15.85181657763021,"upper_bound":34.06035578523175},"point_estimate":25.577987634942932,"standard_error":4.658444422683846}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..924978b --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1058.0,2116.0,3174.0,4232.0,5290.0,6348.0,7406.0,8464.0,9522.0,10580.0,11638.0,12696.0,13754.0,14812.0,15870.0,16928.0,17986.0,19044.0,20102.0,21160.0,22218.0,23276.0,24334.0,25392.0,26450.0,27508.0,28566.0,29624.0,30682.0,31740.0,32798.0,33856.0,34914.0,35972.0,37030.0,38088.0,39146.0,40204.0,41262.0,42320.0,43378.0,44436.0,45494.0,46552.0,47610.0,48668.0,49726.0,50784.0,51842.0,52900.0,53958.0,55016.0,56074.0,57132.0,58190.0,59248.0,60306.0,61364.0,62422.0,63480.0,64538.0,65596.0,66654.0,67712.0,68770.0,69828.0,70886.0,71944.0,73002.0,74060.0,75118.0,76176.0,77234.0,78292.0,79350.0,80408.0,81466.0,82524.0,83582.0,84640.0,85698.0,86756.0,87814.0,88872.0,89930.0,90988.0,92046.0,93104.0,94162.0,95220.0,96278.0,97336.0,98394.0,99452.0,100510.0,101568.0,102626.0,103684.0,104742.0,105800.0],"times":[1007607.0,1966395.0,3021200.0,3831103.0,4879581.0,5817229.0,6741319.0,7638926.0,8782300.0,9729667.0,10554478.0,11786867.0,12848718.0,13876860.0,14674701.0,15603994.0,17018818.0,18922704.0,18893090.0,19787792.0,20618431.0,24376653.0,24277906.0,24863429.0,24461004.0,25733755.0,26465907.0,27069404.0,28089278.0,28971337.0,30321723.0,31102733.0,31975702.0,34085586.0,33782562.0,34802639.0,36357332.0,36859692.0,37774480.0,39412761.0,40140442.0,40688097.0,41719232.0,42785800.0,43721035.0,44397014.0,46845782.0,46570749.0,47748708.0,48719139.0,49461800.0,50749208.0,54637111.0,52746122.0,53544954.0,54082856.0,55599225.0,56227113.0,58387956.0,58344852.0,59536487.0,60027329.0,60992459.0,61995470.0,65184845.0,64718391.0,65824275.0,65973142.0,66843649.0,70950289.0,68972190.0,69822779.0,70917392.0,72314097.0,73840332.0,74220968.0,75368629.0,75666698.0,77253324.0,77752883.0,78951025.0,82807958.0,87213907.0,82155116.0,83744472.0,84010996.0,98187740.0,85711492.0,87100493.0,87552353.0,89738592.0,90265925.0,90750164.0,94275863.0,92933566.0,93511451.0,93999338.0,99934999.0,98733547.0,99092470.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..21df989 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/deserialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[870.1154375666217,893.5484638107823,956.0365337952107,979.4695600393715] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..0828e0e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":175182.82977197025,"upper_bound":177062.97592994536},"point_estimate":176060.5997688246,"standard_error":480.12887266199334},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":174078.76096491228,"upper_bound":174715.5575757576},"point_estimate":174371.80893162393,"standard_error":175.79774855253152},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":868.641748661641,"upper_bound":1732.082048675928},"point_estimate":1184.9812923142551,"standard_error":225.59254721887564},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":174678.81830675923,"upper_bound":175662.2596469533},"point_estimate":175134.57185360327,"standard_error":252.06818447559803},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3247.357897945324,"upper_bound":6047.074547104248},"point_estimate":4809.007490763179,"standard_error":713.5529468194494}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..58e7db1 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1067834.0,2096878.0,3107043.0,4147623.0,5182590.0,6998997.0,8041674.0,9295431.0,10298433.0,11089598.0,12306246.0,12915450.0,13530293.0,16391767.0,16007523.0,16593950.0,17729167.0,18685136.0,19852238.0,20820854.0,21824586.0,23116475.0,24171620.0,25152106.0,26157518.0,27274956.0,28812527.0,29734906.0,30238710.0,31248709.0,32241980.0,33291219.0,34328687.0,35266611.0,37140274.0,37381896.0,38626498.0,39799041.0,40745790.0,42421981.0,45918958.0,43827205.0,44910126.0,45825079.0,47118308.0,48085440.0,49261588.0,49911708.0,51125427.0,52064410.0,53153279.0,54162250.0,55186955.0,56340750.0,57656134.0,59224268.0,59265065.0,60843914.0,61589237.0,67483478.0,63338959.0,64727065.0,65657683.0,68922823.0,67916521.0,68622345.0,70591944.0,71551864.0,72268097.0,73229324.0,74904813.0,75298293.0,76615711.0,78516888.0,78140363.0,79379915.0,81405327.0,81600557.0,82269931.0,84051693.0,84822910.0,85615814.0,87354492.0,88118556.0,89505339.0,93334024.0,90883037.0,91659690.0,93223470.0,93798673.0,95459275.0,96449581.0,97126525.0,99292484.0,100325939.0,100227638.0,102887321.0,102665629.0,105637413.0,104587888.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..ed4e488 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[167106.14653570557,170395.31993451947,179166.44899802317,182455.62239683705] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..0828e0e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":175182.82977197025,"upper_bound":177062.97592994536},"point_estimate":176060.5997688246,"standard_error":480.12887266199334},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":174078.76096491228,"upper_bound":174715.5575757576},"point_estimate":174371.80893162393,"standard_error":175.79774855253152},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":868.641748661641,"upper_bound":1732.082048675928},"point_estimate":1184.9812923142551,"standard_error":225.59254721887564},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":174678.81830675923,"upper_bound":175662.2596469533},"point_estimate":175134.57185360327,"standard_error":252.06818447559803},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3247.357897945324,"upper_bound":6047.074547104248},"point_estimate":4809.007490763179,"standard_error":713.5529468194494}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..58e7db1 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1067834.0,2096878.0,3107043.0,4147623.0,5182590.0,6998997.0,8041674.0,9295431.0,10298433.0,11089598.0,12306246.0,12915450.0,13530293.0,16391767.0,16007523.0,16593950.0,17729167.0,18685136.0,19852238.0,20820854.0,21824586.0,23116475.0,24171620.0,25152106.0,26157518.0,27274956.0,28812527.0,29734906.0,30238710.0,31248709.0,32241980.0,33291219.0,34328687.0,35266611.0,37140274.0,37381896.0,38626498.0,39799041.0,40745790.0,42421981.0,45918958.0,43827205.0,44910126.0,45825079.0,47118308.0,48085440.0,49261588.0,49911708.0,51125427.0,52064410.0,53153279.0,54162250.0,55186955.0,56340750.0,57656134.0,59224268.0,59265065.0,60843914.0,61589237.0,67483478.0,63338959.0,64727065.0,65657683.0,68922823.0,67916521.0,68622345.0,70591944.0,71551864.0,72268097.0,73229324.0,74904813.0,75298293.0,76615711.0,78516888.0,78140363.0,79379915.0,81405327.0,81600557.0,82269931.0,84051693.0,84822910.0,85615814.0,87354492.0,88118556.0,89505339.0,93334024.0,90883037.0,91659690.0,93223470.0,93798673.0,95459275.0,96449581.0,97126525.0,99292484.0,100325939.0,100227638.0,102887321.0,102665629.0,105637413.0,104587888.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..ed4e488 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[167106.14653570557,170395.31993451947,179166.44899802317,182455.62239683705] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..7f4153e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1789031.8361522884,"upper_bound":1848329.140955493},"point_estimate":1813755.0761269673,"standard_error":15381.489562733253},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1772107.6222222222,"upper_bound":1781881.8351648352},"point_estimate":1775519.302949774,"standard_error":2487.605743019327},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14239.151919030335,"upper_bound":28889.330572642568},"point_estimate":21759.77520265939,"standard_error":3653.8870779817044},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1789256.4125350802,"upper_bound":1890954.2918520384},"point_estimate":1831038.7565183982,"standard_error":26613.765655461833},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49174.61220115118,"upper_bound":242876.2489232983},"point_estimate":153873.8001181501,"standard_error":54261.68850448364}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..3f998cd --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[1804428.0,3516880.0,5258089.0,7601787.0,8981232.0,10840743.0,12927561.0,14790117.0,16695340.0,18371976.0,19431496.0,21092799.0,22781492.0,24833240.0,26496953.0,28913349.0,31176549.0,33460473.0,33372833.0,35147489.0,36770171.0,38843479.0,40795288.0,42977864.0,45835881.0,45744028.0,47751603.0,49640050.0,54249357.0,53722947.0,54667969.0,59018242.0,60726565.0,59905841.0,63235000.0,63329428.0,66152299.0,67354194.0,68604939.0,70527833.0,73021229.0,74166238.0,76026834.0,80907640.0,79744843.0,81235986.0,83856042.0,84700680.0,86251198.0,87642433.0,89701065.0,91357398.0,94137649.0,95558339.0,96805481.0,101527870.0,101588814.0,102908084.0,104531169.0,106732321.0,107821847.0,110201060.0,111511996.0,146927065.0,115559955.0,125982258.0,117915738.0,121570976.0,121353987.0,123618290.0,126014815.0,127204815.0,128268636.0,131485520.0,132125213.0,134337366.0,176944835.0,139592529.0,242754570.0,171426048.0,144445002.0,144842261.0,147153108.0,150048548.0,151095922.0,152422899.0,166143403.0,158436336.0,158631660.0,159548069.0,162151247.0,166117134.0,165340968.0,166577566.0,168121896.0,175546670.0,172333183.0,176730305.0,177788838.0,179367855.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..b0ae8c8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[1652884.9906462582,1709416.1857993195,1860166.0395408163,1916697.2346938776] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..7f4153e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1789031.8361522884,"upper_bound":1848329.140955493},"point_estimate":1813755.0761269673,"standard_error":15381.489562733253},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1772107.6222222222,"upper_bound":1781881.8351648352},"point_estimate":1775519.302949774,"standard_error":2487.605743019327},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":14239.151919030335,"upper_bound":28889.330572642568},"point_estimate":21759.77520265939,"standard_error":3653.8870779817044},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1789256.4125350802,"upper_bound":1890954.2918520384},"point_estimate":1831038.7565183982,"standard_error":26613.765655461833},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49174.61220115118,"upper_bound":242876.2489232983},"point_estimate":153873.8001181501,"standard_error":54261.68850448364}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..3f998cd --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[1804428.0,3516880.0,5258089.0,7601787.0,8981232.0,10840743.0,12927561.0,14790117.0,16695340.0,18371976.0,19431496.0,21092799.0,22781492.0,24833240.0,26496953.0,28913349.0,31176549.0,33460473.0,33372833.0,35147489.0,36770171.0,38843479.0,40795288.0,42977864.0,45835881.0,45744028.0,47751603.0,49640050.0,54249357.0,53722947.0,54667969.0,59018242.0,60726565.0,59905841.0,63235000.0,63329428.0,66152299.0,67354194.0,68604939.0,70527833.0,73021229.0,74166238.0,76026834.0,80907640.0,79744843.0,81235986.0,83856042.0,84700680.0,86251198.0,87642433.0,89701065.0,91357398.0,94137649.0,95558339.0,96805481.0,101527870.0,101588814.0,102908084.0,104531169.0,106732321.0,107821847.0,110201060.0,111511996.0,146927065.0,115559955.0,125982258.0,117915738.0,121570976.0,121353987.0,123618290.0,126014815.0,127204815.0,128268636.0,131485520.0,132125213.0,134337366.0,176944835.0,139592529.0,242754570.0,171426048.0,144445002.0,144842261.0,147153108.0,150048548.0,151095922.0,152422899.0,166143403.0,158436336.0,158631660.0,159548069.0,162151247.0,166117134.0,165340968.0,166577566.0,168121896.0,175546670.0,172333183.0,176730305.0,177788838.0,179367855.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..b0ae8c8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[1652884.9906462582,1709416.1857993195,1860166.0395408163,1916697.2346938776] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..a0d58bc --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":232.8141189762846,"upper_bound":235.2661979103697},"point_estimate":233.87284823826917,"standard_error":0.6308312312547608},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":232.10726666804234,"upper_bound":232.9022530468967},"point_estimate":232.4687775442403,"standard_error":0.21488777794406613},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.306313714982725,"upper_bound":2.2235170031368154},"point_estimate":1.7310737708809696,"standard_error":0.23415196012664166},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":232.7805301614283,"upper_bound":236.6594858209817},"point_estimate":234.25220117114034,"standard_error":1.0343926197261868},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.953071274751933,"upper_bound":9.649751397456047},"point_estimate":6.329679568803697,"standard_error":1.9670109766440766}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..c4ce342 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4214.0,8428.0,12642.0,16856.0,21070.0,25284.0,29498.0,33712.0,37926.0,42140.0,46354.0,50568.0,54782.0,58996.0,63210.0,67424.0,71638.0,75852.0,80066.0,84280.0,88494.0,92708.0,96922.0,101136.0,105350.0,109564.0,113778.0,117992.0,122206.0,126420.0,130634.0,134848.0,139062.0,143276.0,147490.0,151704.0,155918.0,160132.0,164346.0,168560.0,172774.0,176988.0,181202.0,185416.0,189630.0,193844.0,198058.0,202272.0,206486.0,210700.0,214914.0,219128.0,223342.0,227556.0,231770.0,235984.0,240198.0,244412.0,248626.0,252840.0,257054.0,261268.0,265482.0,269696.0,273910.0,278124.0,282338.0,286552.0,290766.0,294980.0,299194.0,303408.0,307622.0,311836.0,316050.0,320264.0,324478.0,328692.0,332906.0,337120.0,341334.0,345548.0,349762.0,353976.0,358190.0,362404.0,366618.0,370832.0,375046.0,379260.0,383474.0,387688.0,391902.0,396116.0,400330.0,404544.0,408758.0,412972.0,417186.0,421400.0],"times":[1011198.0,1972340.0,2899703.0,3910234.0,4997795.0,5873522.0,6890717.0,7723415.0,8817830.0,9603213.0,10633310.0,11694572.0,13042587.0,13714295.0,14660264.0,15695536.0,16447413.0,17437838.0,18542948.0,19385942.0,20445387.0,21424450.0,22490306.0,23445464.0,24534627.0,25572758.0,26409648.0,27388093.0,28209104.0,29944435.0,30397883.0,30825983.0,32064210.0,32904913.0,34619161.0,37663029.0,36508141.0,37190154.0,38262494.0,39342983.0,40676949.0,40910801.0,42952052.0,46222173.0,44030574.0,44860676.0,46230636.0,47003208.0,48116380.0,52504124.0,51788995.0,51688006.0,52023962.0,52657502.0,53726272.0,54445947.0,57178936.0,58564304.0,58073336.0,58664112.0,60006776.0,63697787.0,61710297.0,62302402.0,63771043.0,64599191.0,65141229.0,66662541.0,67506885.0,68261185.0,69815319.0,70654752.0,72256091.0,72683228.0,73498489.0,74272439.0,75024682.0,75995540.0,76870687.0,81749673.0,96785824.0,80554032.0,80863398.0,82290966.0,83769277.0,85206570.0,84870504.0,86051863.0,86965977.0,88344341.0,89652091.0,89655832.0,91698913.0,92270464.0,91921431.0,93444521.0,95387286.0,96689876.0,97269361.0,97495833.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..47ffdfe --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[224.40875067583892,227.87305879385997,237.11121377524944,240.5755218932705] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..a0d58bc --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":232.8141189762846,"upper_bound":235.2661979103697},"point_estimate":233.87284823826917,"standard_error":0.6308312312547608},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":232.10726666804234,"upper_bound":232.9022530468967},"point_estimate":232.4687775442403,"standard_error":0.21488777794406613},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.306313714982725,"upper_bound":2.2235170031368154},"point_estimate":1.7310737708809696,"standard_error":0.23415196012664166},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":232.7805301614283,"upper_bound":236.6594858209817},"point_estimate":234.25220117114034,"standard_error":1.0343926197261868},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.953071274751933,"upper_bound":9.649751397456047},"point_estimate":6.329679568803697,"standard_error":1.9670109766440766}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..c4ce342 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4214.0,8428.0,12642.0,16856.0,21070.0,25284.0,29498.0,33712.0,37926.0,42140.0,46354.0,50568.0,54782.0,58996.0,63210.0,67424.0,71638.0,75852.0,80066.0,84280.0,88494.0,92708.0,96922.0,101136.0,105350.0,109564.0,113778.0,117992.0,122206.0,126420.0,130634.0,134848.0,139062.0,143276.0,147490.0,151704.0,155918.0,160132.0,164346.0,168560.0,172774.0,176988.0,181202.0,185416.0,189630.0,193844.0,198058.0,202272.0,206486.0,210700.0,214914.0,219128.0,223342.0,227556.0,231770.0,235984.0,240198.0,244412.0,248626.0,252840.0,257054.0,261268.0,265482.0,269696.0,273910.0,278124.0,282338.0,286552.0,290766.0,294980.0,299194.0,303408.0,307622.0,311836.0,316050.0,320264.0,324478.0,328692.0,332906.0,337120.0,341334.0,345548.0,349762.0,353976.0,358190.0,362404.0,366618.0,370832.0,375046.0,379260.0,383474.0,387688.0,391902.0,396116.0,400330.0,404544.0,408758.0,412972.0,417186.0,421400.0],"times":[1011198.0,1972340.0,2899703.0,3910234.0,4997795.0,5873522.0,6890717.0,7723415.0,8817830.0,9603213.0,10633310.0,11694572.0,13042587.0,13714295.0,14660264.0,15695536.0,16447413.0,17437838.0,18542948.0,19385942.0,20445387.0,21424450.0,22490306.0,23445464.0,24534627.0,25572758.0,26409648.0,27388093.0,28209104.0,29944435.0,30397883.0,30825983.0,32064210.0,32904913.0,34619161.0,37663029.0,36508141.0,37190154.0,38262494.0,39342983.0,40676949.0,40910801.0,42952052.0,46222173.0,44030574.0,44860676.0,46230636.0,47003208.0,48116380.0,52504124.0,51788995.0,51688006.0,52023962.0,52657502.0,53726272.0,54445947.0,57178936.0,58564304.0,58073336.0,58664112.0,60006776.0,63697787.0,61710297.0,62302402.0,63771043.0,64599191.0,65141229.0,66662541.0,67506885.0,68261185.0,69815319.0,70654752.0,72256091.0,72683228.0,73498489.0,74272439.0,75024682.0,75995540.0,76870687.0,81749673.0,96785824.0,80554032.0,80863398.0,82290966.0,83769277.0,85206570.0,84870504.0,86051863.0,86965977.0,88344341.0,89652091.0,89655832.0,91698913.0,92270464.0,91921431.0,93444521.0,95387286.0,96689876.0,97269361.0,97495833.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..47ffdfe --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-0/serialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[224.40875067583892,227.87305879385997,237.11121377524944,240.5755218932705] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1.txt new file mode 100644 index 0000000..19c69ab --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1.txt @@ -0,0 +1,65 @@ +memcap: <=7719 MiB (60% of 12866 MiB available) [systemd MemoryMax, swap off] +Benchmarking deserialization/sensor_micro +Benchmarking deserialization/sensor_micro: Warming up for 3.0000 s +Benchmarking deserialization/sensor_micro: Collecting 100 samples in estimated 5.0008 s (5.3M iterations) +Benchmarking deserialization/sensor_micro: Analyzing +deserialization/sensor_micro + time: [924.28 ns 929.08 ns 935.37 ns] + thrpt: [95.839 MiB/s 96.489 MiB/s 96.989 MiB/s] +Found 12 outliers among 100 measurements (12.00%) + 6 (6.00%) high mild + 6 (6.00%) high severe +Benchmarking deserialization/catalog_items/1000 +Benchmarking deserialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/1000: Collecting 100 samples in estimated 7.5951 s (10k iterations) +Benchmarking deserialization/catalog_items/1000: Analyzing +deserialization/catalog_items/1000 + time: [753.62 µs 756.18 µs 759.17 µs] + thrpt: [80.285 MiB/s 80.603 MiB/s 80.876 MiB/s] +Found 8 outliers among 100 measurements (8.00%) + 4 (4.00%) high mild + 4 (4.00%) high severe +Benchmarking deserialization/catalog_items/10000 +Benchmarking deserialization/catalog_items/10000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/10000: Collecting 100 samples in estimated 5.3954 s (700 iterations) +Benchmarking deserialization/catalog_items/10000: Analyzing +deserialization/catalog_items/10000 + time: [7.5912 ms 7.6398 ms 7.6986 ms] + thrpt: [82.862 MiB/s 83.500 MiB/s 84.034 MiB/s] +Found 12 outliers among 100 measurements (12.00%) + 6 (6.00%) high mild + 6 (6.00%) high severe + +Benchmarking serialization/sensor_micro +Benchmarking serialization/sensor_micro: Warming up for 3.0000 s +Benchmarking serialization/sensor_micro: Collecting 100 samples in estimated 5.0002 s (23M iterations) +Benchmarking serialization/sensor_micro: Analyzing +serialization/sensor_micro + time: [218.86 ns 220.50 ns 222.67 ns] + thrpt: [402.59 MiB/s 406.55 MiB/s 409.60 MiB/s] +Found 8 outliers among 100 measurements (8.00%) + 3 (3.00%) high mild + 5 (5.00%) high severe +Benchmarking serialization/catalog_items/1000 +Benchmarking serialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking serialization/catalog_items/1000: Collecting 100 samples in estimated 5.3466 s (30k iterations) +Benchmarking serialization/catalog_items/1000: Analyzing +serialization/catalog_items/1000 + time: [175.61 µs 177.36 µs 179.51 µs] + thrpt: [336.89 MiB/s 340.96 MiB/s 344.36 MiB/s] +Found 14 outliers among 100 measurements (14.00%) + 5 (5.00%) high mild + 9 (9.00%) high severe +Benchmarking serialization/catalog_items/10000 +Benchmarking serialization/catalog_items/10000: Warming up for 3.0000 s + +Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 9.1s, enable flat sampling, or reduce sample count to 50. +Benchmarking serialization/catalog_items/10000: Collecting 100 samples in estimated 9.1029 s (5050 iterations) +Benchmarking serialization/catalog_items/10000: Analyzing +serialization/catalog_items/10000 + time: [1.7775 ms 1.7862 ms 1.7959 ms] + thrpt: [352.56 MiB/s 354.46 MiB/s 356.20 MiB/s] +Found 10 outliers among 100 measurements (10.00%) + 5 (5.00%) high mild + 5 (5.00%) high severe + diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..5a55673 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":755267.9122115697,"upper_bound":761244.8979476038},"point_estimate":757935.6770922673,"standard_error":1534.3877125481924},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":752149.3714285714,"upper_bound":756153.64375},"point_estimate":753687.9712732919,"standard_error":1086.462287166352},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5120.275870036793,"upper_bound":8962.901521107728},"point_estimate":6828.362854348291,"standard_error":930.6096688395135},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":753624.375595191,"upper_bound":759173.6798929155},"point_estimate":756182.9385946505,"standard_error":1417.2181586070376},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8422.721424521107,"upper_bound":22523.88667339167},"point_estimate":15406.745807326057,"standard_error":4010.2113060147735}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..91e77ea --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1508854.0,3013084.0,4594941.0,6085169.0,7583565.0,9043071.0,10669575.0,12249793.0,13418490.0,15145852.0,16479671.0,18187828.0,19729082.0,21065607.0,22464104.0,24052454.0,25572116.0,27016684.0,28491619.0,29860552.0,31653120.0,33384893.0,34613409.0,36589404.0,37490974.0,45181886.0,41133761.0,41699945.0,43593301.0,46724472.0,49718720.0,49219517.0,50690573.0,53624207.0,53053058.0,55077532.0,55683072.0,59016788.0,58403457.0,59779457.0,61540702.0,63486948.0,64574824.0,66218820.0,68379676.0,69343181.0,71436708.0,72104044.0,74418463.0,76004490.0,76890404.0,78822363.0,82610666.0,80948007.0,82611534.0,84219911.0,85534291.0,87833516.0,88392461.0,89962604.0,92147855.0,94653247.0,95519854.0,95979025.0,97366665.0,99460019.0,100569548.0,107606501.0,104773835.0,105300912.0,107389007.0,109155307.0,109775171.0,114055727.0,112007937.0,114658800.0,115470197.0,117921819.0,118713999.0,120984583.0,121990831.0,125325820.0,123572700.0,125856939.0,126418887.0,136403517.0,132740615.0,131705179.0,133183542.0,134475966.0,135620139.0,139082201.0,144031750.0,140771160.0,143398193.0,143611565.0,147748214.0,146653222.0,148850893.0,152473771.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..633eace --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[719373.0013098404,734602.4854596077,775214.4431923205,790443.9273420878] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..5a55673 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":755267.9122115697,"upper_bound":761244.8979476038},"point_estimate":757935.6770922673,"standard_error":1534.3877125481924},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":752149.3714285714,"upper_bound":756153.64375},"point_estimate":753687.9712732919,"standard_error":1086.462287166352},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5120.275870036793,"upper_bound":8962.901521107728},"point_estimate":6828.362854348291,"standard_error":930.6096688395135},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":753624.375595191,"upper_bound":759173.6798929155},"point_estimate":756182.9385946505,"standard_error":1417.2181586070376},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8422.721424521107,"upper_bound":22523.88667339167},"point_estimate":15406.745807326057,"standard_error":4010.2113060147735}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..91e77ea --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1508854.0,3013084.0,4594941.0,6085169.0,7583565.0,9043071.0,10669575.0,12249793.0,13418490.0,15145852.0,16479671.0,18187828.0,19729082.0,21065607.0,22464104.0,24052454.0,25572116.0,27016684.0,28491619.0,29860552.0,31653120.0,33384893.0,34613409.0,36589404.0,37490974.0,45181886.0,41133761.0,41699945.0,43593301.0,46724472.0,49718720.0,49219517.0,50690573.0,53624207.0,53053058.0,55077532.0,55683072.0,59016788.0,58403457.0,59779457.0,61540702.0,63486948.0,64574824.0,66218820.0,68379676.0,69343181.0,71436708.0,72104044.0,74418463.0,76004490.0,76890404.0,78822363.0,82610666.0,80948007.0,82611534.0,84219911.0,85534291.0,87833516.0,88392461.0,89962604.0,92147855.0,94653247.0,95519854.0,95979025.0,97366665.0,99460019.0,100569548.0,107606501.0,104773835.0,105300912.0,107389007.0,109155307.0,109775171.0,114055727.0,112007937.0,114658800.0,115470197.0,117921819.0,118713999.0,120984583.0,121990831.0,125325820.0,123572700.0,125856939.0,126418887.0,136403517.0,132740615.0,131705179.0,133183542.0,134475966.0,135620139.0,139082201.0,144031750.0,140771160.0,143398193.0,143611565.0,147748214.0,146653222.0,148850893.0,152473771.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..633eace --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[719373.0013098404,734602.4854596077,775214.4431923205,790443.9273420878] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..a58ce69 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7591228.896964289,"upper_bound":7698633.972214286},"point_estimate":7639783.394285714,"standard_error":27456.313528432333},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7542280.857142857,"upper_bound":7566586.285714285},"point_estimate":7553688.928571429,"standard_error":6680.298105071135},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":45525.972354253274,"upper_bound":96835.9113808197},"point_estimate":65940.22232932832,"standard_error":13307.704988613075},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":149466.7523261714,"upper_bound":385622.4330787674},"point_estimate":277686.74718715344,"standard_error":60473.82590894469}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..8cc6811 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0],"times":[53467815.0,54231329.0,52728162.0,52948871.0,52854719.0,52710211.0,52756692.0,52603205.0,52700921.0,52694146.0,56198861.0,52609274.0,52863892.0,52569120.0,52356914.0,52991199.0,52766135.0,52595209.0,52415604.0,55017446.0,52994855.0,54028749.0,52874346.0,52667471.0,62746776.0,59085821.0,52969229.0,52758422.0,52923346.0,53111031.0,52427945.0,52881977.0,52962979.0,52365337.0,53725538.0,55515598.0,52474963.0,52519449.0,55319874.0,52953566.0,53508405.0,52924363.0,52538080.0,53000940.0,52963734.0,52912027.0,52864922.0,53462462.0,54418082.0,53385792.0,53601488.0,53235282.0,52807619.0,52681117.0,54137988.0,65077953.0,52806531.0,55428356.0,52827282.0,52617843.0,53428849.0,52593354.0,53077724.0,52525376.0,52586223.0,52399904.0,52988379.0,52877299.0,52357094.0,52666314.0,53049770.0,53452791.0,53898463.0,57812851.0,52704425.0,53118672.0,55759592.0,52834818.0,53048023.0,52340483.0,52810523.0,52464392.0,52559860.0,52505077.0,52133052.0,53716544.0,52379334.0,52785401.0,52249772.0,52424259.0,52279030.0,52796457.0,58218108.0,52482845.0,52922882.0,53709487.0,53757386.0,53037832.0,52544300.0,55964168.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..d004698 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[7148456.821428572,7331457.410714285,7819458.982142856,8002459.571428571] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..a58ce69 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7591228.896964289,"upper_bound":7698633.972214286},"point_estimate":7639783.394285714,"standard_error":27456.313528432333},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7542280.857142857,"upper_bound":7566586.285714285},"point_estimate":7553688.928571429,"standard_error":6680.298105071135},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":45525.972354253274,"upper_bound":96835.9113808197},"point_estimate":65940.22232932832,"standard_error":13307.704988613075},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":149466.7523261714,"upper_bound":385622.4330787674},"point_estimate":277686.74718715344,"standard_error":60473.82590894469}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..8cc6811 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0],"times":[53467815.0,54231329.0,52728162.0,52948871.0,52854719.0,52710211.0,52756692.0,52603205.0,52700921.0,52694146.0,56198861.0,52609274.0,52863892.0,52569120.0,52356914.0,52991199.0,52766135.0,52595209.0,52415604.0,55017446.0,52994855.0,54028749.0,52874346.0,52667471.0,62746776.0,59085821.0,52969229.0,52758422.0,52923346.0,53111031.0,52427945.0,52881977.0,52962979.0,52365337.0,53725538.0,55515598.0,52474963.0,52519449.0,55319874.0,52953566.0,53508405.0,52924363.0,52538080.0,53000940.0,52963734.0,52912027.0,52864922.0,53462462.0,54418082.0,53385792.0,53601488.0,53235282.0,52807619.0,52681117.0,54137988.0,65077953.0,52806531.0,55428356.0,52827282.0,52617843.0,53428849.0,52593354.0,53077724.0,52525376.0,52586223.0,52399904.0,52988379.0,52877299.0,52357094.0,52666314.0,53049770.0,53452791.0,53898463.0,57812851.0,52704425.0,53118672.0,55759592.0,52834818.0,53048023.0,52340483.0,52810523.0,52464392.0,52559860.0,52505077.0,52133052.0,53716544.0,52379334.0,52785401.0,52249772.0,52424259.0,52279030.0,52796457.0,58218108.0,52482845.0,52922882.0,53709487.0,53757386.0,53037832.0,52544300.0,55964168.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..d004698 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[7148456.821428572,7331457.410714285,7819458.982142856,8002459.571428571] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..bc2ef5f --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":929.509056727409,"upper_bound":941.4018995927825},"point_estimate":935.0887837201394,"standard_error":3.0384765743760327},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":921.1895138226882,"upper_bound":928.3879558613795},"point_estimate":923.5004906633769,"standard_error":2.0546183678464467},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9.957840090157148,"upper_bound":18.85441056190689},"point_estimate":13.209413029039547,"standard_error":2.160959969445601},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":924.2806455828296,"upper_bound":935.371421997928},"point_estimate":929.0781655521954,"standard_error":2.8557230749120697},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21.32425193033588,"upper_bound":39.05476036931916},"point_estimate":30.6047597179582,"standard_error":4.545328399194287}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..e604e6e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1049.0,2098.0,3147.0,4196.0,5245.0,6294.0,7343.0,8392.0,9441.0,10490.0,11539.0,12588.0,13637.0,14686.0,15735.0,16784.0,17833.0,18882.0,19931.0,20980.0,22029.0,23078.0,24127.0,25176.0,26225.0,27274.0,28323.0,29372.0,30421.0,31470.0,32519.0,33568.0,34617.0,35666.0,36715.0,37764.0,38813.0,39862.0,40911.0,41960.0,43009.0,44058.0,45107.0,46156.0,47205.0,48254.0,49303.0,50352.0,51401.0,52450.0,53499.0,54548.0,55597.0,56646.0,57695.0,58744.0,59793.0,60842.0,61891.0,62940.0,63989.0,65038.0,66087.0,67136.0,68185.0,69234.0,70283.0,71332.0,72381.0,73430.0,74479.0,75528.0,76577.0,77626.0,78675.0,79724.0,80773.0,81822.0,82871.0,83920.0,84969.0,86018.0,87067.0,88116.0,89165.0,90214.0,91263.0,92312.0,93361.0,94410.0,95459.0,96508.0,97557.0,98606.0,99655.0,100704.0,101753.0,102802.0,103851.0,104900.0],"times":[983863.0,1959888.0,2859691.0,4257541.0,4831639.0,5753077.0,6845906.0,7611327.0,9053916.0,9779955.0,11800841.0,11625030.0,12538382.0,13939259.0,14319170.0,15427872.0,16468776.0,17584604.0,18229163.0,19371712.0,20881388.0,21538787.0,22397713.0,23329398.0,24755319.0,25551043.0,25870240.0,27902355.0,29703831.0,31056110.0,30478357.0,32425946.0,31977185.0,33551468.0,35705106.0,38816812.0,38197132.0,36773732.0,37674947.0,38552930.0,41920179.0,40098727.0,41186231.0,42480102.0,43076091.0,45424311.0,46540579.0,47677964.0,47210443.0,48354662.0,48870132.0,53150520.0,50859403.0,51806628.0,52690603.0,54232021.0,60573080.0,55735659.0,57280581.0,57567758.0,59775176.0,66624196.0,71897745.0,62872354.0,63292746.0,63592988.0,67184420.0,66567786.0,67672194.0,67933215.0,68312558.0,70095421.0,71061439.0,71566971.0,71918470.0,73044953.0,74012562.0,74881025.0,77238997.0,77338248.0,78217148.0,81843939.0,79725212.0,80647550.0,81814763.0,83261855.0,83446215.0,84917980.0,86802071.0,86305005.0,87656856.0,89378625.0,89565419.0,90594780.0,91134065.0,92266872.0,93848599.0,95454291.0,94922885.0,98450316.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..7f8b7c1 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[850.9580498759682,883.6206019541769,970.7207408294003,1003.3832929076091] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..bc2ef5f --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":929.509056727409,"upper_bound":941.4018995927825},"point_estimate":935.0887837201394,"standard_error":3.0384765743760327},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":921.1895138226882,"upper_bound":928.3879558613795},"point_estimate":923.5004906633769,"standard_error":2.0546183678464467},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9.957840090157148,"upper_bound":18.85441056190689},"point_estimate":13.209413029039547,"standard_error":2.160959969445601},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":924.2806455828296,"upper_bound":935.371421997928},"point_estimate":929.0781655521954,"standard_error":2.8557230749120697},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21.32425193033588,"upper_bound":39.05476036931916},"point_estimate":30.6047597179582,"standard_error":4.545328399194287}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..e604e6e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1049.0,2098.0,3147.0,4196.0,5245.0,6294.0,7343.0,8392.0,9441.0,10490.0,11539.0,12588.0,13637.0,14686.0,15735.0,16784.0,17833.0,18882.0,19931.0,20980.0,22029.0,23078.0,24127.0,25176.0,26225.0,27274.0,28323.0,29372.0,30421.0,31470.0,32519.0,33568.0,34617.0,35666.0,36715.0,37764.0,38813.0,39862.0,40911.0,41960.0,43009.0,44058.0,45107.0,46156.0,47205.0,48254.0,49303.0,50352.0,51401.0,52450.0,53499.0,54548.0,55597.0,56646.0,57695.0,58744.0,59793.0,60842.0,61891.0,62940.0,63989.0,65038.0,66087.0,67136.0,68185.0,69234.0,70283.0,71332.0,72381.0,73430.0,74479.0,75528.0,76577.0,77626.0,78675.0,79724.0,80773.0,81822.0,82871.0,83920.0,84969.0,86018.0,87067.0,88116.0,89165.0,90214.0,91263.0,92312.0,93361.0,94410.0,95459.0,96508.0,97557.0,98606.0,99655.0,100704.0,101753.0,102802.0,103851.0,104900.0],"times":[983863.0,1959888.0,2859691.0,4257541.0,4831639.0,5753077.0,6845906.0,7611327.0,9053916.0,9779955.0,11800841.0,11625030.0,12538382.0,13939259.0,14319170.0,15427872.0,16468776.0,17584604.0,18229163.0,19371712.0,20881388.0,21538787.0,22397713.0,23329398.0,24755319.0,25551043.0,25870240.0,27902355.0,29703831.0,31056110.0,30478357.0,32425946.0,31977185.0,33551468.0,35705106.0,38816812.0,38197132.0,36773732.0,37674947.0,38552930.0,41920179.0,40098727.0,41186231.0,42480102.0,43076091.0,45424311.0,46540579.0,47677964.0,47210443.0,48354662.0,48870132.0,53150520.0,50859403.0,51806628.0,52690603.0,54232021.0,60573080.0,55735659.0,57280581.0,57567758.0,59775176.0,66624196.0,71897745.0,62872354.0,63292746.0,63592988.0,67184420.0,66567786.0,67672194.0,67933215.0,68312558.0,70095421.0,71061439.0,71566971.0,71918470.0,73044953.0,74012562.0,74881025.0,77238997.0,77338248.0,78217148.0,81843939.0,79725212.0,80647550.0,81814763.0,83261855.0,83446215.0,84917980.0,86802071.0,86305005.0,87656856.0,89378625.0,89565419.0,90594780.0,91134065.0,92266872.0,93848599.0,95454291.0,94922885.0,98450316.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..7f8b7c1 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/deserialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[850.9580498759682,883.6206019541769,970.7207408294003,1003.3832929076091] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..8e10e52 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":175330.01801047122,"upper_bound":177654.7727017771},"point_estimate":176366.68763066386,"standard_error":595.9170986102508},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":174256.13521677328,"upper_bound":175042.28205128206},"point_estimate":174598.28260869565,"standard_error":199.40027674938585},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1156.413891674069,"upper_bound":1990.1066614140498},"point_estimate":1537.1209861365571,"standard_error":203.6671933232742},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":175611.42334798057,"upper_bound":179505.81318583473},"point_estimate":177362.48539776367,"standard_error":998.1700766310381},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3190.360229653723,"upper_bound":8644.029697669046},"point_estimate":5993.521398174369,"standard_error":1453.5906684307424}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..5fc89f3 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1112915.0,2170924.0,3118714.0,4122222.0,5150277.0,6281222.0,7321711.0,8426737.0,9552581.0,10546557.0,11538763.0,12889795.0,13661518.0,14762960.0,16055426.0,16777319.0,18320602.0,18846516.0,19733880.0,20787350.0,21893654.0,22955833.0,24174738.0,25028322.0,26048927.0,27115160.0,28843061.0,29277035.0,30065318.0,31221233.0,32366276.0,33677985.0,34461586.0,35333700.0,36499648.0,37933659.0,38492928.0,39654680.0,41023016.0,41833439.0,43170475.0,44500309.0,45091310.0,47286372.0,47846889.0,48185271.0,49576329.0,49880553.0,51111229.0,52241458.0,53687746.0,54613192.0,55116321.0,56228659.0,56983244.0,58402316.0,60767789.0,60419722.0,61637104.0,62860410.0,63948108.0,66041264.0,66038320.0,71784284.0,68238546.0,68720604.0,70041009.0,70968949.0,71703909.0,73197980.0,74876144.0,74954931.0,86817090.0,82365692.0,87506988.0,98958013.0,83041125.0,81592002.0,82320584.0,83851787.0,84237655.0,85829051.0,86744426.0,88254315.0,88548952.0,90811668.0,97425824.0,92156483.0,94228895.0,93614203.0,95906498.0,95623899.0,96802805.0,104943643.0,107080875.0,100999759.0,101828140.0,102979137.0,104674082.0,103932315.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..6519639 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[167601.76800414882,170669.58329381642,178850.42406626337,181918.23935593097] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..8e10e52 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":175330.01801047122,"upper_bound":177654.7727017771},"point_estimate":176366.68763066386,"standard_error":595.9170986102508},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":174256.13521677328,"upper_bound":175042.28205128206},"point_estimate":174598.28260869565,"standard_error":199.40027674938585},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1156.413891674069,"upper_bound":1990.1066614140498},"point_estimate":1537.1209861365571,"standard_error":203.6671933232742},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":175611.42334798057,"upper_bound":179505.81318583473},"point_estimate":177362.48539776367,"standard_error":998.1700766310381},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3190.360229653723,"upper_bound":8644.029697669046},"point_estimate":5993.521398174369,"standard_error":1453.5906684307424}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..5fc89f3 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1112915.0,2170924.0,3118714.0,4122222.0,5150277.0,6281222.0,7321711.0,8426737.0,9552581.0,10546557.0,11538763.0,12889795.0,13661518.0,14762960.0,16055426.0,16777319.0,18320602.0,18846516.0,19733880.0,20787350.0,21893654.0,22955833.0,24174738.0,25028322.0,26048927.0,27115160.0,28843061.0,29277035.0,30065318.0,31221233.0,32366276.0,33677985.0,34461586.0,35333700.0,36499648.0,37933659.0,38492928.0,39654680.0,41023016.0,41833439.0,43170475.0,44500309.0,45091310.0,47286372.0,47846889.0,48185271.0,49576329.0,49880553.0,51111229.0,52241458.0,53687746.0,54613192.0,55116321.0,56228659.0,56983244.0,58402316.0,60767789.0,60419722.0,61637104.0,62860410.0,63948108.0,66041264.0,66038320.0,71784284.0,68238546.0,68720604.0,70041009.0,70968949.0,71703909.0,73197980.0,74876144.0,74954931.0,86817090.0,82365692.0,87506988.0,98958013.0,83041125.0,81592002.0,82320584.0,83851787.0,84237655.0,85829051.0,86744426.0,88254315.0,88548952.0,90811668.0,97425824.0,92156483.0,94228895.0,93614203.0,95906498.0,95623899.0,96802805.0,104943643.0,107080875.0,100999759.0,101828140.0,102979137.0,104674082.0,103932315.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..6519639 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[167601.76800414882,170669.58329381642,178850.42406626337,181918.23935593097] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..76f0deb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1775013.0380311033,"upper_bound":1788333.883618734},"point_estimate":1781265.7183042928,"standard_error":3402.569566411497},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1766578.9264705882,"upper_bound":1773091.611111111},"point_estimate":1769736.3068181816,"standard_error":1655.3316513012685},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9455.426244027116,"upper_bound":19030.466146562},"point_estimate":13314.292233504362,"standard_error":2378.681515001479},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1777547.453670101,"upper_bound":1795890.7432178925},"point_estimate":1786249.1603280627,"standard_error":4698.940028023735},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":23575.7979165976,"upper_bound":43413.44149886048},"point_estimate":34205.18891838066,"standard_error":5072.267178419564}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..245681d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[1840833.0,3487257.0,5215731.0,7064690.0,8831841.0,10544517.0,12321383.0,14110886.0,15849331.0,17538985.0,20186480.0,21180191.0,22982810.0,24502198.0,26415169.0,28285313.0,30189654.0,32169148.0,33481213.0,35309393.0,36988857.0,39924401.0,41073767.0,42036939.0,44090701.0,46735435.0,47765605.0,50349487.0,51437250.0,53467996.0,54828672.0,60077107.0,60586490.0,59755433.0,61985862.0,64219015.0,65106736.0,66987314.0,68430153.0,70561982.0,72073480.0,74290526.0,76809887.0,77861877.0,79797871.0,82270821.0,88251169.0,84457512.0,87153427.0,87972100.0,89628143.0,92497183.0,93703837.0,95425540.0,97509346.0,98886105.0,101238838.0,102277960.0,104108611.0,105991901.0,109553519.0,110288539.0,121239131.0,114745004.0,115322789.0,127720365.0,121190459.0,120127367.0,122238269.0,124115159.0,127272523.0,128048455.0,128875104.0,131167238.0,131537102.0,134065706.0,135817884.0,137318778.0,140367225.0,141408301.0,146315992.0,148902965.0,146392238.0,147799152.0,150895699.0,152210067.0,155601470.0,158843831.0,157525517.0,158271422.0,160079302.0,162058289.0,164666883.0,166608466.0,168205130.0,179922440.0,177359947.0,180818234.0,177105651.0,180229928.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..c22df2f --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[1693560.2021236937,1728413.0214338978,1821353.8729277751,1856206.692237979] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..76f0deb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1775013.0380311033,"upper_bound":1788333.883618734},"point_estimate":1781265.7183042928,"standard_error":3402.569566411497},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1766578.9264705882,"upper_bound":1773091.611111111},"point_estimate":1769736.3068181816,"standard_error":1655.3316513012685},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":9455.426244027116,"upper_bound":19030.466146562},"point_estimate":13314.292233504362,"standard_error":2378.681515001479},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1777547.453670101,"upper_bound":1795890.7432178925},"point_estimate":1786249.1603280627,"standard_error":4698.940028023735},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":23575.7979165976,"upper_bound":43413.44149886048},"point_estimate":34205.18891838066,"standard_error":5072.267178419564}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..245681d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0],"times":[1840833.0,3487257.0,5215731.0,7064690.0,8831841.0,10544517.0,12321383.0,14110886.0,15849331.0,17538985.0,20186480.0,21180191.0,22982810.0,24502198.0,26415169.0,28285313.0,30189654.0,32169148.0,33481213.0,35309393.0,36988857.0,39924401.0,41073767.0,42036939.0,44090701.0,46735435.0,47765605.0,50349487.0,51437250.0,53467996.0,54828672.0,60077107.0,60586490.0,59755433.0,61985862.0,64219015.0,65106736.0,66987314.0,68430153.0,70561982.0,72073480.0,74290526.0,76809887.0,77861877.0,79797871.0,82270821.0,88251169.0,84457512.0,87153427.0,87972100.0,89628143.0,92497183.0,93703837.0,95425540.0,97509346.0,98886105.0,101238838.0,102277960.0,104108611.0,105991901.0,109553519.0,110288539.0,121239131.0,114745004.0,115322789.0,127720365.0,121190459.0,120127367.0,122238269.0,124115159.0,127272523.0,128048455.0,128875104.0,131167238.0,131537102.0,134065706.0,135817884.0,137318778.0,140367225.0,141408301.0,146315992.0,148902965.0,146392238.0,147799152.0,150895699.0,152210067.0,155601470.0,158843831.0,157525517.0,158271422.0,160079302.0,162058289.0,164666883.0,166608466.0,168205130.0,179922440.0,177359947.0,180818234.0,177105651.0,180229928.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..c22df2f --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[1693560.2021236937,1728413.0214338978,1821353.8729277751,1856206.692237979] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..4d1938b --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":218.94012772374248,"upper_bound":220.85943899393084},"point_estimate":219.81986277546284,"standard_error":0.4917746067486504},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":217.82431154595804,"upper_bound":218.63266641210413},"point_estimate":218.07206210432872,"standard_error":0.19850514926310636},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.0270850781553098,"upper_bound":2.320969834588575},"point_estimate":1.7092413171961642,"standard_error":0.3123623893531231},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":218.85878796212228,"upper_bound":222.67243368077857},"point_estimate":220.50224503053283,"standard_error":0.9864706062707079},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.993919768152279,"upper_bound":6.819528035375608},"point_estimate":4.943433680331043,"standard_error":1.00375186135653}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..ebe37b4 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4506.0,9012.0,13518.0,18024.0,22530.0,27036.0,31542.0,36048.0,40554.0,45060.0,49566.0,54072.0,58578.0,63084.0,67590.0,72096.0,76602.0,81108.0,85614.0,90120.0,94626.0,99132.0,103638.0,108144.0,112650.0,117156.0,121662.0,126168.0,130674.0,135180.0,139686.0,144192.0,148698.0,153204.0,157710.0,162216.0,166722.0,171228.0,175734.0,180240.0,184746.0,189252.0,193758.0,198264.0,202770.0,207276.0,211782.0,216288.0,220794.0,225300.0,229806.0,234312.0,238818.0,243324.0,247830.0,252336.0,256842.0,261348.0,265854.0,270360.0,274866.0,279372.0,283878.0,288384.0,292890.0,297396.0,301902.0,306408.0,310914.0,315420.0,319926.0,324432.0,328938.0,333444.0,337950.0,342456.0,346962.0,351468.0,355974.0,360480.0,364986.0,369492.0,373998.0,378504.0,383010.0,387516.0,392022.0,396528.0,401034.0,405540.0,410046.0,414552.0,419058.0,423564.0,428070.0,432576.0,437082.0,441588.0,446094.0,450600.0],"times":[1000356.0,1977639.0,3163160.0,3930431.0,4917595.0,5804135.0,7186926.0,7999587.0,8824004.0,9778693.0,10704978.0,12148863.0,12687583.0,13717831.0,14854092.0,15710049.0,16741919.0,17590986.0,18609161.0,19493517.0,21145867.0,22176389.0,23038574.0,23555193.0,24563534.0,26179012.0,27002987.0,27605678.0,28202024.0,29413246.0,30396390.0,31250184.0,32181522.0,33399369.0,34272904.0,35273817.0,37080653.0,37435254.0,40002726.0,38979729.0,40810710.0,41478906.0,42747218.0,43454218.0,44204096.0,45471297.0,46231786.0,47186455.0,48395776.0,49179357.0,49985956.0,50902546.0,53007255.0,52674475.0,54251036.0,55126666.0,55846589.0,56629766.0,57944946.0,58969525.0,60593366.0,61286012.0,62283424.0,63148128.0,63726514.0,64809178.0,65360043.0,66207692.0,67599248.0,68386868.0,69627628.0,70654702.0,71497939.0,79051202.0,73648732.0,78050779.0,76586221.0,81992807.0,77486374.0,78839906.0,78953884.0,80136899.0,81702494.0,83721627.0,85035820.0,84272881.0,85208657.0,86960885.0,92147454.0,90405318.0,89244460.0,90299504.0,91377339.0,92254276.0,93352479.0,93749055.0,109346182.0,96183997.0,99986250.0,99031188.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..74398d8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[208.31275027791963,212.8794518505179,225.05732271077994,229.6240242833782] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..4d1938b --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":218.94012772374248,"upper_bound":220.85943899393084},"point_estimate":219.81986277546284,"standard_error":0.4917746067486504},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":217.82431154595804,"upper_bound":218.63266641210413},"point_estimate":218.07206210432872,"standard_error":0.19850514926310636},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1.0270850781553098,"upper_bound":2.320969834588575},"point_estimate":1.7092413171961642,"standard_error":0.3123623893531231},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":218.85878796212228,"upper_bound":222.67243368077857},"point_estimate":220.50224503053283,"standard_error":0.9864706062707079},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2.993919768152279,"upper_bound":6.819528035375608},"point_estimate":4.943433680331043,"standard_error":1.00375186135653}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..ebe37b4 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4506.0,9012.0,13518.0,18024.0,22530.0,27036.0,31542.0,36048.0,40554.0,45060.0,49566.0,54072.0,58578.0,63084.0,67590.0,72096.0,76602.0,81108.0,85614.0,90120.0,94626.0,99132.0,103638.0,108144.0,112650.0,117156.0,121662.0,126168.0,130674.0,135180.0,139686.0,144192.0,148698.0,153204.0,157710.0,162216.0,166722.0,171228.0,175734.0,180240.0,184746.0,189252.0,193758.0,198264.0,202770.0,207276.0,211782.0,216288.0,220794.0,225300.0,229806.0,234312.0,238818.0,243324.0,247830.0,252336.0,256842.0,261348.0,265854.0,270360.0,274866.0,279372.0,283878.0,288384.0,292890.0,297396.0,301902.0,306408.0,310914.0,315420.0,319926.0,324432.0,328938.0,333444.0,337950.0,342456.0,346962.0,351468.0,355974.0,360480.0,364986.0,369492.0,373998.0,378504.0,383010.0,387516.0,392022.0,396528.0,401034.0,405540.0,410046.0,414552.0,419058.0,423564.0,428070.0,432576.0,437082.0,441588.0,446094.0,450600.0],"times":[1000356.0,1977639.0,3163160.0,3930431.0,4917595.0,5804135.0,7186926.0,7999587.0,8824004.0,9778693.0,10704978.0,12148863.0,12687583.0,13717831.0,14854092.0,15710049.0,16741919.0,17590986.0,18609161.0,19493517.0,21145867.0,22176389.0,23038574.0,23555193.0,24563534.0,26179012.0,27002987.0,27605678.0,28202024.0,29413246.0,30396390.0,31250184.0,32181522.0,33399369.0,34272904.0,35273817.0,37080653.0,37435254.0,40002726.0,38979729.0,40810710.0,41478906.0,42747218.0,43454218.0,44204096.0,45471297.0,46231786.0,47186455.0,48395776.0,49179357.0,49985956.0,50902546.0,53007255.0,52674475.0,54251036.0,55126666.0,55846589.0,56629766.0,57944946.0,58969525.0,60593366.0,61286012.0,62283424.0,63148128.0,63726514.0,64809178.0,65360043.0,66207692.0,67599248.0,68386868.0,69627628.0,70654702.0,71497939.0,79051202.0,73648732.0,78050779.0,76586221.0,81992807.0,77486374.0,78839906.0,78953884.0,80136899.0,81702494.0,83721627.0,85035820.0,84272881.0,85208657.0,86960885.0,92147454.0,90405318.0,89244460.0,90299504.0,91377339.0,92254276.0,93352479.0,93749055.0,109346182.0,96183997.0,99986250.0,99031188.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..74398d8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-1/serialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[208.31275027791963,212.8794518505179,225.05732271077994,229.6240242833782] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2.txt new file mode 100644 index 0000000..1b329dd --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2.txt @@ -0,0 +1,63 @@ +memcap: <=7723 MiB (60% of 12872 MiB available) [systemd MemoryMax, swap off] +Benchmarking deserialization/sensor_micro +Benchmarking deserialization/sensor_micro: Warming up for 3.0000 s +Benchmarking deserialization/sensor_micro: Collecting 100 samples in estimated 5.0013 s (5.2M iterations) +Benchmarking deserialization/sensor_micro: Analyzing +deserialization/sensor_micro + time: [940.34 ns 946.31 ns 953.13 ns] + thrpt: [94.054 MiB/s 94.732 MiB/s 95.333 MiB/s] +Found 7 outliers among 100 measurements (7.00%) + 2 (2.00%) high mild + 5 (5.00%) high severe +Benchmarking deserialization/catalog_items/1000 +Benchmarking deserialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/1000: Collecting 100 samples in estimated 8.5400 s (10k iterations) +Benchmarking deserialization/catalog_items/1000: Analyzing +deserialization/catalog_items/1000 + time: [786.77 µs 807.70 µs 834.13 µs] + thrpt: [73.071 MiB/s 75.461 MiB/s 77.469 MiB/s] +Found 17 outliers among 100 measurements (17.00%) + 6 (6.00%) high mild + 11 (11.00%) high severe +Benchmarking deserialization/catalog_items/10000 +Benchmarking deserialization/catalog_items/10000: Warming up for 3.0000 s +Benchmarking deserialization/catalog_items/10000: Collecting 100 samples in estimated 5.0914 s (600 iterations) +Benchmarking deserialization/catalog_items/10000: Analyzing +deserialization/catalog_items/10000 + time: [8.5072 ms 8.7586 ms 9.0397 ms] + thrpt: [70.569 MiB/s 72.834 MiB/s 74.986 MiB/s] +Found 10 outliers among 100 measurements (10.00%) + 7 (7.00%) high mild + 3 (3.00%) high severe + +Benchmarking serialization/sensor_micro +Benchmarking serialization/sensor_micro: Warming up for 3.0000 s +Benchmarking serialization/sensor_micro: Collecting 100 samples in estimated 5.0010 s (21M iterations) +Benchmarking serialization/sensor_micro: Analyzing +serialization/sensor_micro + time: [233.23 ns 238.14 ns 243.82 ns] + thrpt: [367.67 MiB/s 376.45 MiB/s 384.36 MiB/s] +Found 17 outliers among 100 measurements (17.00%) + 7 (7.00%) high mild + 10 (10.00%) high severe +Benchmarking serialization/catalog_items/1000 +Benchmarking serialization/catalog_items/1000: Warming up for 3.0000 s +Benchmarking serialization/catalog_items/1000: Collecting 100 samples in estimated 5.6783 s (30k iterations) +Benchmarking serialization/catalog_items/1000: Analyzing +serialization/catalog_items/1000 + time: [187.80 µs 192.49 µs 197.96 µs] + thrpt: [305.49 MiB/s 314.16 MiB/s 322.02 MiB/s] +Found 7 outliers among 100 measurements (7.00%) + 4 (4.00%) high mild + 3 (3.00%) high severe +Benchmarking serialization/catalog_items/10000 +Benchmarking serialization/catalog_items/10000: Warming up for 3.0000 s +Benchmarking serialization/catalog_items/10000: Collecting 100 samples in estimated 5.1503 s (2600 iterations) +Benchmarking serialization/catalog_items/10000: Analyzing +serialization/catalog_items/10000 + time: [1.9548 ms 2.0031 ms 2.0572 ms] + thrpt: [307.77 MiB/s 316.08 MiB/s 323.89 MiB/s] +Found 9 outliers among 100 measurements (9.00%) + 3 (3.00%) high mild + 6 (6.00%) high severe + diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..97b1ebd --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":810879.8038770421,"upper_bound":869875.0313530246},"point_estimate":838664.3794978337,"standard_error":15081.495606727294},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":760451.9489795918,"upper_bound":779491.6904761905},"point_estimate":765709.0471544715,"standard_error":4538.946370901184},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10880.290713059092,"upper_bound":40302.08436347998},"point_estimate":19969.132679074162,"standard_error":6679.802776459851},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":786773.5595265846,"upper_bound":834127.1992737168},"point_estimate":807702.4810492094,"standard_error":12147.76988278856},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":108018.63995977645,"upper_bound":187782.25611710188},"point_estimate":151537.04446412332,"standard_error":20436.00338262761}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..e98bb8e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1580519.0,3001671.0,4559125.0,11447377.0,14242939.0,9906950.0,10535352.0,12182538.0,13814348.0,15195122.0,16573300.0,18080153.0,19618365.0,21465455.0,22973431.0,29061904.0,33136309.0,27374890.0,40961265.0,44956732.0,33450118.0,33445439.0,34944267.0,36311179.0,37783730.0,43067316.0,42515661.0,50641711.0,43619871.0,48608533.0,60177781.0,48939857.0,56699197.0,72734159.0,52791947.0,54670460.0,55651591.0,72805149.0,58679094.0,67692977.0,62782239.0,63823370.0,82714452.0,119581348.0,68100042.0,70501246.0,86913799.0,73443279.0,74884469.0,93039032.0,97774964.0,134763575.0,116901215.0,92113462.0,84348710.0,88350549.0,96553350.0,118297565.0,97504700.0,97785167.0,94091457.0,94221766.0,98215953.0,96106551.0,101726136.0,99265176.0,103700145.0,149319283.0,174099667.0,149339184.0,107569394.0,109569152.0,110956586.0,111571147.0,112366334.0,118011459.0,115836340.0,117833368.0,119952478.0,122785935.0,128068015.0,125398333.0,125183584.0,138420357.0,127517284.0,129711287.0,131677699.0,132266583.0,135310228.0,142680686.0,147964637.0,138869824.0,141307172.0,141873528.0,144680863.0,146104196.0,145950184.0,149048582.0,149663170.0,164442921.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..e7da9ce --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[528373.0018429486,642497.037900641,946827.800721154,1060951.8367788463] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..2364a25 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63911},"full_id":"deserialization/catalog_items/1000","directory_name":"deserialization/catalog_items/1000","title":"deserialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..97b1ebd --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":810879.8038770421,"upper_bound":869875.0313530246},"point_estimate":838664.3794978337,"standard_error":15081.495606727294},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":760451.9489795918,"upper_bound":779491.6904761905},"point_estimate":765709.0471544715,"standard_error":4538.946370901184},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10880.290713059092,"upper_bound":40302.08436347998},"point_estimate":19969.132679074162,"standard_error":6679.802776459851},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":786773.5595265846,"upper_bound":834127.1992737168},"point_estimate":807702.4810492094,"standard_error":12147.76988278856},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":108018.63995977645,"upper_bound":187782.25611710188},"point_estimate":151537.04446412332,"standard_error":20436.00338262761}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..e98bb8e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1580519.0,3001671.0,4559125.0,11447377.0,14242939.0,9906950.0,10535352.0,12182538.0,13814348.0,15195122.0,16573300.0,18080153.0,19618365.0,21465455.0,22973431.0,29061904.0,33136309.0,27374890.0,40961265.0,44956732.0,33450118.0,33445439.0,34944267.0,36311179.0,37783730.0,43067316.0,42515661.0,50641711.0,43619871.0,48608533.0,60177781.0,48939857.0,56699197.0,72734159.0,52791947.0,54670460.0,55651591.0,72805149.0,58679094.0,67692977.0,62782239.0,63823370.0,82714452.0,119581348.0,68100042.0,70501246.0,86913799.0,73443279.0,74884469.0,93039032.0,97774964.0,134763575.0,116901215.0,92113462.0,84348710.0,88350549.0,96553350.0,118297565.0,97504700.0,97785167.0,94091457.0,94221766.0,98215953.0,96106551.0,101726136.0,99265176.0,103700145.0,149319283.0,174099667.0,149339184.0,107569394.0,109569152.0,110956586.0,111571147.0,112366334.0,118011459.0,115836340.0,117833368.0,119952478.0,122785935.0,128068015.0,125398333.0,125183584.0,138420357.0,127517284.0,129711287.0,131677699.0,132266583.0,135310228.0,142680686.0,147964637.0,138869824.0,141307172.0,141873528.0,144680863.0,146104196.0,145950184.0,149048582.0,149663170.0,164442921.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..e7da9ce --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[528373.0018429486,642497.037900641,946827.800721154,1060951.8367788463] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..8954f2d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8507238.590625,"upper_bound":9039663.217625005},"point_estimate":8758612.126666667,"standard_error":136002.5850296333},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8091885.0,"upper_bound":8406808.5},"point_estimate":8196069.166666666,"standard_error":79548.7281040183},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":403613.8741344223,"upper_bound":845548.2626885176},"point_estimate":544323.4840363255,"standard_error":112270.87113439923},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":983717.9745251152,"upper_bound":1706228.5669401234},"point_estimate":1365413.7178519128,"standard_error":185057.78070714165}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..444ca29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0],"times":[51103445.0,65588988.0,53566545.0,46894017.0,47941983.0,47840577.0,49089660.0,46437390.0,46435411.0,47133548.0,47119209.0,49187654.0,48687703.0,46677037.0,46493138.0,49258584.0,46696480.0,46875924.0,47613116.0,46801920.0,49630500.0,46976364.0,46743892.0,46970772.0,47131816.0,54649863.0,47038204.0,54319778.0,46995843.0,46260165.0,46451864.0,47494955.0,61144644.0,70189406.0,48968822.0,48779270.0,47430051.0,69576043.0,48981622.0,52015360.0,53155518.0,56027141.0,54484524.0,62422604.0,52059201.0,73549306.0,47385322.0,63094137.0,47563711.0,48868663.0,88487837.0,51695877.0,49165176.0,49862163.0,48073312.0,54441711.0,48403504.0,84818948.0,47556754.0,49064385.0,46849139.0,54386418.0,68434740.0,59059560.0,56150595.0,65016083.0,67075592.0,55809958.0,62790890.0,49799138.0,48803214.0,55473396.0,48551310.0,55840407.0,49691890.0,47669651.0,50440851.0,47883585.0,47722481.0,50786419.0,50114941.0,46435949.0,50802859.0,50756919.0,46636570.0,46926517.0,54067143.0,75634310.0,50580836.0,58388657.0,47996236.0,47388744.0,49893855.0,56619523.0,48482746.0,47461477.0,51372769.0,50121793.0,47144726.0,54734032.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..b87606f --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[4386942.375,6145114.875,10833574.875,12591747.375] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..8e57074 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":668911},"full_id":"deserialization/catalog_items/10000","directory_name":"deserialization/catalog_items/10000","title":"deserialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..8954f2d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8507238.590625,"upper_bound":9039663.217625005},"point_estimate":8758612.126666667,"standard_error":136002.5850296333},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8091885.0,"upper_bound":8406808.5},"point_estimate":8196069.166666666,"standard_error":79548.7281040183},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":403613.8741344223,"upper_bound":845548.2626885176},"point_estimate":544323.4840363255,"standard_error":112270.87113439923},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":983717.9745251152,"upper_bound":1706228.5669401234},"point_estimate":1365413.7178519128,"standard_error":185057.78070714165}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..444ca29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0],"times":[51103445.0,65588988.0,53566545.0,46894017.0,47941983.0,47840577.0,49089660.0,46437390.0,46435411.0,47133548.0,47119209.0,49187654.0,48687703.0,46677037.0,46493138.0,49258584.0,46696480.0,46875924.0,47613116.0,46801920.0,49630500.0,46976364.0,46743892.0,46970772.0,47131816.0,54649863.0,47038204.0,54319778.0,46995843.0,46260165.0,46451864.0,47494955.0,61144644.0,70189406.0,48968822.0,48779270.0,47430051.0,69576043.0,48981622.0,52015360.0,53155518.0,56027141.0,54484524.0,62422604.0,52059201.0,73549306.0,47385322.0,63094137.0,47563711.0,48868663.0,88487837.0,51695877.0,49165176.0,49862163.0,48073312.0,54441711.0,48403504.0,84818948.0,47556754.0,49064385.0,46849139.0,54386418.0,68434740.0,59059560.0,56150595.0,65016083.0,67075592.0,55809958.0,62790890.0,49799138.0,48803214.0,55473396.0,48551310.0,55840407.0,49691890.0,47669651.0,50440851.0,47883585.0,47722481.0,50786419.0,50114941.0,46435949.0,50802859.0,50756919.0,46636570.0,46926517.0,54067143.0,75634310.0,50580836.0,58388657.0,47996236.0,47388744.0,49893855.0,56619523.0,48482746.0,47461477.0,51372769.0,50121793.0,47144726.0,54734032.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..b87606f --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[4386942.375,6145114.875,10833574.875,12591747.375] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..a15ec75 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":946.7973302922658,"upper_bound":968.597144024021},"point_estimate":956.6722523759613,"standard_error":5.5879327586075895},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":934.2925158070581,"upper_bound":945.0725048923679},"point_estimate":937.0844748858448,"standard_error":2.603893285634167},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":13.67314680483784,"upper_bound":26.814422553207596},"point_estimate":19.722146073985723,"standard_error":3.3530790197268536},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":940.3432814905588,"upper_bound":953.1268145769268},"point_estimate":946.3075725034898,"standard_error":3.2532641675967513},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.873338431347243,"upper_bound":80.01590514167506},"point_estimate":56.01941758096357,"standard_error":13.142959702468016}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..e385132 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1022.0,2044.0,3066.0,4088.0,5110.0,6132.0,7154.0,8176.0,9198.0,10220.0,11242.0,12264.0,13286.0,14308.0,15330.0,16352.0,17374.0,18396.0,19418.0,20440.0,21462.0,22484.0,23506.0,24528.0,25550.0,26572.0,27594.0,28616.0,29638.0,30660.0,31682.0,32704.0,33726.0,34748.0,35770.0,36792.0,37814.0,38836.0,39858.0,40880.0,41902.0,42924.0,43946.0,44968.0,45990.0,47012.0,48034.0,49056.0,50078.0,51100.0,52122.0,53144.0,54166.0,55188.0,56210.0,57232.0,58254.0,59276.0,60298.0,61320.0,62342.0,63364.0,64386.0,65408.0,66430.0,67452.0,68474.0,69496.0,70518.0,71540.0,72562.0,73584.0,74606.0,75628.0,76650.0,77672.0,78694.0,79716.0,80738.0,81760.0,82782.0,83804.0,84826.0,85848.0,86870.0,87892.0,88914.0,89936.0,90958.0,91980.0,93002.0,94024.0,95046.0,96068.0,97090.0,98112.0,99134.0,100156.0,101178.0,102200.0],"times":[957964.0,1864706.0,2872310.0,3753564.0,4807554.0,5693386.0,7186633.0,9171581.0,8572425.0,9658641.0,10412484.0,11309481.0,12256845.0,13077384.0,14132117.0,15266921.0,15923750.0,17204262.0,17818662.0,27302148.0,22066104.0,23050188.0,23426957.0,23882006.0,23957525.0,24869390.0,25992543.0,27165232.0,28387530.0,30991229.0,32141740.0,31847448.0,32299831.0,38466541.0,36022332.0,35625169.0,35215616.0,37303806.0,36984250.0,40106074.0,40729818.0,40268277.0,41161690.0,42556555.0,50578395.0,46095825.0,52205886.0,45560527.0,47715859.0,49526063.0,48521156.0,53422472.0,49912532.0,52717044.0,52793898.0,52974849.0,53979769.0,55415340.0,56000104.0,56644751.0,57366201.0,58921750.0,60265087.0,60684466.0,62882799.0,64105055.0,64355257.0,65303506.0,66652861.0,66308485.0,67621840.0,68541902.0,68875289.0,72028136.0,72397021.0,71506448.0,72921975.0,76153908.0,80876000.0,79220711.0,77357672.0,77850829.0,79344841.0,79972076.0,84810190.0,81171364.0,89475383.0,84168686.0,87419547.0,85851313.0,86025550.0,89662101.0,87901872.0,89299665.0,94317942.0,91773250.0,92209424.0,95187603.0,93829982.0,94186577.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..e3ce3e5 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[824.6295050906843,876.4790263423215,1014.7444163466871,1066.5939375983241] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..8822cdb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"deserialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"deserialization/sensor_micro","directory_name":"deserialization/sensor_micro","title":"deserialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..a15ec75 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":946.7973302922658,"upper_bound":968.597144024021},"point_estimate":956.6722523759613,"standard_error":5.5879327586075895},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":934.2925158070581,"upper_bound":945.0725048923679},"point_estimate":937.0844748858448,"standard_error":2.603893285634167},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":13.67314680483784,"upper_bound":26.814422553207596},"point_estimate":19.722146073985723,"standard_error":3.3530790197268536},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":940.3432814905588,"upper_bound":953.1268145769268},"point_estimate":946.3075725034898,"standard_error":3.2532641675967513},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":31.873338431347243,"upper_bound":80.01590514167506},"point_estimate":56.01941758096357,"standard_error":13.142959702468016}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..e385132 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[1022.0,2044.0,3066.0,4088.0,5110.0,6132.0,7154.0,8176.0,9198.0,10220.0,11242.0,12264.0,13286.0,14308.0,15330.0,16352.0,17374.0,18396.0,19418.0,20440.0,21462.0,22484.0,23506.0,24528.0,25550.0,26572.0,27594.0,28616.0,29638.0,30660.0,31682.0,32704.0,33726.0,34748.0,35770.0,36792.0,37814.0,38836.0,39858.0,40880.0,41902.0,42924.0,43946.0,44968.0,45990.0,47012.0,48034.0,49056.0,50078.0,51100.0,52122.0,53144.0,54166.0,55188.0,56210.0,57232.0,58254.0,59276.0,60298.0,61320.0,62342.0,63364.0,64386.0,65408.0,66430.0,67452.0,68474.0,69496.0,70518.0,71540.0,72562.0,73584.0,74606.0,75628.0,76650.0,77672.0,78694.0,79716.0,80738.0,81760.0,82782.0,83804.0,84826.0,85848.0,86870.0,87892.0,88914.0,89936.0,90958.0,91980.0,93002.0,94024.0,95046.0,96068.0,97090.0,98112.0,99134.0,100156.0,101178.0,102200.0],"times":[957964.0,1864706.0,2872310.0,3753564.0,4807554.0,5693386.0,7186633.0,9171581.0,8572425.0,9658641.0,10412484.0,11309481.0,12256845.0,13077384.0,14132117.0,15266921.0,15923750.0,17204262.0,17818662.0,27302148.0,22066104.0,23050188.0,23426957.0,23882006.0,23957525.0,24869390.0,25992543.0,27165232.0,28387530.0,30991229.0,32141740.0,31847448.0,32299831.0,38466541.0,36022332.0,35625169.0,35215616.0,37303806.0,36984250.0,40106074.0,40729818.0,40268277.0,41161690.0,42556555.0,50578395.0,46095825.0,52205886.0,45560527.0,47715859.0,49526063.0,48521156.0,53422472.0,49912532.0,52717044.0,52793898.0,52974849.0,53979769.0,55415340.0,56000104.0,56644751.0,57366201.0,58921750.0,60265087.0,60684466.0,62882799.0,64105055.0,64355257.0,65303506.0,66652861.0,66308485.0,67621840.0,68541902.0,68875289.0,72028136.0,72397021.0,71506448.0,72921975.0,76153908.0,80876000.0,79220711.0,77357672.0,77850829.0,79344841.0,79972076.0,84810190.0,81171364.0,89475383.0,84168686.0,87419547.0,85851313.0,86025550.0,89662101.0,87901872.0,89299665.0,94317942.0,91773250.0,92209424.0,95187603.0,93829982.0,94186577.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..e3ce3e5 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/deserialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[824.6295050906843,876.4790263423215,1014.7444163466871,1066.5939375983241] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/estimates.json new file mode 100644 index 0000000..857ec74 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":185458.17629718376,"upper_bound":193275.84748335826},"point_estimate":189109.25035382443,"standard_error":2003.3589911904198},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":179886.11111111112,"upper_bound":183850.2462962963},"point_estimate":181257.15490196078,"standard_error":1199.434140306073},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5078.12870019021,"upper_bound":10917.735613224602},"point_estimate":7173.373803516724,"standard_error":1540.914980103859},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":187795.41104245177,"upper_bound":197956.12098392597},"point_estimate":192492.89759519236,"standard_error":2601.4044056878756},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12816.49795238994,"upper_bound":26342.529115714224},"point_estimate":20156.726140512084,"standard_error":3436.615558152624}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/sample.json new file mode 100644 index 0000000..d5d41e9 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1083596.0,2099062.0,3146702.0,4182803.0,5423712.0,6745945.0,7773272.0,8535516.0,9967961.0,10609478.0,11694678.0,12874218.0,13802865.0,14779866.0,15983821.0,16824356.0,18129821.0,19427700.0,20433004.0,20959079.0,21995616.0,25869936.0,25712747.0,25282218.0,26706875.0,36130229.0,33880199.0,47800629.0,34344146.0,31665324.0,36248444.0,33536466.0,36648716.0,36397581.0,37095976.0,38346802.0,39015668.0,43110519.0,41340605.0,43050669.0,44270179.0,46530282.0,50141026.0,46051289.0,49337941.0,49644824.0,52398364.0,53722227.0,52786382.0,53430207.0,55041573.0,54908894.0,56778854.0,65807720.0,59432789.0,67038733.0,66098146.0,62466008.0,63979912.0,71590794.0,76526384.0,79628180.0,66784253.0,83818007.0,75076214.0,71292112.0,73542231.0,73753860.0,72594581.0,75121987.0,76229844.0,84163586.0,97244341.0,125272196.0,88793102.0,120776924.0,105247788.0,85610617.0,86431298.0,88654243.0,104574530.0,88038123.0,93698912.0,105770955.0,92679194.0,107018683.0,95459998.0,92930644.0,107379724.0,98878656.0,103961535.0,96803800.0,100620359.0,116888305.0,115683865.0,110114127.0,104941304.0,107993249.0,108714161.0,109568933.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/tukey.json new file mode 100644 index 0000000..57f74d4 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/base/tukey.json @@ -0,0 +1 @@ +[130598.0729414165,154200.67311286513,217140.9402367281,240743.54040817672] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/benchmark.json new file mode 100644 index 0000000..077740d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"1000","throughput":{"Bytes":63411},"full_id":"serialization/catalog_items/1000","directory_name":"serialization/catalog_items/1000","title":"serialization/catalog_items/1000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/estimates.json new file mode 100644 index 0000000..857ec74 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":185458.17629718376,"upper_bound":193275.84748335826},"point_estimate":189109.25035382443,"standard_error":2003.3589911904198},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":179886.11111111112,"upper_bound":183850.2462962963},"point_estimate":181257.15490196078,"standard_error":1199.434140306073},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5078.12870019021,"upper_bound":10917.735613224602},"point_estimate":7173.373803516724,"standard_error":1540.914980103859},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":187795.41104245177,"upper_bound":197956.12098392597},"point_estimate":192492.89759519236,"standard_error":2601.4044056878756},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":12816.49795238994,"upper_bound":26342.529115714224},"point_estimate":20156.726140512084,"standard_error":3436.615558152624}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/sample.json new file mode 100644 index 0000000..d5d41e9 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0,96.0,102.0,108.0,114.0,120.0,126.0,132.0,138.0,144.0,150.0,156.0,162.0,168.0,174.0,180.0,186.0,192.0,198.0,204.0,210.0,216.0,222.0,228.0,234.0,240.0,246.0,252.0,258.0,264.0,270.0,276.0,282.0,288.0,294.0,300.0,306.0,312.0,318.0,324.0,330.0,336.0,342.0,348.0,354.0,360.0,366.0,372.0,378.0,384.0,390.0,396.0,402.0,408.0,414.0,420.0,426.0,432.0,438.0,444.0,450.0,456.0,462.0,468.0,474.0,480.0,486.0,492.0,498.0,504.0,510.0,516.0,522.0,528.0,534.0,540.0,546.0,552.0,558.0,564.0,570.0,576.0,582.0,588.0,594.0,600.0],"times":[1083596.0,2099062.0,3146702.0,4182803.0,5423712.0,6745945.0,7773272.0,8535516.0,9967961.0,10609478.0,11694678.0,12874218.0,13802865.0,14779866.0,15983821.0,16824356.0,18129821.0,19427700.0,20433004.0,20959079.0,21995616.0,25869936.0,25712747.0,25282218.0,26706875.0,36130229.0,33880199.0,47800629.0,34344146.0,31665324.0,36248444.0,33536466.0,36648716.0,36397581.0,37095976.0,38346802.0,39015668.0,43110519.0,41340605.0,43050669.0,44270179.0,46530282.0,50141026.0,46051289.0,49337941.0,49644824.0,52398364.0,53722227.0,52786382.0,53430207.0,55041573.0,54908894.0,56778854.0,65807720.0,59432789.0,67038733.0,66098146.0,62466008.0,63979912.0,71590794.0,76526384.0,79628180.0,66784253.0,83818007.0,75076214.0,71292112.0,73542231.0,73753860.0,72594581.0,75121987.0,76229844.0,84163586.0,97244341.0,125272196.0,88793102.0,120776924.0,105247788.0,85610617.0,86431298.0,88654243.0,104574530.0,88038123.0,93698912.0,105770955.0,92679194.0,107018683.0,95459998.0,92930644.0,107379724.0,98878656.0,103961535.0,96803800.0,100620359.0,116888305.0,115683865.0,110114127.0,104941304.0,107993249.0,108714161.0,109568933.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/tukey.json new file mode 100644 index 0000000..57f74d4 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/1000/new/tukey.json @@ -0,0 +1 @@ +[130598.0729414165,154200.67311286513,217140.9402367281,240743.54040817672] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/estimates.json new file mode 100644 index 0000000..eb1266e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1954841.6337980772,"upper_bound":2057208.2197403847},"point_estimate":2003127.0142307698,"standard_error":26135.700693011528},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1892290.0,"upper_bound":1939309.7307692308},"point_estimate":1925415.2692307692,"standard_error":12664.966980499416},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":93566.31410809679,"upper_bound":163917.59313218854},"point_estimate":137887.95604430715,"standard_error":18369.818867947037},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":188231.93311122563,"upper_bound":325998.80299521715},"point_estimate":263671.21630928724,"standard_error":35126.631998418794}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/sample.json new file mode 100644 index 0000000..6746492 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0],"times":[48498053.0,50092784.0,47750062.0,48265559.0,47957247.0,48979665.0,46999028.0,46827901.0,46715831.0,50960474.0,55416338.0,48356518.0,46676954.0,46146477.0,52450255.0,47634678.0,53068334.0,49733233.0,46129335.0,76866945.0,62558726.0,49835169.0,47300321.0,47030798.0,52651669.0,48696891.0,47015603.0,47152511.0,46403662.0,50288093.0,48700622.0,59042824.0,46263297.0,46841387.0,49646094.0,46646655.0,48212663.0,67113502.0,51038263.0,50297785.0,50491101.0,52635133.0,57032404.0,50175271.0,50422053.0,49378407.0,54156389.0,52577293.0,56977725.0,50311164.0,48986854.0,48511215.0,49020673.0,50109215.0,49516010.0,47469298.0,46936670.0,47680205.0,50996275.0,52868449.0,50196433.0,50993046.0,46851809.0,51203775.0,59881819.0,54150314.0,49552385.0,56076074.0,52091453.0,71130657.0,60873046.0,50047725.0,49440946.0,48258501.0,48500607.0,52805194.0,48523914.0,47406902.0,47481421.0,55383549.0,51425051.0,50073869.0,56254718.0,55688939.0,49610831.0,47874011.0,47016800.0,48490118.0,47650700.0,56011353.0,71391143.0,78792930.0,71788758.0,75827257.0,55078648.0,56864664.0,51388909.0,52113666.0,50075475.0,49348817.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/tukey.json new file mode 100644 index 0000000..bb27f1c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/base/tukey.json @@ -0,0 +1 @@ +[1280104.951923078,1561907.052884616,2313379.322115384,2595181.423076922] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/benchmark.json new file mode 100644 index 0000000..108dc8d --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"catalog_items","value_str":"10000","throughput":{"Bytes":663911},"full_id":"serialization/catalog_items/10000","directory_name":"serialization/catalog_items/10000","title":"serialization/catalog_items/10000"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/estimates.json new file mode 100644 index 0000000..eb1266e --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1954841.6337980772,"upper_bound":2057208.2197403847},"point_estimate":2003127.0142307698,"standard_error":26135.700693011528},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":1892290.0,"upper_bound":1939309.7307692308},"point_estimate":1925415.2692307692,"standard_error":12664.966980499416},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":93566.31410809679,"upper_bound":163917.59313218854},"point_estimate":137887.95604430715,"standard_error":18369.818867947037},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":188231.93311122563,"upper_bound":325998.80299521715},"point_estimate":263671.21630928724,"standard_error":35126.631998418794}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/sample.json new file mode 100644 index 0000000..6746492 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Flat","iters":[26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0],"times":[48498053.0,50092784.0,47750062.0,48265559.0,47957247.0,48979665.0,46999028.0,46827901.0,46715831.0,50960474.0,55416338.0,48356518.0,46676954.0,46146477.0,52450255.0,47634678.0,53068334.0,49733233.0,46129335.0,76866945.0,62558726.0,49835169.0,47300321.0,47030798.0,52651669.0,48696891.0,47015603.0,47152511.0,46403662.0,50288093.0,48700622.0,59042824.0,46263297.0,46841387.0,49646094.0,46646655.0,48212663.0,67113502.0,51038263.0,50297785.0,50491101.0,52635133.0,57032404.0,50175271.0,50422053.0,49378407.0,54156389.0,52577293.0,56977725.0,50311164.0,48986854.0,48511215.0,49020673.0,50109215.0,49516010.0,47469298.0,46936670.0,47680205.0,50996275.0,52868449.0,50196433.0,50993046.0,46851809.0,51203775.0,59881819.0,54150314.0,49552385.0,56076074.0,52091453.0,71130657.0,60873046.0,50047725.0,49440946.0,48258501.0,48500607.0,52805194.0,48523914.0,47406902.0,47481421.0,55383549.0,51425051.0,50073869.0,56254718.0,55688939.0,49610831.0,47874011.0,47016800.0,48490118.0,47650700.0,56011353.0,71391143.0,78792930.0,71788758.0,75827257.0,55078648.0,56864664.0,51388909.0,52113666.0,50075475.0,49348817.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/tukey.json new file mode 100644 index 0000000..bb27f1c --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/catalog_items/10000/new/tukey.json @@ -0,0 +1 @@ +[1280104.951923078,1561907.052884616,2313379.322115384,2595181.423076922] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/estimates.json new file mode 100644 index 0000000..99ea463 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":238.4345587927512,"upper_bound":257.3469198119103},"point_estimate":247.27339468281892,"standard_error":4.8590321141351716},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":226.9551672504003,"upper_bound":231.02910591634577},"point_estimate":229.78678479186306,"standard_error":1.0596478331144976},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8.189327472344786,"upper_bound":15.018444605255148},"point_estimate":11.922291519587308,"standard_error":1.745626612609655},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":233.23322242237944,"upper_bound":243.82221678961926},"point_estimate":238.1352936155746,"standard_error":2.7142877425558907},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.94021623764598,"upper_bound":61.36065907390852},"point_estimate":48.733306886739975,"standard_error":7.2600825056075955}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/sample.json new file mode 100644 index 0000000..081288b --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4139.0,8278.0,12417.0,16556.0,20695.0,24834.0,28973.0,33112.0,37251.0,41390.0,45529.0,49668.0,53807.0,57946.0,62085.0,66224.0,70363.0,74502.0,78641.0,82780.0,86919.0,91058.0,95197.0,99336.0,103475.0,107614.0,111753.0,115892.0,120031.0,124170.0,128309.0,132448.0,136587.0,140726.0,144865.0,149004.0,153143.0,157282.0,161421.0,165560.0,169699.0,173838.0,177977.0,182116.0,186255.0,190394.0,194533.0,198672.0,202811.0,206950.0,211089.0,215228.0,219367.0,223506.0,227645.0,231784.0,235923.0,240062.0,244201.0,248340.0,252479.0,256618.0,260757.0,264896.0,269035.0,273174.0,277313.0,281452.0,285591.0,289730.0,293869.0,298008.0,302147.0,306286.0,310425.0,314564.0,318703.0,322842.0,326981.0,331120.0,335259.0,339398.0,343537.0,347676.0,351815.0,355954.0,360093.0,364232.0,368371.0,372510.0,376649.0,380788.0,384927.0,389066.0,393205.0,397344.0,401483.0,405622.0,409761.0,413900.0],"times":[934742.0,1904353.0,2855598.0,3641061.0,4502559.0,5395620.0,6528828.0,7190464.0,13723088.0,17679760.0,11468444.0,10941816.0,11833140.0,12646961.0,13672605.0,15260703.0,15411513.0,16289004.0,30070449.0,27395746.0,37310305.0,39448817.0,29349902.0,30051423.0,23775598.0,29404778.0,24571630.0,25693259.0,26753606.0,37870455.0,55892072.0,38740692.0,31602012.0,34351589.0,32176343.0,34034956.0,34067908.0,34578167.0,35716920.0,44190766.0,39280630.0,38918046.0,39256549.0,41395489.0,42521144.0,44199667.0,43145590.0,46649314.0,45559180.0,45342823.0,49389591.0,48679082.0,49415892.0,69817319.0,64032041.0,54465164.0,51930292.0,61073580.0,56698045.0,54894635.0,56195632.0,73251545.0,60417245.0,65703509.0,61985107.0,62850313.0,61513641.0,65268285.0,62574990.0,68311637.0,67531727.0,68912945.0,66694397.0,69857081.0,71255298.0,72372167.0,70541981.0,72518071.0,71920891.0,74247566.0,77302643.0,75141196.0,78597320.0,79107090.0,78574615.0,81275898.0,99672613.0,81765290.0,87026842.0,84854979.0,95527014.0,91016875.0,89300467.0,97586602.0,87282002.0,91621633.0,105912504.0,93710488.0,120516969.0,100068401.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/tukey.json new file mode 100644 index 0000000..ec401e8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/base/tukey.json @@ -0,0 +1 @@ +[160.68932832535833,191.31312853041715,272.97659574390735,303.6003959489662] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/benchmark.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/benchmark.json new file mode 100644 index 0000000..9ae1c29 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/benchmark.json @@ -0,0 +1 @@ +{"group_id":"serialization","function_id":"sensor_micro","value_str":null,"throughput":{"Bytes":94},"full_id":"serialization/sensor_micro","directory_name":"serialization/sensor_micro","title":"serialization/sensor_micro"} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/estimates.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/estimates.json new file mode 100644 index 0000000..99ea463 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/estimates.json @@ -0,0 +1 @@ +{"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":238.4345587927512,"upper_bound":257.3469198119103},"point_estimate":247.27339468281892,"standard_error":4.8590321141351716},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":226.9551672504003,"upper_bound":231.02910591634577},"point_estimate":229.78678479186306,"standard_error":1.0596478331144976},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":8.189327472344786,"upper_bound":15.018444605255148},"point_estimate":11.922291519587308,"standard_error":1.745626612609655},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":233.23322242237944,"upper_bound":243.82221678961926},"point_estimate":238.1352936155746,"standard_error":2.7142877425558907},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":32.94021623764598,"upper_bound":61.36065907390852},"point_estimate":48.733306886739975,"standard_error":7.2600825056075955}} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/sample.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/sample.json new file mode 100644 index 0000000..081288b --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/sample.json @@ -0,0 +1 @@ +{"sampling_mode":"Linear","iters":[4139.0,8278.0,12417.0,16556.0,20695.0,24834.0,28973.0,33112.0,37251.0,41390.0,45529.0,49668.0,53807.0,57946.0,62085.0,66224.0,70363.0,74502.0,78641.0,82780.0,86919.0,91058.0,95197.0,99336.0,103475.0,107614.0,111753.0,115892.0,120031.0,124170.0,128309.0,132448.0,136587.0,140726.0,144865.0,149004.0,153143.0,157282.0,161421.0,165560.0,169699.0,173838.0,177977.0,182116.0,186255.0,190394.0,194533.0,198672.0,202811.0,206950.0,211089.0,215228.0,219367.0,223506.0,227645.0,231784.0,235923.0,240062.0,244201.0,248340.0,252479.0,256618.0,260757.0,264896.0,269035.0,273174.0,277313.0,281452.0,285591.0,289730.0,293869.0,298008.0,302147.0,306286.0,310425.0,314564.0,318703.0,322842.0,326981.0,331120.0,335259.0,339398.0,343537.0,347676.0,351815.0,355954.0,360093.0,364232.0,368371.0,372510.0,376649.0,380788.0,384927.0,389066.0,393205.0,397344.0,401483.0,405622.0,409761.0,413900.0],"times":[934742.0,1904353.0,2855598.0,3641061.0,4502559.0,5395620.0,6528828.0,7190464.0,13723088.0,17679760.0,11468444.0,10941816.0,11833140.0,12646961.0,13672605.0,15260703.0,15411513.0,16289004.0,30070449.0,27395746.0,37310305.0,39448817.0,29349902.0,30051423.0,23775598.0,29404778.0,24571630.0,25693259.0,26753606.0,37870455.0,55892072.0,38740692.0,31602012.0,34351589.0,32176343.0,34034956.0,34067908.0,34578167.0,35716920.0,44190766.0,39280630.0,38918046.0,39256549.0,41395489.0,42521144.0,44199667.0,43145590.0,46649314.0,45559180.0,45342823.0,49389591.0,48679082.0,49415892.0,69817319.0,64032041.0,54465164.0,51930292.0,61073580.0,56698045.0,54894635.0,56195632.0,73251545.0,60417245.0,65703509.0,61985107.0,62850313.0,61513641.0,65268285.0,62574990.0,68311637.0,67531727.0,68912945.0,66694397.0,69857081.0,71255298.0,72372167.0,70541981.0,72518071.0,71920891.0,74247566.0,77302643.0,75141196.0,78597320.0,79107090.0,78574615.0,81275898.0,99672613.0,81765290.0,87026842.0,84854979.0,95527014.0,91016875.0,89300467.0,97586602.0,87282002.0,91621633.0,105912504.0,93710488.0,120516969.0,100068401.0]} \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/tukey.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/tukey.json new file mode 100644 index 0000000..ec401e8 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-2/serialization/sensor_micro/new/tukey.json @@ -0,0 +1 @@ +[160.68932832535833,191.31312853041715,272.97659574390735,303.6003959489662] \ No newline at end of file diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-build.txt b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-build.txt new file mode 100644 index 0000000..22993e5 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current-build.txt @@ -0,0 +1,4 @@ +memcap: <=7687 MiB (60% of 12811 MiB available) [systemd MemoryMax, swap off] + Compiling polyxml v0.34.6 (/home/bailey/github/polyxml-combined-read/crates/polyxml-core) + Compiling core-regression v0.0.0 (/home/bailey/github/polyxml-combined-read/benchmarks/rust-xml-regression/target/core-current) + Finished `bench` profile [optimized] target(s) in 26.55s diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current.lock b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current.lock new file mode 100644 index 0000000..78a11b2 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/current.lock @@ -0,0 +1,633 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloca" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7d05ea6aea7e9e64d25b9156ba2fee3fdd659e34e41063cd2fc7cd020d7f4" +dependencies = [ + "cc", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cc" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f74872d07caf508b30a21f6836e7d7016a2eaf7d9ff4f48deaa58cd8a0407630" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "clap" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d" +dependencies = [ + "anstyle", + "clap_lex", +] + +[[package]] +name = "clap_lex" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486" + +[[package]] +name = "core-regression" +version = "0.0.0" +dependencies = [ + "criterion", + "polyxml", +] + +[[package]] +name = "criterion" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "950046b2aa2492f9a536f5f4f9a3de7b9e2476e575e05bd6c333371add4d98f3" +dependencies = [ + "alloca", + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "itertools", + "num-traits", + "oorandom", + "page_size", + "regex", + "serde", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8d80a2f4f5b554395e47b5d8305bc3d27813bacb73493eb1001e8f76dae29ea" +dependencies = [ + "cast", + "itertools", +] + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + +[[package]] +name = "fastrand" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + +[[package]] +name = "find-msvc-tools" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aedcfb3409746eddb02b9e19ebda1c3394f759a152e48ee875a0844d1b955484" + +[[package]] +name = "half" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" +dependencies = [ + "cfg-if", + "crunchy", + "zerocopy", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "lexical-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8d125a277f807e55a77304455eb7b1cb52f2b18c143b60e766c120bd64a594" +dependencies = [ + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", +] + +[[package]] +name = "lexical-parse-float" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a9f232fbd6f550bc0137dcb5f99ab674071ac2d690ac69704593cb4abbea56" +dependencies = [ + "lexical-parse-integer", + "lexical-util", +] + +[[package]] +name = "lexical-parse-integer" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7a039f8fb9c19c996cd7b2fcce303c1b2874fe1aca544edc85c4a5f8489b34" +dependencies = [ + "lexical-util", +] + +[[package]] +name = "lexical-util" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2604dd126bb14f13fb5d1bd6a66155079cb9fa655b37f875b3a742c705dbed17" + +[[package]] +name = "lexical-write-float" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c438c87c013188d415fbabbb1dceb44249ab81664efbd31b14ae55dabb6361" +dependencies = [ + "lexical-util", + "lexical-write-integer", +] + +[[package]] +name = "lexical-write-integer" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "409851a618475d2d5796377cad353802345cba92c867d9fbcde9cf4eac4e14df" +dependencies = [ + "lexical-util", +] + +[[package]] +name = "libc" +version = "0.2.190" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce5d3ddc6d3fa000eb1536d85e147bfe31aacaba692ed6a876f95cb7c855be78" + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "memo-map" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5449c8c750f1a07ea702bbd212bd999fceece9b3d1508b17023b3e174583124b" + +[[package]] +name = "minijinja" +version = "2.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86886cf6dbf4e614b19c9a1eec9775f021869d7eadde0fc73921a81b90c9b4c9" +dependencies = [ + "memo-map", + "serde", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "oorandom" +version = "11.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" + +[[package]] +name = "page_size" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "phf_codegen" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b585a510fb76fdebead6897982ef2a03a21d8e6cbcca904999742a4afc6ffe" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aeb62e0959d5a1bebc965f4d15d9e2b7cea002b6b0f5ba8cde6cc26738467100" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_shared" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fd9027e2d9319be6349febd1db4e8d02aa544921200c9b777720ac34a3aa89" +dependencies = [ + "siphasher", +] + +[[package]] +name = "polyxml" +version = "0.34.6" +dependencies = [ + "heck", + "lexical-core", + "memchr", + "minijinja", + "phf_codegen", + "quick-xml", + "regex", + "serde", + "serde_json", + "smallvec", + "thiserror", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "siphasher" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33f4fe9184a62d842c9ef383018f3306d8ba224fd9d836f56d7288308847c256" + +[[package]] +name = "smallvec" +version = "1.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9395f0f0eee849a9b707b2f06bb92a6a422090e2123bb2ef8e87a0e61892a8e" + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "2.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "unicode-ident" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "zerocopy" +version = "0.8.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6df92bf3d9227be3d53173901ddbffac2babc27ae50f397776ffd6dc33f800cb" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac4f328cf2f05d084e496c3e9c3f33ed0a183656a16e1fcec4d464d8373aec82" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/harness.rs b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/harness.rs new file mode 100644 index 0000000..073ad98 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/harness.rs @@ -0,0 +1,172 @@ +use std::hint::black_box; + +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; +use polyxml::schema::{FieldKind, FieldSchema, ModelSchema, ScalarType, ValueType}; +use polyxml::{deserialize, serialize}; +use std::sync::Arc; + +fn build_sensor_fixture() -> (Arc, Vec) { + let schema = ModelSchema::builder("Sensor") + .field(FieldSchema::new( + "id", + b"id", + FieldKind::Attribute, + ValueType::Scalar(ScalarType::Int), + )) + .field(FieldSchema::new( + "temp", + b"temp", + FieldKind::Element, + ValueType::Scalar(ScalarType::Float), + )) + .field(FieldSchema::new( + "status", + b"status", + FieldKind::Element, + ValueType::Scalar(ScalarType::String), + )) + .field(FieldSchema::new( + "active", + b"active", + FieldKind::Element, + ValueType::Scalar(ScalarType::Bool), + )) + .build(); + + let xml = br#"23.75OPERATIONALtrue"#.to_vec(); + let value = deserialize(&xml, Arc::clone(&schema)).unwrap(); + let output = serialize("Sensor", &value, &schema, None).unwrap(); + assert_eq!(value, deserialize(&output, Arc::clone(&schema)).unwrap()); + (schema, xml) +} + +fn build_catalog_fixture(count: usize) -> (Arc, Vec) { + let item_schema = ModelSchema::builder("Item") + .field(FieldSchema::new( + "id", + b"id", + FieldKind::Attribute, + ValueType::Scalar(ScalarType::Int), + )) + .field(FieldSchema::new( + "name", + b"name", + FieldKind::Element, + ValueType::Scalar(ScalarType::String), + )) + .field(FieldSchema::new( + "price", + b"price", + FieldKind::Element, + ValueType::Scalar(ScalarType::Float), + )) + .build(); + + let catalog_schema = ModelSchema::builder("Catalog") + .field(FieldSchema::new( + "items", + b"item", + FieldKind::Element, + ValueType::List(Box::new(ValueType::Nested(item_schema))), + )) + .build(); + + let mut xml = String::with_capacity(count * 64 + 32); + xml.push_str(""); + for i in 0..count { + use std::fmt::Write; + write!( + xml, + r#"Part-{i}{:.2}"#, + (i as f64) * 1.25 + ) + .unwrap(); + } + xml.push_str(""); + + let xml = xml.into_bytes(); + let value = deserialize(&xml, Arc::clone(&catalog_schema)).unwrap(); + assert_eq!(value.get("items").unwrap().as_list().unwrap().len(), count); + let output = serialize("Catalog", &value, &catalog_schema, None).unwrap(); + assert_eq!(value, deserialize(&output, Arc::clone(&catalog_schema)).unwrap()); + (catalog_schema, xml) +} + +fn bench_deserialization(c: &mut Criterion) { + let mut group = c.benchmark_group("deserialization"); + + // 1. Sensor Telemetry (Micro) + { + let (schema, xml) = build_sensor_fixture(); + group.throughput(Throughput::Bytes(xml.len() as u64)); + group.bench_function("sensor_micro", |b| { + b.iter(|| { + let res = deserialize(black_box(&xml), Arc::clone(&schema)).unwrap(); + black_box(res); + }); + }); + } + + // 2. Catalog Batch (1,000 and 10,000 items) + for &count in &[1_000, 10_000] { + let (schema, xml) = build_catalog_fixture(count); + group.throughput(Throughput::Bytes(xml.len() as u64)); + group.bench_with_input(BenchmarkId::new("catalog_items", count), &count, |b, _| { + b.iter(|| { + let res = deserialize(black_box(&xml), Arc::clone(&schema)).unwrap(); + black_box(res); + }); + }); + } + + group.finish(); +} + +fn bench_serialization(c: &mut Criterion) { + let mut group = c.benchmark_group("serialization"); + + // 1. Sensor Telemetry (Micro) + { + let (schema, xml) = build_sensor_fixture(); + let val = deserialize(&xml, Arc::clone(&schema)).unwrap(); + let expected_bytes = serialize("Sensor", &val, &schema, None).unwrap(); + group.throughput(Throughput::Bytes(expected_bytes.len() as u64)); + group.bench_function("sensor_micro", |b| { + b.iter(|| { + let res = serialize( + black_box("Sensor"), + black_box(&val), + black_box(&schema), + black_box(None), + ) + .unwrap(); + black_box(res); + }); + }); + } + + // 2. Catalog Batch (1,000 and 10,000 items) + for &count in &[1_000, 10_000] { + let (schema, xml) = build_catalog_fixture(count); + let val = deserialize(&xml, Arc::clone(&schema)).unwrap(); + let expected_bytes = serialize("Catalog", &val, &schema, None).unwrap(); + group.throughput(Throughput::Bytes(expected_bytes.len() as u64)); + group.bench_with_input(BenchmarkId::new("catalog_items", count), &count, |b, _| { + b.iter(|| { + let res = serialize( + black_box("Catalog"), + black_box(&val), + black_box(&schema), + black_box(None), + ) + .unwrap(); + black_box(res); + }); + }); + } + + group.finish(); +} + +criterion_group!(benches, bench_deserialization, bench_serialization); +criterion_main!(benches); diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/metadata.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/metadata.json new file mode 100644 index 0000000..219edbb --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/metadata.json @@ -0,0 +1,19 @@ +{ + "revisions": { + "baseline": "1819c91b0808b9242c642d82350d2b657b60108c", + "current": "75358852f7a26fa4a98193a506e4cebce375101b" + }, + "core_status": { + "baseline": "", + "current": "" + }, + "sample_size": 100, + "warmup_seconds": 3.0, + "measurement_seconds": 5.0, + "rounds": 3, + "filter": "", + "order": "alternate baseline/current per round", + "os": "Linux-6.18.40.1-microsoft-standard-WSL2-x86_64-with-glibc2.43", + "cpu": "11th Gen Intel(R) Core(TM) i5-11600K @ 3.90GHz", + "rustc": "rustc 1.99.0 (b940084d7 2026-09-28)\nbinary: rustc\ncommit-hash: b940084d7eb6a299eb4bfeb8e34901bc051e7ac4\ncommit-date: 2026-09-28\nhost: x86_64-unknown-linux-gnu\nrelease: 1.99.0\nLLVM version: 23.1.1\n" +} diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/summary.json b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/summary.json new file mode 100644 index 0000000..a2e9c12 --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute-core/summary.json @@ -0,0 +1,428 @@ +{ + "deserialization/catalog_items/1000": { + "baseline_ns": 789190.6971912745, + "candidate_ns": 761319.7858169902, + "delta_percent": -3.5315813368653193, + "speedup": 1.0366086786308533, + "process_deltas_percent": [ + -4.711243746888838, + -3.5251133686206026, + 6.268913518955022 + ], + "process_estimates": { + "baseline": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 791295.5965576116, + "upper_bound": 807947.6041901344 + }, + "point_estimate": 798960.7753875297, + "standard_error": 4273.780934670834 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 782207.1240353667, + "upper_bound": 789859.4677298237 + }, + "point_estimate": 785630.0261727816, + "standard_error": 1968.1546199716377 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 784670.0418452171, + "upper_bound": 794608.2931641726 + }, + "point_estimate": 789190.6971912745, + "standard_error": 2547.8518144736636 + } + ], + "current": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 756728.0802774625, + "upper_bound": 766504.6790133109 + }, + "point_estimate": 761319.7858169902, + "standard_error": 2497.2585789894356 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 755267.9122115697, + "upper_bound": 761244.8979476038 + }, + "point_estimate": 757935.6770922673, + "standard_error": 1534.3877125481924 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 810879.8038770421, + "upper_bound": 869875.0313530246 + }, + "point_estimate": 838664.3794978337, + "standard_error": 15081.495606727294 + } + ] + } + }, + "deserialization/catalog_items/10000": { + "baseline_ns": 7955338.324285713, + "candidate_ns": 7639783.394285714, + "delta_percent": -3.966580893696081, + "speedup": 1.0413041723455174, + "process_deltas_percent": [ + -3.670399722742368, + -4.759165915803598, + 10.09729278173821 + ], + "process_estimates": { + "baseline": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 7859090.189785714, + "upper_bound": 7910400.333928573 + }, + "point_estimate": 7883168.992857142, + "standard_error": 13119.369239789283 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 7965814.913642855, + "upper_bound": 8095452.980607144 + }, + "point_estimate": 8021541.881428573, + "standard_error": 33446.03678910466 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 7902489.854464282, + "upper_bound": 8017853.829928573 + }, + "point_estimate": 7955338.324285713, + "standard_error": 29489.23673649763 + } + ], + "current": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 7556777.279499999, + "upper_bound": 7636154.168964284 + }, + "point_estimate": 7593825.180000002, + "standard_error": 20268.69762123049 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 7591228.896964289, + "upper_bound": 7698633.972214286 + }, + "point_estimate": 7639783.394285714, + "standard_error": 27456.313528432333 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 8507238.590625, + "upper_bound": 9039663.217625005 + }, + "point_estimate": 8758612.126666667, + "standard_error": 136002.5850296333 + } + ] + } + }, + "deserialization/sensor_micro": { + "baseline_ns": 974.9037588771275, + "candidate_ns": 935.0887837201394, + "delta_percent": -4.083990321551956, + "speedup": 1.0425788180225934, + "process_deltas_percent": [ + -4.996469041539175, + -4.083990321551956, + -1.680239476090306 + ], + "process_estimates": { + "baseline": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 973.2773408808249, + "upper_bound": 987.1525007643144 + }, + "point_estimate": 979.630731620905, + "standard_error": 3.5424192383632445 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 969.0310798274186, + "upper_bound": 981.753606361157 + }, + "point_estimate": 974.9037588771275, + "standard_error": 3.2562537365579494 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 969.0449856731873, + "upper_bound": 977.4409164247452 + }, + "point_estimate": 973.0213410592216, + "standard_error": 2.1494153276342978 + } + ], + "current": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 926.0840733100691, + "upper_bound": 936.0275796270612 + }, + "point_estimate": 930.6837853940627, + "standard_error": 2.5428616470966214 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 929.509056727409, + "upper_bound": 941.4018995927825 + }, + "point_estimate": 935.0887837201394, + "standard_error": 3.0384765743760327 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 946.7973302922658, + "upper_bound": 968.597144024021 + }, + "point_estimate": 956.6722523759613, + "standard_error": 5.5879327586075895 + } + ] + } + }, + "serialization/catalog_items/1000": { + "baseline_ns": 178343.2537327712, + "candidate_ns": 176366.68763066386, + "delta_percent": -1.1082931710268196, + "speedup": 1.011207139673942, + "process_deltas_percent": [ + -1.2799216769740607, + -1.1518720044225494, + 6.069539457387418 + ], + "process_estimates": { + "baseline": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 177514.9710052003, + "upper_bound": 179277.37352094788 + }, + "point_estimate": 178343.2537327712, + "standard_error": 449.2748334644314 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 177589.12502072455, + "upper_bound": 179466.28443194425 + }, + "point_estimate": 178421.87930817937, + "standard_error": 482.11121204347234 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 177309.1110682692, + "upper_bound": 179616.67478112257 + }, + "point_estimate": 178287.9904270703, + "standard_error": 596.1268086997642 + } + ], + "current": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 175182.82977197025, + "upper_bound": 177062.97592994536 + }, + "point_estimate": 176060.5997688246, + "standard_error": 480.12887266199334 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 175330.01801047122, + "upper_bound": 177654.7727017771 + }, + "point_estimate": 176366.68763066386, + "standard_error": 595.9170986102508 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 185458.17629718376, + "upper_bound": 193275.84748335826 + }, + "point_estimate": 189109.25035382443, + "standard_error": 2003.3589911904198 + } + ] + } + }, + "serialization/catalog_items/10000": { + "baseline_ns": 1787315.6521489527, + "candidate_ns": 1813755.0761269673, + "delta_percent": 1.4792811748851165, + "speedup": 0.9854228256471803, + "process_deltas_percent": [ + 1.7524646137370592, + -0.33849274678403596, + 10.054731369187886 + ], + "process_estimates": { + "baseline": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 1778406.4599728733, + "upper_bound": 1786994.5151738555 + }, + "point_estimate": 1782517.0948066665, + "standard_error": 2185.2456597824653 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 1781022.8666719596, + "upper_bound": 1794240.351775516 + }, + "point_estimate": 1787315.6521489527, + "standard_error": 3370.814409598635 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 1803586.690858, + "upper_bound": 1840220.847117122 + }, + "point_estimate": 1820118.9438290582, + "standard_error": 9434.505392752879 + } + ], + "current": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 1789031.8361522884, + "upper_bound": 1848329.140955493 + }, + "point_estimate": 1813755.0761269673, + "standard_error": 15381.489562733253 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 1775013.0380311033, + "upper_bound": 1788333.883618734 + }, + "point_estimate": 1781265.7183042928, + "standard_error": 3402.569566411497 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 1954841.6337980772, + "upper_bound": 2057208.2197403847 + }, + "point_estimate": 2003127.0142307698, + "standard_error": 26135.700693011528 + } + ] + } + }, + "serialization/sensor_micro": { + "baseline_ns": 226.0632235067906, + "candidate_ns": 233.87284823826917, + "delta_percent": 3.454619734396558, + "speedup": 0.9666073903392063, + "process_deltas_percent": [ + 2.129924992452903, + -2.546333090281938, + 9.382406765243356 + ], + "process_estimates": { + "baseline": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 225.89919133709734, + "upper_bound": 233.20354532167548 + }, + "point_estimate": 228.995417607084, + "standard_error": 1.8917378873143864 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 224.9242009658034, + "upper_bound": 226.28061755410195 + }, + "point_estimate": 225.5634597917243, + "standard_error": 0.34667066643983174 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 225.0686614468257, + "upper_bound": 227.24277367713145 + }, + "point_estimate": 226.0632235067906, + "standard_error": 0.5554465166915109 + } + ], + "current": [ + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 232.8141189762846, + "upper_bound": 235.2661979103697 + }, + "point_estimate": 233.87284823826917, + "standard_error": 0.6308312312547608 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 218.94012772374248, + "upper_bound": 220.85943899393084 + }, + "point_estimate": 219.81986277546284, + "standard_error": 0.4917746067486504 + }, + { + "confidence_interval": { + "confidence_level": 0.95, + "lower_bound": 238.4345587927512, + "upper_bound": 257.3469198119103 + }, + "point_estimate": 247.27339468281892, + "standard_error": 4.8590321141351716 + } + ] + } + } +} diff --git a/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute.patch b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute.patch new file mode 100644 index 0000000..88d698b --- /dev/null +++ b/research/data/runtime-followups-2026-10-03/performance-experiments/combined-registry-attribute.patch @@ -0,0 +1,231 @@ +diff --git a/crates/polyxml-core/src/parser.rs b/crates/polyxml-core/src/parser.rs +index afc027e..43f50c0 100644 +--- a/crates/polyxml-core/src/parser.rs ++++ b/crates/polyxml-core/src/parser.rs +@@ -154,6 +154,9 @@ fn parse_field_scalar( + pub struct XmlDeserializer; + + fn is_nil_element(e: &BytesStart) -> bool { ++ if e.attributes_raw().is_empty() { ++ return false; ++ } + for attr in e.attributes().flatten() { + let raw_key = attr.key.as_ref(); + if raw_key == "xmlns" || raw_key.starts_with("xmlns:") { +@@ -172,6 +175,9 @@ fn is_nil_element(e: &BytesStart) -> bool { + /// Extend inherited namespace bindings for this element. Elements without + /// declarations share the existing map. + fn namespace_scope(parent: &NamespaceScope, e: &BytesStart) -> NamespaceScope { ++ if e.attributes_raw().is_empty() { ++ return Arc::clone(parent); ++ } + let mut scope = None; + for attr in e.attributes().flatten() { + let key = attr.key.as_ref(); +@@ -995,6 +1001,9 @@ impl XmlDeserializer { + } + + pub(crate) fn parse_attributes(e: &BytesStart, frame: &mut StackFrame) -> Result<()> { ++ if frame.schema.attribute_map.is_empty() && frame.schema.any_attribute_field.is_none() { ++ return Ok(()); ++ } + let mut any_attrs: Option> = None; + for attr in e.attributes().flatten() { + let raw_key = attr.key.as_ref(); +diff --git a/crates/polyxml-core/src/schema.rs b/crates/polyxml-core/src/schema.rs +index 920a2a1..8724531 100644 +--- a/crates/polyxml-core/src/schema.rs ++++ b/crates/polyxml-core/src/schema.rs +@@ -1,4 +1,5 @@ + use std::collections::HashMap; ++use std::sync::atomic::{AtomicBool, Ordering}; + use std::sync::{Arc, RwLock}; + + #[derive(Debug, Clone, PartialEq, Eq)] +@@ -106,6 +107,12 @@ impl FieldSchema { + } + } + ++#[derive(Debug, Default)] ++struct VariantRegistry { ++ schemas: RwLock>>, ++ populated: AtomicBool, ++} ++ + #[derive(Debug, Clone)] + pub struct ModelSchema { + pub name: String, +@@ -125,7 +132,7 @@ pub struct ModelSchema { + pub content_pattern: Option, + /// Concrete derivations eligible for `xsi:type` dispatch. Python may + /// refresh this registry when subclasses are defined after first use. +- variants: Arc>>>, ++ variants: Arc, + } + + impl ModelSchema { +@@ -136,12 +143,27 @@ impl ModelSchema { + /// Register the concrete derivations eligible for `xsi:type` dispatch. + /// Replaces the registry when subclasses are discovered after first use. + pub fn set_variants(&self, variants: Vec>) { +- *self.variants.write().unwrap_or_else(|p| p.into_inner()) = variants; ++ let mut registered = self ++ .variants ++ .schemas ++ .write() ++ .unwrap_or_else(|p| p.into_inner()); ++ *registered = variants; ++ // Publish emptiness while holding the registry lock. Cloned schemas ++ // share this flag, so later registration/clearing cannot leave a stale ++ // per-schema dispatch plan. Nonempty lookups still use the lock. ++ self.variants ++ .populated ++ .store(!registered.is_empty(), Ordering::Release); + } + + /// Registered derivations for `xsi:type` dispatch (empty when none). + pub fn variants(&self) -> Vec> { ++ if !self.has_variants() { ++ return Vec::new(); ++ } + self.variants ++ .schemas + .read() + .unwrap_or_else(|p| p.into_inner()) + .clone() +@@ -149,16 +171,16 @@ impl ModelSchema { + + /// Whether any `xsi:type` derivations are registered for this type. + pub fn has_variants(&self) -> bool { +- !self +- .variants +- .read() +- .unwrap_or_else(|p| p.into_inner()) +- .is_empty() ++ self.variants.populated.load(Ordering::Acquire) + } + + /// Look up a derivation by the QName local part of an `xsi:type` value. + pub fn find_variant(&self, local: &[u8]) -> Option> { ++ if !self.has_variants() { ++ return None; ++ } + self.variants ++ .schemas + .read() + .unwrap_or_else(|p| p.into_inner()) + .iter() +@@ -168,7 +190,11 @@ impl ModelSchema { + + /// Look up a derivation by its complete QName. + pub fn find_variant_qname(&self, namespace: &str, local: &[u8]) -> Option> { ++ if !self.has_variants() { ++ return None; ++ } + self.variants ++ .schemas + .read() + .unwrap_or_else(|p| p.into_inner()) + .iter() +@@ -180,7 +206,11 @@ impl ModelSchema { + + /// Whether `candidate` is a registered derivation of `self`. + pub fn matches_variant(&self, candidate: &ModelSchema) -> bool { ++ if !self.has_variants() { ++ return false; ++ } + self.variants ++ .schemas + .read() + .unwrap_or_else(|p| p.into_inner()) + .iter() +@@ -655,7 +685,7 @@ impl ModelSchemaBuilder { + is_abstract: self.is_abstract, + strict_root: self.strict_root, + content_pattern: self.content_pattern, +- variants: Arc::new(RwLock::new(Vec::new())), ++ variants: Arc::new(VariantRegistry::default()), + }) + } + } +diff --git a/crates/polyxml-core/tests/test_variant_registry.rs b/crates/polyxml-core/tests/test_variant_registry.rs +new file mode 100644 +index 0000000..9502c68 +--- /dev/null ++++ b/crates/polyxml-core/tests/test_variant_registry.rs +@@ -0,0 +1,75 @@ ++use std::sync::Arc; ++ ++use polyxml::schema::ModelSchema; ++ ++#[test] ++fn registration_and_clearing_are_visible_to_schema_clones() { ++ let base = ModelSchema::builder("Base").build(); ++ let clone = (*base).clone(); ++ let derived = ModelSchema::builder("Derived") ++ .namespace("urn:derived") ++ .build(); ++ assert!(!clone.has_variants()); ++ assert!(clone.variants().is_empty()); ++ base.set_variants(vec![Arc::clone(&derived)]); ++ assert!(clone.has_variants()); ++ assert!(Arc::ptr_eq(&clone.variants()[0], &derived)); ++ assert!(Arc::ptr_eq( ++ &clone.find_variant(b"Derived").unwrap(), ++ &derived ++ )); ++ assert!(clone.find_variant_qname("urn:other", b"Derived").is_none()); ++ assert!(Arc::ptr_eq( ++ &clone.find_variant_qname("urn:derived", b"Derived").unwrap(), ++ &derived ++ )); ++ assert!(clone.matches_variant(&derived)); ++ clone.set_variants(Vec::new()); ++ assert!(!base.has_variants()); ++ assert!(base.variants().is_empty()); ++ assert!(base.find_variant(b"Derived").is_none()); ++ assert!(!base.matches_variant(&derived)); ++ clone.set_variants(vec![Arc::clone(&derived)]); ++ assert!(base.has_variants()); ++ assert!(base.matches_variant(&derived)); ++} ++ ++#[test] ++fn concurrent_registry_updates_keep_complete_variant_snapshots() { ++ let base = ModelSchema::builder("Base").build(); ++ let derived = ModelSchema::builder("Derived").build(); ++ std::thread::scope(|scope| { ++ scope.spawn(|| { ++ for index in 0..4096 { ++ base.set_variants(if index % 2 == 0 { ++ Vec::new() ++ } else { ++ vec![Arc::clone(&derived)] ++ }); ++ } ++ base.set_variants(vec![Arc::clone(&derived)]); ++ }); ++ for _ in 0..4 { ++ scope.spawn(|| { ++ for _ in 0..4096 { ++ // These calls can observe different registry revisions. ++ // Each populated snapshot must contain the original Arc. ++ let _ = base.has_variants(); ++ let variants = base.variants(); ++ assert!(variants.len() <= 1); ++ for variant in variants { ++ assert!(Arc::ptr_eq(&variant, &derived)); ++ } ++ if let Some(variant) = base.find_variant(b"Derived") { ++ assert!(Arc::ptr_eq(&variant, &derived)); ++ } ++ } ++ }); ++ } ++ }); ++ assert!(base.has_variants()); ++ assert!(Arc::ptr_eq(&base.variants()[0], &derived)); ++ base.set_variants(Vec::new()); ++ assert!(!base.has_variants()); ++ assert!(base.variants().is_empty()); ++} diff --git a/research/runtime-followup-experiments-2026-10-03.md b/research/runtime-followup-experiments-2026-10-03.md index 5103745..cefea08 100644 --- a/research/runtime-followup-experiments-2026-10-03.md +++ b/research/runtime-followup-experiments-2026-10-03.md @@ -90,8 +90,15 @@ measurement) gives this complete binary tradeoff: All three pairs improved reads and slowed writes. Serializer source is unchanged, but that does not prove unchanged binary performance. Keep the entire tradeoff; -do not publish only the favorable reads. A combined registry/attribute prototype -is pending, since separately measured changes need not combine additively. +do not publish only the favorable reads. The combined result below also retains its writer tradeoffs. + +## Combined registry and attribute guards (`7535885`) + +Three process pairs with the same long-run settings improved catalog reads by +3.53% (1,000 items) and 3.97% (10,000), and sensor reads by 4.08%. Writes changed +by -1.11%, +1.48% and +3.45%, respectively. These are whole-consumer binary +results; separate improvements do not combine predictably. This remains a +prototype with no full quality gate and is not selected for merging. ## Workspace artifact safeguard