Package-level declarations

Types

Link copied to clipboard

Hashes actual loaded code and resources independently of file naming and advertised versions.

Link copied to clipboard

Browser evidence encoding with explicit units and bounded safe integer conversion.

Link copied to clipboard
class BrowserPerformanceMeter(plan: PerformancePlan = PerformancePlan())

Browser-native clock and animation-frame execution, independent of an application's renderer. Action-to-next-frame latency is not GPU completion time or JavaScript CPU time. Closing cancels pending callbacks, releases application closures, and rejects an incomplete run.

Link copied to clipboard
data class BrowserPerformanceSample(val operation: PerformanceDistribution, val animationFrame: PerformanceDistribution)

Complete synchronous action wall time and separate action-to-animation-frame latency. Neither distribution represents browser CPU accounting or GPU completion.

Link copied to clipboard

Adapter for the compiler ABI dumps already verified by each published project's checkKotlinAbi task. Keeps exact overloads and owners; source visibility differs from the separate loaded-JVM bytecode inventory. This adapter performs no performance collection or member-execution inference.

Link copied to clipboard
class GpuPerformanceMeter(samples: Int, timestampPeriodNanos: Double, scope: String, readTimestamp: (Int) -> Long?) : AutoCloseable

Collects completed native timestamp pairs without inferring GPU work from a CPU clock.

Link copied to clipboard

Selects compiled fixtures from JMH metadata without a separate corpus registry. Selection and optional deterministic work checks run before timing or creating receipt directories.

Link copied to clipboard
class JmhForkProfiler(options: String) : InternalProfiler

Standard JMH internal profiler that certifies the actual loaded fork before warm-up or measurement. JMH constructs this capability in the fork; it owns no clock, sampling loop or application operation. A missing or failed profiler cannot produce the required per-iteration provenance result.

Link copied to clipboard

JVM-only evidence validation, aggregation and comparison over standard JMH output. JMH owns collection; this API consumes preserved receipts and never times an operation itself.

Link copied to clipboard

Provenance adapter around standard JMH; JMH owns forks, warm-up, clocks, samples, profilers and result serialization. Consumers provide their benchmark classes, target representatives and standard CLI options, rather than another engine. JMH is a consumer-supplied dependency; this test-only adapter does not add it to the kit's runtime POM.

Link copied to clipboard

Exact expected matrices from JMH's generated benchmark registry, without another annotation or timing engine. Consumers register fixture classes, explicit standard modes and optional subsets of compiled parameter values.

Link copied to clipboard

Discovers the JVM-visible public/protected binary surface from the artifacts actually loaded by a host. Includes Kotlin declarations exposed publicly in bytecode; source-level visibility is not inferred. Discovery does not initialize classes and rejects shadowed resources, origins, or unresolved linkage.

Link copied to clipboard

Optional fixture-owned supplemental report, discovered through a static operationReport() hook. Use JvmPerformanceRunner.warmup and JvmPerformanceRunner.sequence on the fixture owner thread. Preparation, assertions, serialization and surviving-resource cleanup belong outside each sample; required lifecycle work belongs inside the declared complete operation.

Link copied to clipboard
data class JvmOperationReportRow(val id: String, val benchmark: String, val parameters: Map<String, String>, val boundary: String, val operationsPerSample: Int = 1, val control: Boolean = false)

Frozen logical operation identity and its complete original JMH method/parameter binding. A sample contains operationsPerSample complete operations; counters normalize by samples, so batching remains explicit rather than being presented as an individual operation. boundary describes required steps and lifecycle work inside the sample.

Link copied to clipboard

Optional compiled operation-report connection to a completed frozen JMH invocation. The existing runner owns sampling and the existing report processor owns comparison. Original JMH archives, loaded identities and inputs remain mandatory independent evidence.

Link copied to clipboard

Shared JVM validation and aggregation for detached collector-bound evidence. Consumers provide workload-specific conditions; they do not implement another comparison engine.

Link copied to clipboard

