Runtime

TinyRustLM Privacy-Preserving Diagnostics and Reproducible Performance Laboratory

Report summary

Research resolution. The uploaded brief resolves the formerly unspecified research topic: this report addresses the diagnostics, benchmarking, and release-evidence system for TinyRustLM rather than the earlier placeholder topic concerning remote work. The analysis assumes local browser WebAssembly i

Status
Research archive item
Category
Runtime
Length
8,134 words
Reading time
37 minutes
Report type
evaluation

Key topics

  • Runtime
  • AI
  • Rust
  • Privacy
  • Semantic Systems
  • Research Archive
  • Strategy
  • Audit

Research provenance

Archive status
Research archive item
Content identity
sha256:5709aafdd3cfbf58f9b7a5e877023ac8f57c5ca3519c45b771394a3054132c42

For citation, use the report title and canonical URL. Archival presence does not establish authorship or promote report statements into portfolio evidence.

Source availability: 44 citation markers in the source export have no recoverable source links. Those markers are omitted from this reader; any supplied bibliography and ordinary links remain. Check the original sources before relying on the cited claims.

This page renders the archived Markdown as safe, formatted HTML. It is background research and does not become a portfolio claim without evidence review.

Full report

On this page

Executive measurement and privacy recommendation

Research resolution. The uploaded brief resolves the formerly unspecified research topic: this report addresses the diagnostics, benchmarking, and release-evidence system for TinyRustLM rather than the earlier placeholder topic concerning remote work. The analysis assumes local browser WebAssembly inference, an optional native companion, optional WebGPU, no project-server receipt of prompts or model bytes, and no access during this research to TinyRustLM’s private code, models, telemetry, profiles, test receipts, or execution hardware.

The recommended system is a local-first, receipt-producing performance laboratory, not a conventional telemetry pipeline. Full traces remain on the user’s machine. Public or support-facing artifacts are generated only through an explicit export action that applies schema validation, deterministic redaction, path normalization, identifier re-keying, bounded-field enforcement, and secret scanning.

flowchart LR
    A[Browser or native operation] --> B[Versioned local event recorder]
    B --> C[In-memory bounded trace]
    C --> D[Local benchmark and quality gates]
    C --> E[User-requested diagnostic export]
    E --> F[Deterministic redaction]
    F --> G[Secret and policy scan]
    G -->|Pass| H[Bounded support bundle]
    G -->|Fail| I[Export rejected locally]
    D --> J[Signed or hashed release receipt]
    H --> K[Optional user-mediated sharing]
    J --> K

The core recommendation has eight consequences.

DecisionRequired implementation behavior
One schemaReplace all unpublished or unversioned logging with one event schema and one receipt family. Do not preserve legacy compatibility.
Local detail, bounded exportStore detailed traces locally; export only allowlisted fields, coarse hardware evidence classes, hashes, bounded counts, status, and error codes.
Phase separationMeasure acquisition, validation, load, activation, tokenization, prefill, first generation, first render, steady decode, long-context decode, cancellation, switching, free, and cleanup independently.
Evidence-qualified claimsEvery performance statement carries an evidence class; cross-compilation, inspection, emulation, browser execution, and physical native execution are never conflated.
No fabricated metricsUnsupported browser memory, GPU residency, free-memory, energy, or thermal metrics are recorded as unavailable, with a reason code.
Quality-coupled promotionA candidate that is faster but exceeds numerical, output, semantic, privacy, cancellation, or reliability budgets fails promotion.
Distribution-first reportingReport medians, quantiles, confidence intervals, paired effect sizes, and failure rates. Never promote from one favorable run.
Preregistered comparisonFreeze hypotheses, identities, endpoints, sample-size logic, run order, exclusions, and stop conditions before examining comparative results.

Web timing must be based on monotonic timing domains. High Resolution Time defines a time origin and a current-time mechanism intended not to be affected by wall-clock adjustments; Performance Timeline and User Timing provide the observation and application-marker mechanisms around that clock. Browser timing precision may be reduced for security and privacy, so the observed resolution must be captured rather than assumed.

Evidence-label convention used below

LabelMeaning
PF — public factDirectly observable in an official specification, API document, or project document.
ES — externally sourcedFinding or method from a paper, standards organization, or external technical authority.
INF — inferenceConclusion derived from multiple facts but not directly stated by a source.
REC — recommendationProposed TinyRustLM design or policy.
ASM — assumptionNecessary assumption in the absence of private implementation evidence.
VERIFY — local verificationCannot be established without TinyRustLM code, models, traces, or physical execution.

The initial deliverable should be treated as complete when TinyRustLM can produce, for one admitted real model, a reproducible local trace, a privacy-safe bundle, a quality-coupled comparative receipt, and physically executed results on at least one Windows x64, Linux x64, and Linux arm64 host plus current Chromium, Firefox, and WebKit lanes. The full release laboratory, including independent repeats and calibrated wall-power measurements, is a subsequent maturity level.

Claim taxonomy and evidence matrix

A claim is valid only when its subject, workload identity, metric definition, evidence class, environment, sample structure, and uncertainty are explicit. A benchmark artifact should reject claim text that exceeds the underlying evidence level.

Claim classMinimum admissible evidenceRequired wordingProhibited wording
Build-onlySuccessful target build; compiler, linker, target triple, flags, source revision, lockfile and artifact hash recorded“Builds for linux-arm64 with…”“Runs on arm64,” “arm64 supported,” or any speed/reliability claim
Static binary inspectionBuild-only evidence plus file format, architecture, imports, sections, symbols, hardening and dependency inspection“Binary inspection found an AArch64 ELF…”“Validated on arm64 hardware”
Emulated smokeArtifact executes under named emulator or translation layer; emulator version and host architecture recorded“Completed smoke test under QEMU…”“Physical arm64 result,” “native arm64 performance”
Real-browser executionNamed browser version, browser engine, OS, build, backend, workload and successful in-browser run“Executed in Chromium 1xx on…”“Cross-browser supported” unless all claimed engines were run
Named-host physical executionPhysical machine, evidence-safe host class, OS/kernel, CPU class, memory class, build hash, environment and repetitions“On physical host class H…”“Generally faster,” “all machines,” or fleet-wide inference
Independently repeated physical executionRepetition by a separate operator, lab, or independently provisioned machine with the same preregistration“Independently reproduced on…”“Universally reproducible”
Latency claimDefined start/end points, clock domain, cold/warm state, workload identity, repetitions, distribution and interval“Median prefill latency fell 8%, 95% paired CI…”“Latency improved” without phase or state
Throughput claimToken-count semantics, timed interval, output cap, sampling, backend, context and steady-state definition“Steady decode throughput…”Using end-to-end tokens/s as if it were engine-only throughput
Memory claimNamed memory boundary, metric source, peak sampling method and exclusions“Peak native private bytes…”“Uses X total memory” when only JS heap or allocation counters are known
Energy claimNamed measurement level, device/counter, coverage boundary, calibration, idle treatment, duration and thermal controls“Package energy by RAPL…” or “wall energy by calibrated meter…”“Browser inference uses X joules” from CPU utilization alone
Quality-neutral claimPerformance evidence plus all predeclared numerical, deterministic-output, semantic, privacy and reliability gates“Faster within the registered quality budgets”“No quality impact” based only on latency or a few examples
Release-wide claimEvery platform/backend in the claim has qualifying evidence, or the claim explicitly lists exceptions“Validated in the following lanes…”Generalization from x64 to arm64, CPU to GPU, or Chromium to other engines

REC. Claim generation should be mechanical. Each receipt should contain claim_capabilities, an array computed from evidence, not written by a benchmark operator. The public report generator must refuse adjectives such as “native,” “cross-platform,” “energy-efficient,” “memory-efficient,” or “quality-neutral” unless the receipt satisfies the corresponding predicate.

The WebGPU "timestamp-query" capability is optional. The specification notes that timestamp-query values are expressed in nanoseconds but that their determination is implementation-defined, and it discusses deliberate precision reduction because GPU timing can expose high-resolution information. Therefore, GPU timestamps support scoped GPU-pass duration claims only when the feature is present and calibrated; they do not establish CPU/GPU synchronization or whole-operation latency by themselves.

Platform evidence requirements

REC. The following are minimum promotion requirements, not estimates of statistical sufficiency for every workload. Pilot variance may require more runs.

LaneMinimum execution designRequired environment captureMissing metrics that are acceptableNon-negotiable limitation
Windows x64 native CPUThree clean process starts; at least ten randomized paired baseline/candidate repetitions per start and workloadWindows edition/build, CPU class, logical-core count, memory class, power mode, binary hash, runtime/backend, thread countPSS; standardized package energyDo not equate working set, private bytes, committed bytes, and allocator live bytes
Linux x64 native CPUThree process or machine-state blocks; ten paired repetitions per blockDistribution, kernel, glibc/musl, CPU governor, cgroup limits, NUMA, binary hash, perf permissionsRAPL on unsupported hardware; GPU residencyRecord whether RSS, PSS, private dirty and cgroup memory are available
Linux arm64 physical CPUAt least two physical arm64 host classes where release scope permits; three starts and ten pairs per hostSoC/CPU class, kernel, governor, thermal zones, PMU access, memory class, binary hashRAPL; standardized platform energyCross-builds, x64 results and QEMU results cannot substitute
Chromium CPU/WASMTwenty clean-profile sessions or thirty paired operation runs, whichever is largerExact browser build, OS, isolation status, WASM features, worker/thread configuration, cache stateWhole-browser memory on some configurations; direct energyChromium-only memory APIs cannot be generalized to Firefox or WebKit
Firefox CPU/WASMSame structure as ChromiumExact Firefox build, OS, profiler-disabled primary runs, supported entry typesUser-agent-specific memory; Long Tasks support differences“Browser result” must remain Firefox-specific
WebKit CPU/WASMSame structure as Chromium; use actual Safari/WebKit lane relevant to releaseWebKit/Safari build, OS, process model, cache stateUser-agent-specific memory; some observer entry typesWebKit result cannot be inferred from Chromium
SIMDPaired scalar/SIMD build or runtime feature comparison on every architecture claimedFeature detection result, compilation flags, dispatch pathInstruction-level countersSIMD availability does not prove the SIMD path executed; path receipt required
ThreadsPaired single-thread and configured-thread runs; cross-origin isolation and worker count recordedCOOP/COEP state, worker pool, logical cores, affinity policyExact per-worker memory in browserReport total throughput and responsiveness; do not report throughput alone
WebGPUFeature-qualified browser/GPU lane; timestamp-disabled primary result plus separately calibrated timestamp resultAdapter class, browser, OS, backend, requested limits/features, shader/pipeline cache stateFree GPU memory, physical residency, whole-device energyNever infer available VRAM or global GPU utilization from allocated buffer sizes

Current browser memory interfaces are uneven. performance.memory is non-standard and Chromium-specific. measureUserAgentSpecificMemory() is experimental, requires a secure cross-origin-isolated context, and its values are implementation-dependent and unsuitable for comparisons across browser families or even unqualified browser-version changes.

Firefox’s official profiler supports thread and allocation analysis, while WebKit’s Timelines tooling can organize work by frame and task. Chrome’s Performance panel records runtime activity, frame behavior, CPU work and long tasks. These tools are diagnostic corroboration lanes; they should not remain attached during primary promotion measurements unless their overhead has been separately quantified.

Versioned events, traces, clocks, and performance metrics

REC. Adopt trl.diag.event/1.0.0 as the sole event envelope. JSON is suitable for exchange and diagnostics, but the in-memory recorder may use a compact binary representation. Integer nanoseconds should be serialized as decimal strings when a consumer cannot safely represent 64-bit integers.

{
  "schema_version": "trl.diag.event/1.0.0",
  "event_id": "random-per-run-128-bit-id",
  "operation_id": "random-per-run-128-bit-id",
  "parent_id": "random-per-run-128-bit-id-or-null",

  "event_kind": "span_end",
  "phase": "decode_step",

  "clock": {
    "domain": "browser-performance",
    "origin_id": "random-per-realm-id",
    "monotonic_ns": "18429374000",
    "resolution_ns": "100000",
    "reduced_precision": true,
    "sync_uncertainty_ns": null,
    "discontinuity_epoch": 0
  },
  "duration_ns": "19230000",

  "counts": {
    "bytes_in": 0,
    "bytes_out": 0,
    "bytes_allocated": 4194304,
    "bytes_freed": 0,
    "input_tokens": 0,
    "output_tokens": 1
  },

  "identity": {
    "model_composition_id": "sha256:...",
    "tokenizer_id": "sha256:...",
    "runtime": "tinyrustlm-wasm",
    "runtime_version": "semver-or-revision",
    "backend": "wasm-simd-threads",
    "build_id": "sha256:...",
    "workload_id": "private-local-id"
  },

  "status": "ok",
  "error_code": null,
  "cancelled": false,
  "cancellation_stage": null,

  "optional": {
    "thread_class": "decode-worker",
    "memory_snapshot_id": null,
    "gpu_scope_id": null,
    "quality_receipt_id": "sha256:..."
  }
}

Schema rules and redaction classes

Field groupRuleExport class
Schema, phase, event kind, statusClosed enums; unknown values fail schema validationPublic-safe
Event/operation/parent IDsRandom, scoped to one run; re-keyed during export; no UUID derived from device, user, path or wall timePublic-safe after re-keying
Monotonic timestamp and durationRelative monotonic values; exported timestamps shifted so the first event is zeroPublic-safe after normalization
CountsNon-negative bounded integers; exact counts may be bucketed where they expose private workload lengthConditional
Model/composition hashExact content-derived hash remains local when it identifies a private model; public release composition IDs may be exportedConditional
Tokenizer/runtime/backend/buildAllowlisted release identities and hashesPublic-safe
Workload IDExact prompt hash, token hash, or private fixture identity remains local; export a registered workload-class IDLocal-sensitive
Error codeBounded enum such as MODEL_HASH_MISMATCH, never raw exception text by defaultPublic-safe
Optional paths, URLs, stack stringsProhibited from the event envelope; local attachments require separate redactionForbidden by default
Prompt, output, token IDs, model bytes, credentialsMust never enter diagnostic events, support summaries, or receiptsForbidden

REC. Permit local-only encrypted attachments for authorized quality investigations, but keep them outside the diagnostics schema and outside normal bundle creation. This prevents an accidental schema evolution from turning payload material into telemetry.

Operation trace contract

Every operation is a parent span with explicit child phases. An operation is not complete until its terminal status and cleanup disposition are recorded.

OperationRequired phase boundaries and non-payload evidence
Model acquisitionRequest accepted; cache lookup; peer/network/file source selected; transfer first byte; transfer complete; persisted; byte counts; source class, not URL
P2P importSession accepted; handshake result; chunk receipt counts; verification; assembly; persistence; bounded peer error class, never invitation URL or peer identifier
File validationFile opened; length checked; container parsed; section/table validation; model metadata class; validation result
HashingHash algorithm/version; bytes hashed; start/end; expected-hash comparison; never bytes or path
AllocationAllocator domain; requested bytes; granted bytes; failure code; live and peak deltas
ActivationComposition resolved; backend selected; tensors mapped/uploaded; runtime ready
Tokenizer initializationTokenizer identity; vocabulary/config validation; initialization time; no vocabulary contents
Context compilationTemplate identity; context token count; cache lookup; compilation or packing duration
PrefillInput token count; batch/chunk configuration; backend time; wall time; cache reuse class
Decode stepStep ordinal or bounded aggregate range; one output-token count; engine duration; no token ID/value
SamplingSampling profile ID; candidate-count bucket if useful; duration; random-seed policy, not necessarily public seed
UI renderOutput-event receipt; scheduling; DOM commit; first paint proxy; batch size; duplicate-event flag
Memory retrievalStore class; retrieval count; byte/token-count bounds; trust-policy result; no retrieved text
Tool callTool class; state transitions; bounded result status; timing; no arguments, credentials, URL query or output
Model switchSwitch requested; old decode quiesced; old resources released/retained; new model loaded/activated; UI ready
CancellationUser/system cancellation requested; request observed; decode stopped; output emission stopped; cleanup complete
FreeObject class and accounted byte count; logical free; allocator-visible free; OS-visible observation if available
OPFS deletionLogical entry selected by opaque local ID; delete requested; result; post-delete enumeration; no private path
Process restartRestart intent; clean-shutdown result; new process/session ID; state restoration class
CleanupWorker termination; buffer unmap/destroy; cache policy; final leak snapshot; terminal status

Performance Timeline exposes PerformanceObserver so applications can receive new and, for supported entry types, buffered entries without polling. User Timing measures are available in workers and can carry structured detail, but TinyRustLM should place only allowlisted non-payload metadata in that detail.

Clock semantics

ClockPermitted useForbidden comparison or caveat
Wall clock / UTCHuman-readable bundle creation time, build provenance, correlation with external test orchestrationNever use for phase duration; it can be adjusted
Browser performance.now()Duration within one browser time-origin domainDo not directly subtract values from different realms without correlation
Browser timeOrigin + now()Approximate cross-realm alignment when support and observed precision permitRecord synchronization uncertainty and browser precision reduction
Worker clockWorker-local phase durationsMain-thread/worker ordering requires a handshake or message-correlation interval
Native high-resolution monotonic clockNative phase and process-local durationRaw ticks are not wall time; frequency and clock type must be recorded
CPU timeUser/kernel processor consumption and utilization analysisNot latency; parallel execution can produce CPU time greater than elapsed time
GPU timestamp queryDuration between timestamp positions in a qualifying GPU queue/passNot directly comparable with CPU timestamps without explicit calibration
Cross-process correlationParent-child handshake with repeated timestamp exchanges and uncertainty intervalDo not report a total finer than the synchronization error
Wall-power meter clockEnergy integration and external run windowsRequires start/stop synchronization error in the receipt

Windows documents QueryPerformanceCounter as the primary native API for high-resolution interval measurements and distinguishes it from UTC-synchronized wall-clock APIs. Linux monotonic timekeeping similarly distinguishes CLOCK_MONOTONIC-style elapsed-time sources from realtime clocks.

REC. Clock correlation algorithm. Perform at least nine ping-pong exchanges between producer and collector. For each exchange, calculate round-trip time and midpoint offset. Select the minimum-RTT observation as the offset estimate, retain half its RTT plus observed timer granularity as sync_uncertainty_ns, and repeat after backgrounding, process migration, suspend/resume, or a long benchmark. Do not merge event ordering across clock domains when uncertainty intervals overlap.

REC. Discontinuity detection. Increment discontinuity_epoch and terminate or segment the run when any of these occur: a monotonic reading decreases; a delta exceeds a registered suspension threshold; worker correlation offset changes beyond its uncertainty budget; the browser process restarts; the GPU device is lost; or wall-to-monotonic correlation changes sharply. A run crossing discontinuity epochs cannot support one continuous latency claim.

Latency and throughput definitions

MetricStartEndRequired qualifiers
Cold acquisitionUser/system begins acquisitionValidated bytes available in designated storeCache-empty definition, source class, bytes
Warm acquisitionAcquisition requestedExisting artifact acceptedExact cache layer hit
Hash latencyFirst byte submitted to hashDigest finalized and comparedBytes and algorithm
Structural-validation latencyValidated-file openStructural checks completeFormat/version and checks performed
Load latencyRuntime begins reading admitted artifactRequired host representation presentStore/cache state
Activation latencyBackend activation beginsModel ready for context operationBackend and pipeline-cache state
Prompt-tokenization latencyPrivate prompt representation acceptedToken count and internal token sequence readyInput byte-count bucket and token count; no payload
Context-assembly latencyTemplate/context assembly startsFinal model input readyContext length, memory/retrieval classes
Prefill latencyFirst prefill work submittedDecode state readyInput tokens, prefix-cache state
Time to first generated tokenGeneration request acceptedFirst output token becomes internally finalIncludes or excludes queueing explicitly
Time to first rendered tokenGeneration request acceptedFirst visible committed render associated with the operationRender observer/proxy and frame state
Inter-token latencyOutput token i finalOutput token i+1 finalReport distribution after defined exclusions
Engine decode throughputFirst included steady-state step startsLast included step endsOutput tokens divided by engine-active time
User-visible throughputFirst rendered outputLast rendered output in intervalIncludes batching, message and render delay
Completion latencyGeneration request acceptedFinal output rendered and completion state committedOutput-token count
Cancellation responseCancellation input timestampNo further generation/output event can occurAlso report cleanup completion separately
Model-switch latencySwitch requestedNew model is ready and composer is usableOld/new residency policy
Cleanup latencyCompletion/cancel/switch cleanup startsRegistered resources released or retained by policyFinal memory observations

Define:

\[ \text{engine tokens/s} = \frac{N_{\text{included output tokens}}} {t_{\text{last decode end}}-t_{\text{first decode start}}-\text{registered pauses}} \]

\[ \text{visible tokens/s} = \frac{N_{\text{rendered tokens}}} {t_{\text{last visible commit}}-t_{\text{first visible commit}}} \]

Do not remove sampling, garbage collection, scheduling, or rendering time from an end-to-end metric. If an engine-only number excludes these costs, report a second user-visible number.

Responsiveness measurements

The Long Tasks API is designed to surface UI-thread work that monopolizes the thread for an extended period, while Event Timing exposes input-processing and next-render timing for qualifying interactions. Event Timing durations are intentionally coarsened and have support-specific thresholds, so capability detection and observed granularity belong in each receipt.

REC. Record the following without capturing UI text:

AreaMetric
Main threadLong-task count; total long-task time; p95/p99 task duration; longest task; long animation frames where supported
Event loopScheduled-probe delay distribution in a dedicated low-rate probe; observer callback backlog
InputComposer key/input delay; send/cancel interaction duration; scroll interaction duration where supported
RenderingRender-commit cadence; generated-to-rendered delay; frame duration or dropped-frame proxy where supportable
Worker communicationSend-to-receive latency; queue depth; oldest-message age; dropped/duplicate operation events
Composer stabilityFocus loss count; disabled-time duration; unexpected layout-shift proxy; input-state preservation
CancellationInput-to-observed; input-to-decode-stop; input-to-render-stop; input-to-cleanup
BackgroundingVisibility transition; background duration; throttling/discontinuity status; recovery latency
ReliabilityDuplicate token/output event count; out-of-order event count; terminal-event multiplicity

