Skip to documentation
SLOP

tiny.profiling.analyze.model

Reference tiny.profiling analyze model

Defined in analyze.

API (28)

Actions

Public operations.

Types and contracts

Public types and contracts.

Values and defaults

Public values and defaults.

No direct callersNo direct callsanalyzemodel
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: src/profiling/environment.zig:27

zig
pub const ComparisonSupport = enum {    supported,    missing_optimize,    optimize_mismatch,    missing_host,    os_mismatch,    arch_mismatch,    cpu_count_mismatch,    hostname_mismatch,    kernel_mismatch,    cpu_model_mismatch,    cpu_frequency_policy_missing,    cpu_frequency_policy_mismatch,    process_cpu_affinity_missing,    process_cpu_affinity_mismatch,    process_memory_affinity_missing,    process_memory_affinity_mismatch,};

Source: src/profiling/measurement.zig:125

zig
pub const ComparisonSupport = enum {    supported,    scope_mismatch,    measurement_order_mismatch,    warmup_design_mismatch,    capture_mismatch,    capture_perturbation_mismatch,    perf_stat_summary_missing,    perf_stat_events_mismatch,    perf_stat_groups_mismatch,    perf_stat_design_mismatch,};

Source: src/profiling/priority.zig:16

zig
pub const WorkloadComparison = struct {    workload: []const u8,    baseline_wall_ns: u64,    candidate_wall_ns: u64,    wall_percent_change: f64,    baseline_wall_samples: usize = 1,    candidate_wall_samples: usize = 1,    baseline_wall_distribution: []const u8 = "point_estimate",    candidate_wall_distribution: []const u8 = "point_estimate",    wall_effect_low_percent: ?f64 = null,    wall_effect_high_percent: ?f64 = null,    wall_status: []const u8 = "point_regression_candidate",    baseline_max_rss_kib: ?i64,    candidate_max_rss_kib: ?i64,    rss_percent_change: ?f64,    wall_threshold_percent: f64,    rss_threshold_percent: f64,    kind: []const u8,};
Called byCallsNo direct callersanalyze.Runpassedanalyze.Runrananalyze.Runfailed
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callsanalyze.Runfailedanalyze.Runpassed
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callsanalyze.Runfailedanalyze.Runran
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callsanalyze.comparecompareRunsanalyze.modelpercentChange
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callsprivate; no linksrc.profiling.analyze.compareallocationDesignMatchesprivate; no linksrc.profiling.analyze.orderingworkloadOrderEffectSupportanalyze.modelsameOptionalString
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callersmeasurementpointWallDistributionanalyze.modelworkloadWallDistribution
Static calls · unresolved targets: 0 · external targets: 0.

Source: src/profiling/measurement.zig:10

zig
pub const wall_statistic = "mean_per_execution";

Source: src/profiling/analyze/model.zig