Reads caller-declared external fixture files from a UTF-8 standard JDK properties manifest. Gradle can register resolved control libraries and native archives without adding consumer hashing logic.

Link copied to clipboard
class JvmPerformanceMeter(name: String, capacity: Int)

Owner-thread JDK timing, allocation, heap-boundary, and process-GC collector. Setup, assertions, and evidence serialization belong outside sample boundaries. Unsupported metrics remain null and failed samples cannot publish successful evidence.

Link copied to clipboard

Shared processing of fixed CPU and native phase reports from immutable raw evidence. Consumers register conditions, metrics and untimed work assertions, never their own aggregation engine.

Link copied to clipboard

Shared synchronous execution; consumers describe operations rather than implementing sample loops.

Link copied to clipboard
class JvmPerformanceSchedule<T : Any>(name: String, plan: PerformancePlan = PerformancePlan(), diagnosticsOwner: Any? = null, beforeSample: (Int) -> Unit = {}, afterOperation: (Int, T) -> Unit = { _, _ -> }, operation: (Int) -> T) : AutoCloseable

Collects one synchronous operation per application-owned scheduling opportunity. The host supplies ticks or callbacks; warm-up counts, sample boundaries and incomplete evidence belong to the kit. Construct, advance, complete and close on the same physical owner thread. An operation must release its own temporary resources, including when warm-up fails. Closing releases callbacks and collector storage, without closing the application fixture.

Link copied to clipboard

Kit-owned sample boundaries for interleaved historical workloads with untimed per-sample setup. Consumers choose which operation to time; they cannot publish an incomplete or failed sequence.

Link copied to clipboard

Bounded provenance from the actual loaded classes, without substituting standalone distribution JARs. Missing locations remain explicit failures rather than inferred hashes.

Link copied to clipboard
class MinecraftPerformanceMeter(screen: Any, refresh: () -> Unit = {}) : AutoCloseable

Actual Fabric extraction/render adapter, confined to the measured screen's client thread. Event callbacks and native counters belong to the kit; consumers supply only state changes. GPU completion, model mutation, readiness, and evidence storage are outside extraction samples. Complete operation frames include diagnostic instrumentation and frame pacing, rather than uninstrumented application latency.

Link copied to clipboard

Verifies actual CPU and native loaded class bytes without trusting archive names or versions. The consumer supplies its expected module inventory; the kit owns file and class-tree verification.

Link copied to clipboard
class NativePerformanceFixture(val ready: () -> Boolean = { true }, val captureAfterWarmup: () -> Unit = {}, val settleFrames: Int = 0, val beforeSamples: () -> Unit = {}, val afterSamples: (JsonObject) -> Unit = {}, val validateFrame: () -> Unit = {})

Application data and evidence hooks outside native extraction samples. The kit owns invocation order, settling, deadlines, counters, and callback cleanup. Hooks execute on the screen's owner thread and failures invalidate the whole interval.

Link copied to clipboard

Actual native work and retained payload; missing adapter metrics cannot become zero work.

Link copied to clipboard
class PerformanceCoverage(inventory: Map<String, Set<PerformanceHost>>, scenarios: List<PerformanceScenario>, requiredPhases: Map<String, Set<PerformancePhase>> = inventory.keys.associateWith { setOf(PerformancePhase.Idle) })

Coverage gate and selection over the complete current feature inventory.

Link copied to clipboard

Monotonic preparation/execution budget, independent of timed sample distributions. Child sections retain an earlier enclosing deadline, including one that has already expired.

Link copied to clipboard
data class PerformanceDistribution(val samples: Int, val total: Long, val p50: Long, val p95: Long, val p99: Long, val maximum: Long)

Detached nearest-rank statistics for one complete interval; values are nanoseconds.

Link copied to clipboard
class PerformanceEvidence(val scenario: String, val host: PerformanceHost, val phase: PerformancePhase, val repetition: Int, val inputIdentity: String, val kitIdentity: String, val targetIdentity: String, conditions: Map<String, String>, metrics: Map<String, Long?>)

Immutable comparison contract; unavailable measurements remain null, never successful zero work.

Link copied to clipboard

Java-only entry point for collector-bound evidence requests supplied by consumers or Gradle tasks. The sole argument is a UTF-8 JSON request file; JMH and the existing kit own the measurement engine. Validation failures propagate to a nonzero process exit and cannot create a successful output.

Link copied to clipboard

Execution boundaries whose measurements are never interchangeable.

Link copied to clipboard
class PerformanceInventory(surfaces: Map<String, Set<String>>, assignments: Map<String, Map<String, String>>, sourceOwners: Map<String, Set<String>>)

Exact discovered API/module surface assignments and repository-relative impact ownership. Discovery belongs to the host adapter; assignments must explicitly name every discovered symbol. Adding an API member or module cannot inherit coverage through a package wildcard.

Link copied to clipboard

Detached JVM report serialization, shared by every consumer and host adapter.

Link copied to clipboard

Named operation boundaries; readiness and evidence storage are outside steady measurements.

Link copied to clipboard
data class PerformancePlan(val warmup: Int = 30, val samples: Int = 60, val repetitions: Int = 3, val preparationTimeoutMillis: Long)

Reproducible execution counts, independent of application data and host implementation.

Link copied to clipboard

Shared diagnostic presets without another measurement engine. Quick results have separate workload identities and cannot satisfy a standard evidence contract. Consumers register their actual ordered viewport matrix and retain explicit workload selections.

Link copied to clipboard
data class PerformanceReportContract(val workloadId: String, val phaseKeys: List<String>, val phaseCount: Int, val reportConditions: Set<String>, val phaseConditions: Set<String>, val variantReportFields: Set<String> = emptySet(), val variantPhaseFields: Set<String> = emptySet(), val repetitions: Int = 3, val schemaVersion: Int = 1)

Consumer-declared registration for a fixed report workload, independent of collection and comparison. Variant report fields may change between runtime candidates, but must remain identical within a side. Phase conditions must include sample counts and every fixture invariant required by that workload.

Link copied to clipboard
data class PerformanceReportMetric(val name: String, val path: List<String>, val divisorPath: List<String>? = null, val scale: Double = 1.0)

Explicit metric projection from an existing report, with optional per-sample normalization. Unavailable measurements remain unavailable; scale converts declared units without another timer.

Link copied to clipboard
data class PerformanceSample<T>(val evidence: JsonObject, val value: T)

One complete measured interval and its last application-owned result, without frame history.

Link copied to clipboard
class PerformanceScenario(val id: String, features: Set<String>, hosts: Set<PerformanceHost>, phases: Set<PerformancePhase>, val inputIdentity: String)

Declarative coverage identity; executable application operations remain owned by the consumer.

Link copied to clipboard
class PerformanceSelection(available: Set<String>, requested: String? = null)

Validated workload selection shared by CPU and loaded-host adapters. Omitted selection retains the full registered matrix; explicit IDs cannot silently select nothing. Adapters must still verify their complete registration before constructing a selection.

Link copied to clipboard

Bounded aggregation of complete per-sample runtime diagnostics on the application's owner thread. Retired node identities are discarded after each snapshot, outside the measured operation. A single overflowing sample still fails; global counts never stand in for truncated node evidence.

Link copied to clipboard
class RuntimeWorkMonitor(owner: Any, checkpointSamples: Int? = null, maxNodeRecords: Int? = null) : AutoCloseable

Owner-thread monitor over the actual measured Strata instance, with no runtime-version substitution.

Link copied to clipboard
class WorkCounter(names: List<String>)

Bounded owner-thread application invocation counters with caller-defined stable names. Only counters are retained; snapshots and serialization belong outside sample boundaries. Overflow fails the invoking operation instead of wrapping into apparently valid work.

Link copied to clipboard
class WorkExpectation(exact: Map<String, Long> = emptyMap(), maximum: Map<String, Long> = emptyMap(), minimum: Map<String, Long> = emptyMap())

Deterministic work and retention assertions, independent of elapsed time.