Primary responsiveness gates should include: no composer input loss, no post-cancel output, no duplicate output events, no permanent scroll lock, bounded long-task regression, and no substantial deterioration in input-tail latency. Performance work that increases tokens per second while freezing the chat surface fails.

Memory, energy, state control, and instrumentation overhead

Memory-accounting model

No single browser or operating-system metric represents “TinyRustLM memory.” The laboratory should expose several non-overlapping accounting views and explicitly identify nested or unobservable components.

LayerComponentPreferred measurementBrowser availability
ArtifactDownloaded or imported artifactValidated logical byte lengthAvailable
ArtifactPhysical store usageStore/API-reported usage if attributable; otherwise logical bytes onlyOften partial
CompositionLogical model compositionSum of distinct logical component lengths, with deduplication manifestAvailable from application metadata
InputHost chunks and transient readsApplication-owned buffer ledgerAvailable if instrumented
JavaScriptJS objects and buffersOwned-buffer ledger; browser heap estimate only as corroborationPartial
WASMReserved linear-memory address spaceRuntime memory-page limits and growth eventsUsually available
WASMCommitted/accessible linear memoryCurrent pages × 64 KiB, labeled as linear-memory extentAvailable
AllocatorLive requested bytesInstrumented allocation/deallocation ledgerRequires implementation
AllocatorPeak live bytesMaximum ledger sumRequires implementation
ModelTensor storageTensor registry by ownership domainRequires implementation
RuntimeActivation and temporary scratchAllocator tags or arena high-water marksRequires implementation
ContextKV/prefix cacheDimensions × element width plus allocator overhead where knownRequires implementation
WorkersWorker stacks/runtime overheadNative process tools or profiler attributionUsually unavailable to ordinary page code
Native processRSS/working setOS process metricsNative companion/lab only
Native processPrivate bytes/commitOS process metricsNative companion/lab only
Linux processPSS/private mappings/proc/<pid>/smaps_rollup or equivalentNative/lab only
GPURequested buffer and texture bytesApplication registry from object creation/destructionAvailable if instrumented
GPUStaging/readback buffersApplication registryAvailable if instrumented
GPUDriver allocation, residency, free memoryVendor/OS tooling where authorizedUnavailable to ordinary WebGPU application
CachesHTTP, service worker, OPFS, compilation, shader cachesPer-cache logical state and controlled reset evidencePartial

Linux /proc documentation distinguishes virtual size, RSS, high-water RSS and related fields; smaps_rollup provides summed mapping information including RSS and proportional-set-size fields. These are process-level observations, not direct tensor or model-ownership measurements.

On Windows, GetProcessMemoryInfo returns process memory counters, while GetProcessTimes and QueryProcessCycleTime expose processor-time or cycle information rather than elapsed latency. The receipt must name the exact selected counter instead of relabeling it as total memory or wall time.

REC. Non-overlap formula.

Let application-owned host categories be disjoint:

\[ M_{\text{owned-host}}(t)= M_{\text{input}}(t)+ M_{\text{wasm-allocator-live}}(t)+ M_{\text{external-js-buffers}}(t)+ M_{\text{other-tagged}}(t) \]

Then:

\[ M_{\text{owned-host-peak}}=\max_t M_{\text{owned-host}}(t) \]

Do not add WASM committed pages to allocator live bytes if allocator live memory is contained within those pages. Instead report:

\[ M_{\text{WASM-slack}}(t) = M_{\text{WASM-linear-extent}}(t) - M_{\text{tagged-live-in-WASM}}(t) \]

where the value is labeled an accounting difference, not necessarily reclaimable memory.

For GPU objects:

\[ M_{\text{GPU-known}}(t)= \sum_{\text{live buffers}} \text{declared size} + \sum_{\text{live textures}} \text{estimated logical footprint} \]

This is known requested allocation, not physical GPU-memory consumption, residency, available VRAM, or driver overhead.

Artifact and runtime memory should remain separate:

\[ F_{\text{deployment}} = B_{\text{persisted-artifact}} \quad\text{and}\quad M_{\text{runtime-peak}} \]

A combined “footprint” may be shown only as a visibly labeled sum of unlike storage and runtime concepts.

Energy and thermal evidence levels

LevelMethodClaim supportedMain limitations
E0 — unavailableBrowser-only execution with no authorized energy sourceNo energy claimCPU time/utilization is not joules
E1 — coarse system proxyBattery discharge or OS energy estimateDirectional within-machine observation over long runsBattery controller resolution, charging state, background load and conversion losses
E2 — component counterIntel RAPL, platform energy counter, GPU vendor counter, supported ARM platform counterNamed-domain energy on the same platformDomain coverage varies; counter accuracy and wraparound must be established
E3 — calibrated wall powerExternal true-RMS meter and synchronized run windowWhole-system wall energy for a named setupIncludes display, PSU and unrelated system consumption unless controlled
E4 — independent physical repeatE3 repeated by another setup/operatorIndependently reproduced named-setup resultStill not a universal hardware claim

Linux powercap exposes power zones and, where supported, Intel RAPL domains through sysfs. Linux’s power-supply class may expose energy, charge and battery properties, but it explicitly allows unavailable properties to be omitted and distinguishes energy from charge and percentage capacity. These interfaces support named-platform evidence, not cross-platform equivalence.

Arm PMUs expose performance events rather than universal joule counters. Counter availability varies by core and platform; Arm’s tooling can combine CPU, GPU, scheduler and hardware-counter observations when the target platform supports them. Therefore, generic PMU events may explain energy changes but cannot by themselves be labeled energy.

REC. Energy protocol.

\[ E_{\text{net}} = E_{\text{active-window}} - P_{\text{idle-matched}}\times T_{\text{active-window}} \]

Report both gross and idle-subtracted energy. Idle subtraction is valid only when the idle run uses the same display state, browser/native process state, model residency policy, network state, power mode, background-service policy and thermal starting band.

The protocol should fix or record: meter model and calibration date; sampling frequency; voltage and meter range; synchronization uncertainty; screen brightness/state; network state; power plan/governor; fan/cooling policy; ambient temperature; initial package/device temperature; battery/AC state; frequency scaling policy; run duration; idle procedure; and post-run thermal state.

SPEC power rules are useful methodological references: they require controlled environmental conditions and, for compliant wall-power work, calibrated measurement devices with specified uncertainty. They should guide TinyRustLM’s method without implying that TinyRustLM results are SPEC-certified.

REC. Thermal controls. Begin a run only when the selected temperature signals are inside a preregistered band for a minimum stabilization interval. Reject a block if temperature drifts beyond the registered band, sustained frequency falls outside policy, thermal throttling is observed, or the candidate and baseline begin from materially different thermal conditions. Alternate baseline and candidate instead of running all baseline trials first.

Cold, warm, steady and restart states

