Skip to content

Perf: measure cycles, cache behavior, energy, and thermal stability #503

Description

@chrisbbreuer

Parent: #459
Depends on: #460, #461
Related: #478, #481, #486, #492, #502

Goal

Measure and improve work efficiency—cycles, instructions, cache behavior, context switching, energy, and thermal stability—alongside elapsed throughput.

Scope

  • Add an opt-in reference-host measurement layer for available hardware/OS counters: cycles, instructions, IPC, branches/misses, cache/TLB misses, context switches, migrations, scheduler waits, frequency/thermal state, package/process energy, and peak power where trustworthy.
  • Normalize counters by exact logical work/checksum and retain raw per-sample values with the existing alternating-order protocol.
  • Attribute counters to mutator, GC, JIT/Wasm compilation, runtime stubs, worker lifecycle, and idle/wait phases where the platform permits.
  • Record counter availability, permissions, multiplexing, sampling error, and unsupported hosts explicitly; never substitute zero.
  • Detect thermal/frequency drift and reject or annotate invalid comparisons before publication.
  • Add work-per-joule and cycles-per-operation panels without replacing wall-time, latency, scaling, or memory results.
  • Use owned collection/parsing code around standard platform interfaces; external profilers may remain diagnostic oracles, not dependencies.

No-workaround rules

  • No CPU-frequency lock or privileged host modification hidden from methodology, cherry-picked counter interval, discarded outlier without protocol, aggregate that hides a regressed row, or energy win purchased by doing less work.

Acceptance

Foundation

Existing benchmark reports record power source and dispersion but not microarchitectural or energy counters.

Metadata

Metadata

Assignees

No one assigned

    Labels

    benchmarksBenchmark design, evidence, and regression gatesenhancementNew feature or requestperformanceMeasured runtime, memory, scaling, or build performance

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions