Table of Contents

Class ProfilerOptions

Namespace
Typhon.Engine
Assembly
Typhon.Engine.dll

Tunable parameters for TyphonProfiler.Start. All defaults are tuned for typical Typhon workloads (~30 producer threads, ~3 exporters).

public sealed class ProfilerOptions
Inheritance
ProfilerOptions
Inherited Members

Constructors

ProfilerOptions()

public ProfilerOptions()

Properties

ConsumerCadence

Cadence at which the consumer thread wakes to drain all slot rings and fan out to exporters. Default: 1 ms. Lower = lower end-to-end latency for live viewers, higher CPU. Higher = batched I/O efficiency, more records buffered.

public TimeSpan ConsumerCadence { get; set; }

Property Value

TimeSpan

MergeBufferBytes

Capacity of the consumer's per-pass merge scratch buffer in bytes. Drains from all slots accumulate here before sorting and slicing into TraceRecordBatches. Default: 512 KB — large enough that a single drain pass absorbs a typical burst without leaving bytes in the producer rings for a subsequent pass. Must be at least Typhon.Engine.Internals.TraceRecordBatchPool.MaxPayloadBytes (enforced by Validate()). Under the observability "better to over-buffer than drop" priority, raise this when a workload shows records carrying over between drain passes.

public int MergeBufferBytes { get; set; }

Property Value

int

PerExporterChannelDepth

Bounded queue depth between the consumer thread and each exporter. Default: 4. When an exporter is slow, this many cadence ticks of batches can buffer before drop-newest kicks in.

public int PerExporterChannelDepth { get; set; }

Property Value

int

SpilloverBufferCount

Number of pre-allocated spillover ring buffers held in the Typhon.Engine.Internals.SpilloverRingPool. When a thread's primary 1 MiB ring overflows, the producer pops a spillover from the pool and chains it onto the slot, continuing to write there. The consumer drains the chain in FIFO order and recycles each spillover back to the pool when it's emptied. Default: 8 (covers AntHill's ~11 MiB bulk-spawn burst with 7× headroom and supports concurrent bursts on multiple workers). Set to 0 to disable spillover entirely (matches pre-spillover behavior: producers drop on primary overflow).

public int SpilloverBufferCount { get; set; }

Property Value

int

SpilloverBufferSizeBytes

Size of each spillover buffer in bytes. Must be a power of two and at least 64 KiB. Default: 16 MiB — sized so one spillover absorbs a 200K-entity bulk-spawn burst (~11 MiB at 56 B per EcsSpawn record). Total per-process spillover memory at default config: SpilloverBufferCount × SpilloverBufferSizeBytes = 128 MiB, allocated only while the profiler is running.

public int SpilloverBufferSizeBytes { get; set; }

Property Value

int

Methods

Validate()

Validates options and throws if any field is invalid.

public void Validate()