StateRequired conditions
Cold acquisitionNo application artifact in HTTP cache, service-worker cache, Cache Storage or OPFS; source must transfer or import bytes
Warm artifact acquisitionArtifact is already present in the named cache/store, but no model runtime state is resident
Cold process/runtimeNew browser/native process; no workers, model objects, allocator arenas, compiled module instances, tensors or GPU device retained
Warm compiled runtimeRuntime/module compilation may be cached, but model tensors are not activated
Warm modelModel tensors/backend are active; no prior prompt KV/prefix state unless separately declared
Warm prefixExact registered prefix state is reusable; prefix identity and reuse length recorded
Steady decodeWarm-up exclusion complete; model active; predefined token range; no known compilation, pipeline creation or first-allocation events
Long-context steady decodeSame as steady decode with registered context band and KV-cache occupancy
Post-switch warmNew model is active following a switch; old model retention policy stated
Background-recoveryBrowser was backgrounded for registered duration and has returned; discontinuity/throttling status recorded
Cold machineMachine restarted or otherwise brought to a documented state; OS page cache and thermal state controlled as far as practical

Reset mapping

State elementPage reloadBrowser restartFresh profileMachine restart or privileged reset
Application JS/WASM objectsUsuallyYesYesYes
Worker poolUsuallyYesYesYes
Model residency/KV cacheUsuallyYesYesYes
OPFSNoNoYes or explicit deletionYes if profile removed
HTTP/service-worker cacheNot reliablyNot necessarilyUsuallyNot necessarily
WASM code cacheNot reliablyBrowser-dependentMore controlledMore controlled
OS page cacheNoNoNoRestart may still not be sufficient on every OS; explicit privileged procedure may be needed
Shader/pipeline cacheNot reliablyNot necessarilyMore controlledDriver-level persistence may remain
GPU clocks/thermal stateNoNoNoRequires stabilization, not merely restart
Allocator reusePage/process dependentYes for process allocatorYesYes

A receipt must therefore record the reset procedure, not merely the word “cold.”

Instrumentation-overhead calibration

REC. Calibrate the following modes independently:

ModeContentsProvisional admissible overhead
DisabledCompile-time or runtime fast path with recorder inactiveReference
Minimal countersOperation totals and terminal statuses onlyMedian ≤1%; p95 phase latency ≤2%
Full local traceEvery operation span and selected decode eventsMedian ≤3%; p95 ≤5%; no new responsiveness failure
Performance observersLong Task, Event Timing and other supported observersIncremental overhead measured; no assumption that it is free
GPU timestampsTimestamp-query instrumentation and readbackSeparate GPU and wall-time deltas; ≤3% target where feasible
Diagnostic exportSerialization, hashing, compression, redaction and scanningExcluded from primary operation window; separately reported

These thresholds are REC, not externally established constants. VERIFY must confirm they are attainable for TinyRustLM.

Use paired runs with identical workload and state, randomized instrumentation order, and separate effect estimates for latency, throughput, memory and long tasks. For production diagnostics, aggregate repetitive decode events into bounded windows, such as eight or sixteen steps, unless an explicit full-trace diagnostic session is enabled. Full per-step events are appropriate in fixture and laboratory modes, not as an always-on telemetry path.

The WebKit documentation explicitly notes that some timelines can affect inspected-page performance, and browser profiling tools generally change what is observed. This supports requiring profiler-on versus profiler-off calibration rather than treating profiler output as primary benchmark evidence.

Workloads, preregistration, statistics, and quality coupling

Workload identity contract

Each benchmark operation must bind to an immutable identity record:

workload_identity_version
model_release_or_private_local_id
model_composition_hash
quantization_and_numeric_tier
adapter_hashes_and_order
tokenizer_hash
chat_template_hash
private_exact_prompt_hash
private_prompt_token_sequence_hash
prompt_token_count
context_token_count_before_request
output_token_cap
sampling_algorithm_and_parameters
seed_or_seed_policy
prefix_and_kv_cache_state
artifact_cache_state
runtime_and_version
backend_and_feature_path
thread_count_and_worker_topology
browser_engine_and_exact_build
operating_system_and_build
build_artifact_hash
measurement_policy_hash
quality_policy_hash

The exact prompt hash and token-sequence hash remain in private local evidence. A public receipt substitutes a registered workload-class ID, token-count bucket or disclosed count, context band, and privacy-preserving fixture identity. Hashes should not be assumed anonymous: hashes of low-entropy prompts or private models may permit guessing, so public export should omit or key them unless the underlying object is already public.

Workload suite

Suite familyPurpose and required variants
Instrumentation fixturesTiny deterministic tokenizer/model fixture; known byte counts; exact token sequence; forced allocation/free; cancellation at known step; duplicate-event injection
Admitted real modelOne release-intended model/composition exercising genuine load, prefill and decode paths
Short prefillSmall context and short output; cold and warm
Long prefillRegistered context bands near realistic and stress ranges
Repeated turnsExact prefix reuse enabled and disabled; identical prior-turn structure
Cache miss/hitArtifact, compile, pipeline, prefix and model-residency states declared separately
Casual chatOrdinary conversational request with private prompt body and fixed evaluation rubric
AmbiguityPrompt requiring clarification rather than unsupported assumption
Practical planningMulti-constraint planning with stable expected invariants
Source conflictInputs containing conflicting evidence; evaluation checks qualification and conflict handling
Current preferenceRequest whose answer depends on a current or user-specific preference; checks uncertainty behavior
Untrusted memoryRetrieved memory contains instruction-like or conflicting content; checks trust boundaries
Structured JSONSchema-valid output, exact field constraints and escaping
CodeSyntax or compilation checks where authorized; output remains private
CancellationCancel before prefill, during prefill, early decode, steady decode and long-context decode
SwitchingResident-to-resident, resident-to-cold and cancellation-during-switch
Memory pressureIncreasing context/output/model-switch cycles until a registered safe threshold
Cold restartBrowser/native restart followed by acquisition/load/activation
Offline modeRequired artifacts present and absent; no unintended network dependency
Reliability soakRepeated turns and switches with leak, duplicate-output and cleanup checks

A workload is inadmissible when its identity cannot be reproduced privately, its quality oracle is undefined, it relies on mutable remote content without a snapshot, or it would expose payload material in a public receipt.

Preregistration contract

ItemMust be frozen before comparative results
HypothesisDirectional or equivalence hypothesis and affected mechanism
Baseline/candidateSource revision, lockfile, build flags, artifact hash, runtime/backend configuration
Primary endpointOne principal metric per experiment, such as paired p95 TTFT ratio
Secondary endpointsOther latency quantiles, throughput, memory, responsiveness, energy and reliability
Practical thresholdMinimum worthwhile improvement and maximum tolerated regression
Sample-size methodPilot variance source, target power/precision, clustering level and permitted reassessment rule
Warm-upExact warm-up procedure and exclusion boundary
StateCold/warm/cache/thermal definitions and reset process
RandomizationSeeded run-order generator and blocking factors
Outlier policyMechanical rule based on infrastructure invalidity, not observed favorability
ExclusionsCrash, device loss, clock discontinuity, thermal drift, identity mismatch and other registered causes
Quality budgetsNumerical, deterministic-output, semantic, privacy, cancellation and reliability margins
Hardware matrixRequired physical hosts, browsers, CPU/GPU paths and allowed missing metrics
Stop rulesSafety, privacy, instrumentation and instability thresholds
AnalysisEstimator, confidence level, bootstrap/blocking strategy and multiplicity correction

The preregistration and its hash should be written before candidate labels are unblinded in the comparison report.

Statistical treatment

Performance observations are hierarchically dependent: tokens occur within turns, turns within processes or browser profiles, and processes within physical hosts. Treating every token as an independent replicate would create falsely narrow intervals.

REC. Experimental unit. For release decisions, the principal replicate should usually be a paired operation or session within a randomized block, not an individual token. Token-level data may characterize inter-token distributions but should not inflate the number of independent release replicates.

REC. Run structure. Use randomized AB/BA pairs within host-state blocks. For expensive energy tests, use longer alternating blocks and independently measured idle windows. Preserve all valid registered runs.

REC. Warm-up. Use fixture and pilot evidence to define the warm-up boundary before comparative analysis. Report startup separately rather than discarding it when startup matters to users.

REC. Autocorrelation. Examine run-order plots and autocorrelation of paired residuals. When dependence remains, use block bootstrap or cluster-level aggregation. Do not randomly reshuffle dependent token observations as though they were independent.

REC. Heavy tails and heteroscedasticity. Report median, p90, p95 and p99 when sample size supports them; show empirical distributions; estimate paired ratios or differences with bootstrap intervals; and avoid relying only on an arithmetic mean. Use quantile uncertainty or hierarchical bootstrap for tail decisions.

REC. Multiple comparisons. Declare one primary endpoint. Apply Holm or another preregistered family-wise procedure to confirmatory secondary tests. Exploratory findings remain labeled exploratory.

REC. Effect size. Report both relative and absolute change:

\[ \Delta_{\text{abs}} = M_C-M_B \]

\[ \Delta_{\text{rel}} = \frac{M_C-M_B}{M_B} \]

For latency, a negative value is an improvement; the report should state that direction explicitly. Include confidence intervals and the practical-regression threshold.

Criterion is a useful Rust benchmarking reference but must not be assumed to be TinyRustLM’s adopted harness. Its documented defaults include warm-up, repeated measurement, bootstrap resampling, confidence and significance parameters, illustrating why harness configuration belongs in receipts rather than remaining implicit.

Systems-benchmarking research warns that nondeterminism, insufficient repetition and favorable-run selection can produce misleading conclusions. Kalibera and Jones emphasize accounting for uncertainty at multiple execution levels, while Georges, Buytaert and Eeckhout show why best-run or otherwise statistically weak methodologies can reverse conclusions in managed-runtime experiments. The exact runtime differs, but the methodological risks apply to browser, WASM, allocator, GPU and process-state variability.

Promotion and regression decisions

REC. Provisional default budgets

GateDefault promotion rule
Deterministic fixture outputExact authorized token-sequence and output-hash match
Numerical fixtureCandidate remains inside a preregistered absolute/relative tolerance envelope for the numeric tier; no new NaN/Inf
Ordinary semantic suiteLower confidence bound of candidate-minus-baseline pass rate no worse than −1 percentage point, subject to adequate sample size
Critical conversational invariantsZero newly introduced failures for safety, instruction hierarchy, cancellation, untrusted-memory handling and structured-output validity
Runtime error rateNo new crash/hang/device-loss class; non-inferiority margin no larger than 0.1 percentage point for recoverable errors
Duplicate/post-cancel outputZero occurrences in valid promotion runs
Cancellation latencyNo more than 10% p95 regression unless explicitly traded off and approved; no post-cancel generation
MemoryNo unexplained monotonic growth across soak cycles; peak within registered platform budget
PrivacyZero forbidden-field, secret-scan or redaction failures
Instrumentation integrityZero invalid event ordering, negative duration, orphan terminal span or identity mismatch

These values are starting recommendations. VERIFY must calibrate them to TinyRustLM’s quality suite and release risk. A statistically detectable improvement below the minimum worthwhile effect does not justify complexity; a statistically uncertain regression whose interval crosses the registered failure threshold does not pass.

Every comparison stores a private quality receipt containing the model identity, private output hash, authorized token-sequence hash where permitted, numeric-tier result, semantic-test result, error counts and cancellation result. Public receipts retain only pass/fail statuses, policy hashes, bounded aggregate counts and approved model/composition identity.

Privacy-safe bundles, dashboards, stop rules, and implementation plan

Local diagnostics and export policy

REC. Full traces are local, ephemeral by default and user-controlled. There is no implicit upload. Enabling diagnostics changes local retention only; sharing requires a separate explicit action showing the bundle contents and omission report.

Privacy engineering should follow data minimization and purpose limitation: collect only data required to diagnose or substantiate the declared claim, keep payloads outside the observability channel, bound high-cardinality fields, and make retention and sharing explicit. NIST’s Privacy Framework provides a general risk-management structure rather than a TinyRustLM-specific telemetry design, so it should be used as a governance reference, not as proof of compliance.

Allowed support-summary fields

CategoryExamples
Schema and receiptSchema versions, policy hashes, receipt IDs
Software identityBuild hash, release version, runtime/backend, browser/OS versions
Model identityApproved public composition ID or keyed support hash
Workload classRegistered fixture/suite ID, context/output-count buckets
EvidenceEvidence class, physical/emulated flag, run count
MeasurementsBounded phase distributions, byte/token counts, known memory categories
StatusPass/fail, bounded error code, cancellation and cleanup state
HardwareCoarse CPU/GPU/memory class only when necessary and sufficiently non-unique
OmissionsExplicit list of unavailable or redacted metrics

Forbidden content

Prompts, output text, token IDs or token strings, raw model bytes, model excerpts, credentials, cookies, authorization headers, invitation/enrollment URLs, query strings, private absolute paths, browser-storage dumps, hidden tenant/account IDs, persistent device IDs, MAC addresses, serial numbers, exact stable hardware fingerprints, unrestricted exception text, environment-variable dumps, or arbitrary profiler metadata.

Diagnostic-bundle format

tinyrustlm-diagnostic-bundle/
  manifest.json
  schema/
    event-schema.json
    receipt-schema.json
    redaction-policy.json
  receipts/
    benchmark-receipt.json
    quality-receipt-public.json
    platform-evidence.json
  traces/
    bounded-events.jsonl.zst
  tests/
    summary.json
  tools/
    versions.json
  redaction/
    report.json
    secret-scan-report.json
  notes/
    user-note.txt                 # optional, user-authored and separately warned
  SHA256SUMS

manifest.json should include bundle schema version, creation-tool version, normalized creation date, file list, file lengths, SHA-256 hashes, evidence class, retention warning and explicit forbidden-content declaration. The manifest must not contain the machine username or original filesystem roots.

REC. Bounded trace rules

LimitBehavior
Event countHard cap; use deterministic head/tail plus registered reservoir or phase-stratified sampling
String lengthFixed maximum; enums preferred
CardinalityReject arbitrary keys and unknown attribute names
Numeric rangesValidate counts/durations; retain overflow status rather than wrapping
Error detailsMap internal errors to bounded codes; optional locally retained detail excluded
TimestampsShift to zero; omit exact wall time except coarse bundle creation metadata
IDsRe-key all operation/event IDs during export
HardwareMap to an approved class taxonomy; omit when uniqueness threshold is not met

Redaction and secret scanning

Export proceeds through these mandatory stages:

  1. Parse against the exact schema; reject unknown fields.
  2. Delete fields classified as forbidden or local-only.
  3. Normalize separators and redact absolute paths, usernames and profile directories.
  4. Strip URL query, fragment, user-info and tokens; preferably omit URLs entirely.
  5. Re-key event and operation identifiers.
  6. Apply count bucketing and hardware-class coarsening.
  7. Scan canonical decoded content and compressed/uncompressed members for credentials, cookies, private keys, bearer tokens, known invitation patterns, prompt/output markers and high-entropy suspicious strings.
  8. Reparse the completed bundle and compare it to the allowlist.
  9. Emit a redaction report containing rule IDs and counts, not the redacted values.
  10. Reject export on scan failure, malformed archive, unknown schema, hash mismatch or nondeterministic redaction result.

