Skip to content

v3.bench

fn new #

fn new() Bench

new creates a new value for bench.

struct Bench #

struct Bench {
mut:
	steps                   []Step
	metrics                 []Metric
	total_sw                time.StopWatch
	step_sw                 time.StopWatch
	last_allocation_count   u64
	last_allocated_bytes    u64
	memory_limit_kb         i64
	quiet                   bool
	stage_memory            &StageMemoryMonitor = unsafe { nil }
	memory_monitor_interval i64
	memory_monitor_thread   thread
	memory_monitor_started  bool
}

Bench represents bench data used by bench.

fn (Bench) disable_memory_limit #

fn (mut b Bench) disable_memory_limit()

disable_memory_limit disables the compiler memory safety limit.

fn (Bench) use_self_host_memory_limit #

fn (mut b Bench) use_self_host_memory_limit()

use_self_host_memory_limit raises the safety limit for compiler self-host builds.

fn (Bench) use_compiler_tree_memory_limit #

fn (mut b Bench) use_compiler_tree_memory_limit()

use_compiler_tree_memory_limit raises the safety limit for tests that compile the complete V3 compiler module without disabling the OOM guard.

fn (Bench) set_quiet #

fn (mut b Bench) set_quiet()

set_quiet suppresses benchmark output while retaining timing and memory checks.

fn (Bench) start_memory_monitor #

fn (mut b Bench) start_memory_monitor()

start_memory_monitor starts the compiler memory safety watchdog.

fn (Bench) stop_memory_monitor #

fn (mut b Bench) stop_memory_monitor()

stop_memory_monitor stops and joins the sampler before its benchmark state is released.

fn (Bench) step #

fn (mut b Bench) step(name string)

step records a serial pipeline step.

fn (Bench) current_step_time_us #

fn (b &Bench) current_step_time_us() i64

current_step_time_us returns the elapsed wall time in the current pipeline step.

fn (Bench) step_measured #

fn (mut b Bench) step_measured(name string, elapsed_us i64)

step_measured records a pipeline step whose duration was accumulated externally, inside the wall time of the surrounding steps (used for work interleaved with another stage, e.g. the ownership checker inside check). It does not restart the step stopwatch, so the enclosing stages still account for their full wall time.

fn (Bench) step_parallel #

fn (mut b Bench) step_parallel(name string, parallel bool)

step_parallel records a pipeline step, appending "(parallel)" to its name when the step actually ran across threads.

fn (Bench) step_parts #

fn (mut b Bench) step_parts(parts []StepPart)

step_parts records measured parts that together make up the current pipeline step.

fn (Bench) metric #

fn (mut b Bench) metric(name string, value i64, unit string)

metric records a structural compiler counter for the final benchmark report.

fn (Bench) metric_items #

fn (b &Bench) metric_items(name string, value i64, unit string, items_label string, items []string)

metric_items prints a structural counter and a one-line list of its items immediately.

fn (Bench) print_report #

fn (b &Bench) print_report()

print_report updates print report state for Bench.

struct Metric #

struct Metric {
pub:
	name  string
	value i64
	unit  string
}

Metric represents one structural compiler counter reported with a build.

struct Step #

struct Step {
pub:
	name              string
	time_us           i64
	ram_kb            i64
	stage_peak_ram_kb i64
	peak_ram_kb       i64
	allocation_count  u64
	allocated_bytes   u64
}

Step represents step data used by bench.

struct StepPart #

struct StepPart {
pub:
	name     string
	time_us  i64
	parallel bool
}

StepPart describes one measured part of a pipeline step.