zig
const std = @import("std");const capture = @import("capture");const sys = @import("sys");const baseline = @import("../root.zig").baseline;const catalog = @import("../root.zig").catalog;const coz = @import("../capture/root.zig").coz;const environment = @import("../root.zig").environment;const host = @import("../root.zig").host;const json = @import("../root.zig").json;const measurement = @import("../root.zig").measurement;const memory = @import("../root.zig").memory;const metric = @import("../root.zig").metric;const order = @import("../root.zig").order;const perturbation = @import("../root.zig").perturbation;const priority = @import("../root.zig").priority;const reducer = @import("../root.zig").reduction;pub const workload_wall_statistic = measurement.wall_statistic;pub const Options = struct {    input: []const u8,    baseline_input: ?[]const u8 = null,    json: bool = false,    top: usize = 10,    regression_threshold_percent: f64 = 10,};pub const Workload = struct {    name: []const u8,    package: []const u8,    step: []const u8,    surface: catalog.Surface = .profile,    command_argv: []const []const u8 = &.{},    command_cwd: ?[]const u8 = null,    command_identity_recorded: bool = false,    acquisition: order.Context = .{ .blocked = .{} },    scope: []const u8 = host.scope,    scope_recorded: bool = false,    causal_enabled: bool = false,    tracy_enabled: bool = false,    allocations_enabled: bool = false,    profiler_configuration_recorded: bool = false,    status: []const u8,    exit_code: i64,    wall_ns: u64,    total_wall_ns: u64 = 0,    execution_count: usize = 1,    executions: []const measurement.Execution = &.{},    measurement_recorded: bool = false,    wall_distribution: ?measurement.WallDistribution = null,    warmup_count: usize = 0,    warmups: []const measurement.Execution = &.{},    warmup_recorded: bool = false,    warmup_total_wall_ns: u64 = 0,    warmup_distribution: ?measurement.WallDistribution = null,    warmup_stdout_path: ?[]const u8 = null,    warmup_stderr_path: ?[]const u8 = null,    resource_usage_source: ?sys.process.ResourceUsageSource = null,    max_rss_kib: ?i64 = null,    user_s: ?f64 = null,    system_s: ?f64 = null,    minor_page_faults: ?f64 = null,    major_page_faults: ?f64 = null,    voluntary_context_switches: ?f64 = null,    involuntary_context_switches: ?f64 = null,    result_path: ?[]const u8,    allocation_repetitions_path: ?[]const u8 = null,    profiler_artifacts: ?measurement.ExecutionArtifacts = null,    benchmark_process_domain: reducer.DomainDeclaration = .{        .benchmark_surface = false,        .direct_execution = false,        .host_profiler = false,        .tracy = false,        .causal = false,        .allocation_trace = false,        .capture_control = false,    },    benchmark_process_reduction: reducer.Result = .{ .not_applicable = .{        .reason = .fewer_than_two_executions,        .process_count = 0,    } },    metrics: []const metric.Metric = &.{},    memory_metrics: []const memory.Metric = &.{},    causal: []const coz.Result = &.{},    captures: []const host.Capture = &.{},    perf_stat: ?capture.perfstat.Summary = null,    capture_perturbation: ?perturbation.Measurement = null,    capture_perturbation_summary: ?perturbation.Summary = null,    pub fn analysisArtifacts(self: Workload) ?measurement.ExecutionArtifacts {        if (self.executions.len == 1) {            if (self.executions[0].artifacts) |artifacts| return artifacts;        }        return self.profiler_artifacts;    }    pub fn structuredAnalysisState(self: Workload) []const u8 {        if (self.profiler_artifacts != null) return "profiler_capture_receipt";        if (self.executions.len > 1) {            return switch (self.benchmark_process_reduction) {                .complete => "multiple_execution_receipts_reduced",                .not_applicable => "unavailable",            };        }        if (self.executions.len == 1 and self.executions[0].artifacts != null) {            return "single_execution_receipt";        }        return "unavailable";    }};pub const CounterShift = struct {    workload: []const u8,    event: []const u8,    baseline_value: f64,    candidate_value: f64,    percent_change: f64,    threshold_percent: f64,    status: []const u8,};pub const EnergyShift = struct {    workload: []const u8,    event: []const u8,    baseline_joules: f64,    candidate_joules: f64,    energy_percent_change: f64,    baseline_watts: ?f64,    candidate_watts: ?f64,    power_percent_change: ?f64,    baseline_energy_range_percent: ?f64,    candidate_energy_range_percent: ?f64,    baseline_power_range_percent: ?f64,    candidate_power_range_percent: ?f64,    threshold_percent: f64,    status: []const u8,};pub const Run = struct {    ref: baseline.RunRef,    suite: catalog.Suite = .all,    filters: []const []const u8 = &.{},    selection_known: bool = false,    git_sha: ?[]const u8 = null,    git_dirty: ?bool = null,    optimize: ?[]const u8 = null,    host: environment.Host = .{},    workloads: []const Workload = &.{},    pub fn ran(self: Run) usize {        return self.workloads.len;    }    pub fn passed(self: Run) usize {        var result: usize = 0;        for (self.workloads) |workload| {            if (workload.exit_code == 0) result += 1;        }        return result;    }    pub fn failed(self: Run) usize {        return self.ran() - self.passed();    }    pub fn metricCount(self: Run) usize {        var result: usize = 0;        for (self.workloads) |workload| result += workload.metrics.len;        return result;    }    pub fn memoryMetricCount(self: Run) usize {        var result: usize = 0;        for (self.workloads) |workload| result += workload.memory_metrics.len;        return result;    }    pub fn causalCount(self: Run) usize {        var result: usize = 0;        for (self.workloads) |workload| result += workload.causal.len;        return result;    }};pub const ComparisonSupport = environment.ComparisonSupport;pub const WorkloadComparisonSupport = measurement.ComparisonSupport;pub const WorkloadComparisonSkip = struct {    workload: []const u8,    support: WorkloadComparisonSupport,    baseline_acquisition: order.Context,    candidate_acquisition: order.Context,    baseline_execution_count: usize,    candidate_execution_count: usize,    baseline_warmup_count: usize,    candidate_warmup_count: usize,};pub const OrderEffectSupport = enum {    supported,    environment_mismatch,    code_identity_missing,    code_identity_mismatch,    dirty_code_identity,    cohort_mismatch,    workload_failure,    command_identity_missing,    command_identity_mismatch,    execution_scope_missing,    execution_scope_mismatch,    warmup_design_missing,    warmup_design_mismatch,    profiler_configuration_missing,    profiler_capture_present,    repetition_design_mismatch,    raw_measurements_missing,};pub const OrderEffectRow = struct {    workload: []const u8,    fixed_acquisition: order.Context,    random_acquisition: order.Context,    fixed_count: usize,    random_count: usize,    fixed_mean_ns: ?f64,    random_mean_ns: ?f64,    mean_percent_change: ?f64,    effect_low_percent: ?f64,    effect_high_percent: ?f64,    classification: order.contrast.Classification,};pub const OrderEffectStatus = enum {    unsupported,    insufficient_repetitions,    no_order_effect_observed,    order_sensitive_candidate,};pub const OrderEffects = struct {    support: OrderEffectSupport,    environment_support: ComparisonSupport,    fixed_run_id: []const u8,    random_run_id: []const u8,    fixed_is_baseline: bool,    status: OrderEffectStatus,    rows: []const OrderEffectRow,};pub const Comparison = priority.WorkloadComparison;pub fn sameOptionalString(left: ?[]const u8, right: ?[]const u8) bool {    const actual_left = left orelse return right == null;    const actual_right = right orelse return false;    return std.mem.eql(u8, actual_left, actual_right);}pub fn sameStrings(left: []const []const u8, right: []const []const u8) bool {    if (left.len != right.len) return false;    for (left, right) |left_value, right_value| {        if (!std.mem.eql(u8, left_value, right_value)) return false;    }    return true;}pub fn workloadWallDistribution(workload: Workload) measurement.WallDistribution {    return workload.wall_distribution orelse        measurement.pointWallDistribution(workload.wall_ns);}pub const NamedCapture = struct {    workload: []const u8,    capture: host.Capture,};pub fn percentChange(baseline_value: u64, candidate_value: u64) ?f64 {    if (baseline_value == 0) return null;    const base_float: f64 = @floatFromInt(baseline_value);    const candidate_float: f64 = @floatFromInt(candidate_value);    return ((candidate_float - base_float) / base_float) * 100;}pub fn findWorkload(workloads: []const Workload, name: []const u8) ?Workload {    for (workloads) |workload| {        if (std.mem.eql(u8, workload.name, name)) return workload;    }    return null;}

Source: src/profiling/analyze/root.zig:5

zig
pub const model = @import("model.zig");

Audit

Definitions29
Public names54
Members176
Version26.7.0
Revisiondaab053ee433