Run the redactor twice on the same canonical input and require byte-identical output except for an explicitly normalized bundle creation field. This makes the privacy transformation testable and reproducible.

Dashboard and release receipt

The live local dashboard should show only operational metadata:

Display areaContent
Current operationAcquisition, validation, load, prefill, decode, cancellation, switch or cleanup
Elapsed timeMonotonic operation elapsed time
IdentityApproved model/composition label, runtime and backend
ProgressValidated bytes, input tokens processed, output tokens completed, or declared indeterminate state
ThroughputDisplay only after the steady-state validity predicate becomes true
MemoryKnown owned-host peak, WASM extent, known GPU allocation; unavailable fields visibly labeled
CancellationRequested, observed, generation stopped, rendering stopped, cleanup complete
BlockersThermal, memory, device loss, quality mismatch, privacy scan or instrumentation status
EvidenceBuild, emulated, browser, physical, independent-repeat class
ReceiptCurrent run/receipt hash and preregistration hash

REC. Stop or reject the run when:

TriggerRequired action
Thermal drift or throttlingStop block; cool and restart according to preregistration
Memory safety limit or sustained unexplained growthCancel safely; collect local bounded diagnostics; reject
Output/token/numeric mismatchStop candidate promotion block; preserve private quality evidence
Crash, hang, repeated device loss or worker instabilityReject lane after registered retry threshold
Post-cancel or duplicate outputImmediate quality failure
Secret-scan or redaction failureDo not create shareable bundle
Clock discontinuitySegment or reject timing result
Event corruptionReject affected run; no repair by guessing
Wrong build/model/workload identityReject before analysis
Unsupported metric requestedRecord unavailable; never synthesize
Profiler or instrumentation exceeds overhead budgetReject instrumented evidence for primary claim

TDD backlog and clean logging replacement

Delivery sliceTests written firstImplementation outcome
Schema coreValid/invalid fixtures, enum closure, numeric bounds, unknown-field rejectionVersioned event and receipt schemas
RedactionGolden forbidden-value corpus, path/URL cases, archive recursion, deterministic-output testDeterministic export redactor
Secret scanningCredential/key/token fixtures, false-positive policy, compressed member testsLocal export gate
Event orderingMonotonicity, start/end pairing, parent existence, terminal-state uniquenessBounded recorder
Phase timersNested timing, cancellation, error and discontinuity casesBrowser/native span adapters
Byte/token accountingAllocation/free balance, overflow, deduplication and no-payload testsAccounting ledger
Browser adaptersFake clock, worker correlation, observer support detection, reduced precisionBrowser diagnostics layer
Native adaptersQPC/monotonic clock, Windows/Linux process metrics, missing-permission casesNative evidence layer
Memory adaptersWASM page growth, allocator tags, Linux/Windows samples, GPU object registryMulti-view memory model
Support bundleManifest hashes, tamper cases, size cap, user-note separationPortable bundle
Fixture benchmarkDeterministic model, known timing hooks, cancellation and duplicate injectionPreregistered harness
One real modelModel identity, quality hash and phase coverageEnd-to-end admitted workload
Physical lanesHost receipt, binary hash, environment and randomized blocksRelease evidence
Energy laneMeter/counter synchronization, idle subtraction, wraparound and thermal rejectionE2/E3 evidence
Promotion gatesEffect interval, practical threshold, quality and privacy joint decisionCI release gate
Logging deletionStatic scans and runtime tests proving no old logger or network telemetry path remainsClean replacement

All unversioned diagnostic formats, arbitrary console serialization of internal objects, payload-bearing logs, hidden analytics hooks and implicit network telemetry paths should be deleted rather than bridged. CI should scan for removed event names, forbidden payload fields, generic “log context” maps, unrestricted URL/path emission and unauthorized network destinations.

Delivery timeline and estimated effort

The dates below are REC planning assumptions beginning Monday, August 3, 2026. Hardware procurement, browser automation maturity and access to release-intended models can extend the schedule.

gantt
    title TinyRustLM diagnostics and performance laboratory
    dateFormat  YYYY-MM-DD
    axisFormat  %b %d

    section Foundations
    Schema, enums and claim predicates           :a1, 2026-08-03, 8d
    Redaction and secret-scan TDD                :a2, 2026-08-03, 12d
    Delete unsafe and unversioned logging        :a3, after a1, 6d

    section Instrumentation
    Browser clock and trace adapters             :b1, 2026-08-11, 12d
    Native Windows and Linux adapters            :b2, 2026-08-11, 15d
    Memory and GPU object accounting             :b3, 2026-08-17, 15d

    section Benchmarking
    Deterministic fixture harness                :c1, 2026-08-17, 10d
    One admitted real-model lane                 :c2, after c1, 10d
    Preregistration and statistical pipeline     :c3, 2026-08-24, 12d
    Instrumentation-overhead calibration         :c4, after b3, 8d

    section Evidence
    Browser and x64 physical matrix              :d1, 2026-09-07, 12d
    Physical Linux arm64 lane                    :d2, 2026-09-07, 15d
    Energy and thermal lane                      :d3, 2026-09-14, 15d

    section Release
    Bundle, dashboard and receipt hardening      :e1, 2026-09-07, 15d
    Independent repeat and release review        :e2, 2026-09-28, 10d
WorkstreamEstimated effort
Schema, recorder and receipt generator2–3 person-weeks
Redaction, secret scanning and bundle tooling2–3 person-weeks
Browser timing/responsiveness adapters2–3 person-weeks
Native Windows/Linux metrics adapters2–3 person-weeks
Memory and GPU allocation accounting2–4 person-weeks
Benchmark harness, statistics and preregistration3–4 person-weeks
Quality-coupling integration2–3 person-weeks
Physical platform execution and triage3–5 person-weeks
Energy/thermal setup2–4 person-weeks, excluding equipment lead time
Documentation, dashboard and release gates2–3 person-weeks

With parallel engineering, an initial credible laboratory is approximately eight to ten calendar weeks and twenty to thirty person-weeks. A smaller first milestone—schema, redaction, deterministic fixture, one browser lane and one native x64 lane—can fit roughly four to five calendar weeks and ten to fifteen person-weeks. These are engineering estimates, not observed TinyRustLM delivery rates.

Research protocol, verification unknowns, and primary-source bibliography

Reusable research protocol

The uploaded brief supplies the concrete subject, so this filled protocol uses TinyRustLM rather than the earlier remote-work placeholder.

