Create reproducible performance and memory comparisons for representative offline workloads without using C# at Rust runtime.
Deliverables
Benchmark UUID/math, LLSD formats, packet codecs, asset/image/mesh decode, inventory/object updates, rendering, and client throughput with identical fixtures.
Run Rust and the pinned C# reference separately under documented hardware/toolchain conditions.
Profile and fix material regressions without weakening correctness or changing public behavior.
Validation
Benchmark harness and fixture hashes are committed.
Reports separate latency/throughput/allocation/memory and cold/warm effects.
Release criteria document accepted differences and evidence.
Prerequisite
All implementation and program milestones are complete with their fixed parity suites green.
Project constraints
The released implementation is entirely native Rust and must pass the explicit no-CLR/no-bridge artifact audit.
Do not weaken API coverage or semantic parity to satisfy hardening, performance, or packaging goals.
Preserve reproducible evidence, update release documentation, and keep all default/live destructive boundaries explicit.
## Objective
Create reproducible performance and memory comparisons for representative offline workloads without using C# at Rust runtime.
## Deliverables
- Benchmark UUID/math, LLSD formats, packet codecs, asset/image/mesh decode, inventory/object updates, rendering, and client throughput with identical fixtures.
- Run Rust and the pinned C# reference separately under documented hardware/toolchain conditions.
- Profile and fix material regressions without weakening correctness or changing public behavior.
## Validation
- Benchmark harness and fixture hashes are committed.
- Reports separate latency/throughput/allocation/memory and cold/warm effects.
- Release criteria document accepted differences and evidence.
## Prerequisite
All implementation and program milestones are complete with their fixed parity suites green.
## Project constraints
- The released implementation is entirely native Rust and must pass the explicit no-CLR/no-bridge artifact audit.
- Do not weaken API coverage or semantic parity to satisfy hardening, performance, or packaging goals.
- Preserve reproducible evidence, update release documentation, and keep all default/live destructive boundaries explicit.
hugo
added this to the 12 - Hardening and release milestone 2026-08-08 08:26:27 +00:00
Added separate native Rust and pinned C# Release runners for 14 offline workloads covering UUID/math, five LLSD formats, packet codecs, asset/TGA/mesh decode, inventory/object updates, rendering, and client throughput.
Added deterministic shared fixtures with SHA-256 manifests, one-cold/seven-warm evidence, environment/toolchain metadata, latency, throughput, allocation bytes/count where supported, and retained memory.
Added executable release criteria and an audit that recomputes comparisons, rejects stale/tampered evidence and incomplete workload sets, and requires reviewed exceptions for material latency regressions.
Profiled and fixed root inventory updates (about 22.6x to 1.28x latency ratio) and common-layout borrowed TGA decode (about 3.4x to 0.88x) without weakening behavior.
Added an ubuntu-latest Gitea workflow, provenance tracking, full reproduction documentation, and committed reports against C# commit 2aa70bb68513b39795da5d13c88f31b86e85a3ba.
cargo test -p metacrate-performance --profile benchmark: 3 passed, 0 ignored
strict issue-scoped Clippy and rustfmt passed
performance audit: 14 workloads accepted with fixture hashes verified
dependency, provenance, and release-matrix audits passed
pinned C# runner built and executed separately in Release net8.0
native artifact inspection found no CLR, Mono, hostfxr, or managed bridge dependency
This benchmark is intentionally offline: it does not read .env, contact any grid, or silently skip tests.
Implemented and pushed in commit 738fe39.
Highlights:
- Added separate native Rust and pinned C# Release runners for 14 offline workloads covering UUID/math, five LLSD formats, packet codecs, asset/TGA/mesh decode, inventory/object updates, rendering, and client throughput.
- Added deterministic shared fixtures with SHA-256 manifests, one-cold/seven-warm evidence, environment/toolchain metadata, latency, throughput, allocation bytes/count where supported, and retained memory.
- Added executable release criteria and an audit that recomputes comparisons, rejects stale/tampered evidence and incomplete workload sets, and requires reviewed exceptions for material latency regressions.
- Profiled and fixed root inventory updates (about 22.6x to 1.28x latency ratio) and common-layout borrowed TGA decode (about 3.4x to 0.88x) without weakening behavior.
- Added an ubuntu-latest Gitea workflow, provenance tracking, full reproduction documentation, and committed reports against C# commit 2aa70bb68513b39795da5d13c88f31b86e85a3ba.
Validation on Rust 1.97.1:
- cargo test -p libremetaverse --test performance_regressions --profile benchmark: 2 passed, 0 ignored
- cargo test -p metacrate-performance --profile benchmark: 3 passed, 0 ignored
- strict issue-scoped Clippy and rustfmt passed
- performance audit: 14 workloads accepted with fixture hashes verified
- dependency, provenance, and release-matrix audits passed
- pinned C# runner built and executed separately in Release net8.0
- native artifact inspection found no CLR, Mono, hostfxr, or managed bridge dependency
This benchmark is intentionally offline: it does not read .env, contact any grid, or silently skip tests.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Create reproducible performance and memory comparisons for representative offline workloads without using C# at Rust runtime.
Deliverables
Validation
Prerequisite
All implementation and program milestones are complete with their fixed parity suites green.
Project constraints
Implemented and pushed in commit
738fe39.Highlights:
Validation on Rust 1.97.1:
This benchmark is intentionally offline: it does not read .env, contact any grid, or silently skip tests.