Protocol elementReusable templateTinyRustLM application
ObjectiveState the decision the research must enableDecide what evidence is sufficient to promote latency, throughput, memory, responsiveness, energy or reliability changes without exporting private payloads
ScopeDefine systems, populations, dates and excluded claimsBrowser WASM, optional native and WebGPU; Windows x64, Linux x64/arm64, Chromium, Firefox, WebKit; no private implementation validation
Key questionsConvert broad topic into falsifiable questionsWhat is measured, on which clock, in which state, on what hardware, with what quality/privacy budget and uncertainty?
Source priorityPrimary standards and original research firstW3C/GPUWeb, OS/kernel docs, browser-profiler docs, reproducible-build specifications and benchmarking papers
Search strategyEnumerate concepts, synonyms, APIs and evidence classesTiming APIs, memory metrics, process counters, power interfaces, statistical benchmarking, redaction and reproducibility
Inclusion criteriaDefine authoritative, relevant and current evidenceOfficial specifications/docs; original papers; current revisions; methods applicable to browser/native inference
Exclusion criteriaRemove weak or misleading evidenceVendor benchmark marketing, unexplained aggregate scores, single favorable runs, cross-architecture inference
Extraction planPredefine fields captured from every sourceVersion/date, status, supported environment, metric definition, limitations, privacy implications and retrieval date
ValidationTriangulate claims and identify contradictionsCompare standards with browser implementation docs and require local capability detection
SynthesisSeparate fact, inference, recommendation and unknownLabeling convention used throughout this report
DeliverablesSpecify artifacts, not merely narrativeSchema, taxonomy, platform matrix, workload contract, statistical policy, bundle format and implementation backlog
Update ruleState how the research remains currentPin source revision/date in receipts; review browser/API support before each release cycle

Unknowns requiring private or physical verification

The following cannot be established through public research:

UnknownEvidence required
Current TinyRustLM logging and telemetry pathsPrivate source review, dependency audit and network test
Actual phase boundaries and asynchronous ownershipCode inspection and traces
Model format, quantization and tokenizer behaviorRelease model and tokenizer manifests
Numerical tolerance envelopeGolden fixtures and backend-comparison results
Semantic-quality baselineAuthorized private evaluation suite and scoring policy
Whether model hashes identify private assetsProduct/release classification and threat analysis
Allocator and tensor ownership boundariesRuntime instrumentation and memory-map inspection
WASM threads/SIMD support and dispatch behaviorBuilds and runtime feature receipts
WebGPU buffer/pipeline lifecycleBackend source review and GPU traces
Browser cache behavior in the deployed appClean-profile experiments in each engine
Cancellation correctnessFault-injection and UI integration tests
OPFS deletion semantics and residual artifactsBrowser-specific tests and storage inspection
Instrumentation overheadDisabled/minimal/full paired runs
Windows/Linux process-boundary selectionArchitecture review and process-tree measurements
Physical Linux arm64 performanceReal arm64 hardware execution
Energy and thermal behaviorAuthorized counters or calibrated physical equipment
Hardware coarsening anonymityDeployment-population analysis; uniqueness testing
Secret-scanner coverageInternal credential formats and adversarial redaction corpus
Statistical sample sizesPilot variance from the actual workload and hardware
Independent reproducibilityA genuinely separate execution environment and operator

The release report should generate the same small set of interpretable graphics from receipt data:

VisualizationPurpose
Phase waterfallAcquisition through cleanup, with separate first-generation and first-render markers
Paired baseline/candidate slope chartShows per-block direction rather than hiding variability in averages
ECDF or violin plotDisplays full latency and inter-token distributions
Quantile-ratio forest plotBaseline/candidate ratio with confidence intervals for median, p90, p95 and p99
Throughput versus context lengthExposes long-context degradation
Memory stacked-area chartShows non-overlapping owned categories, WASM extent and known GPU allocation
Memory-after-cleanup cycle plotDetects leak-like growth over repeated turns/switches
Long-task timelineCorrelates decode, render and input stalls
Energy–latency Pareto chartPrevents optimizing joules while concealing severe latency costs, or vice versa
Thermal/frequency traceValidates stability and identifies throttling
Evidence coverage matrixShows physical, browser, emulated and missing lanes
Quality/performance decision plotPlaces effect interval against both performance and quality budgets

Annotated primary-source bibliography

All web sources were retrieved on August 1, 2026.

Source and date/revisionRelevance
W3C High Resolution Time, Working Draft, March 2026Defines browser time origin and monotonic high-resolution time; foundational for browser phase timing and timer-precision disclosure.
W3C Performance Timeline, Candidate Recommendation Draft, May 21, 2025Defines PerformanceEntry, worker exposure and PerformanceObserver; basis for browser-observer integration.
W3C User Timing, Candidate Recommendation familyDefines application-created marks and measures; useful for phase boundaries when metadata remains allowlisted.
W3C Long Tasks API, Working Draft, March 19, 2026Primary specification for observing long UI-thread tasks and responsiveness interference.
W3C Event Timing API, Working Draft, March 19, 2026Defines input-event timing and render-associated duration semantics, including privacy-related granularity.
W3C Long Animation Frames API, First Public Working Draft, April 28, 2026Emerging mechanism for detecting long frames; suitable as an optional capability, not a universal requirement.
GPUWeb WebGPU Specification, living draftDefines optional timestamp queries, GPU query semantics and security/privacy qualifications.
MDN @@MKREPORTTOKEN0@@, updated November 30, 2025Documents limited availability, cross-origin-isolation requirements and cross-browser comparability limits.
Chrome DevTools: Analyze Runtime Performance, based on Chrome 129Official Chrome profiling workflow covering frames, CPU activity, main-thread tasks and long-task diagnosis.
Firefox Profiler User GuideOfficial Firefox profiling and allocation-analysis reference.
WebKit Web Inspector TimelinesOfficial WebKit reference for frame/task timelines, exports and profiler-impact cautions.
Microsoft: Acquiring High-Resolution Time StampsDistinguishes QPC interval timing from UTC wall clocks and provides native timing guidance.
Microsoft @@MKREPORTTOKEN0@@Primary Windows process-memory API reference.
Microsoft @@MKREPORTTOKEN0@@Defines process CPU-cycle accounting and prevents mislabeling it as wall latency.
Linux Kernel @@MKREPORTTOKEN0@@ Filesystem DocumentationDefines process RSS, virtual memory, high-water and mapping-related observations.
Linux Kernel Power Capping FrameworkDefines powercap zones and interfaces including Intel RAPL exposure where supported.
Linux Kernel Power Supply ClassDefines battery/energy/charge properties and explicitly permits unavailable properties to be absent.
Linux arm64 @@MKREPORTTOKEN0@@ DocumentationDescribes arm64 PMU/perf access, supporting hardware-counter evidence without treating counters as universal energy data.
Arm Streamline Performance AnalyzerOfficial Arm profiling tooling covering CPU/GPU counters and scheduler data on supported targets.
SPECpower Run and Reporting Rules, version 1.12Methodological reference for meter uncertainty, calibration and environmental control; not a claim of SPEC compliance.
Reproducible Builds: @@MKREPORTTOKEN0@@ Specification, revision 1.1Defines deterministic build-time timestamp handling and supports receipt-to-artifact reproducibility.
Criterion Rust API documentationRecords Criterion’s warm-up, bootstrap and confidence defaults; useful methodological reference without presuming adoption.
Kalibera and Jones, “Rigorous Benchmarking in Reasonable Time,” ISMM 2013Original systems-benchmarking methodology addressing uncertainty across repeated executions and experimental levels.
Georges, Buytaert and Eeckhout, “Statistically Rigorous Java Performance Evaluation,” OOPSLA 2007Demonstrates why best-run selection and weak treatment of nondeterminism can produce misleading performance conclusions.
Kalibera and Jones, “Quantifying Performance Changes with Effect Size Confidence Intervals”Develops uncertainty-aware effect-size reporting for ratios of performance measurements.
NIST Privacy FrameworkGovernance reference for identifying and managing privacy risk; supports minimization and explicit risk treatment without prescribing the event schema.