Julia API
The public API exported by PerfChecker. For an executable introduction, start with Quickstart.
Existing tests:
discover_testitems,run_testitems.Inline experiment:
@check.Custom workloads and version matrices:
SoftwareSuite,plan_suite,run_suite.Shared scenarios:
run_scenarios,diagnose,compare_scenarios.
Interface packages
Some entry points are implemented by an interface package. Install and load the owner to get its method.
PerfCheckerWeb —
serve_suite,register_oxygen_routes!,register_testitem_routes!,studio_token_authenticator,run_studio_agent.PerfCheckerPluto —
prepare_pluto_dashboard,launch_pluto_dashboard,write_suite_notebook,write_investigation_notebook.PerfCheckerMakie —
performance_figure,suite_dashboard,checkres_to_boxplots,checkres_to_scatterlines,checkres_to_pie.PerfCheckerMakie + WGLMakie —
performance_plot_html.
Index
PerfChecker.PerfCheckerPerfChecker.AdvisorConfigPerfChecker.BundleComparisonPerfChecker.CancellationTokenPerfChecker.CheckConfigPerfChecker.CheckerResultPerfChecker.ComparisonPolicyPerfChecker.CompatibilityReportPerfChecker.ExternalCommandSpecPerfChecker.ExternalMemorySnapshotPerfChecker.FeatureRunPerfChecker.FeatureSpecPerfChecker.FeatureVariantPerfChecker.InvestigationJobPerfChecker.InvestigationViewPerfChecker.IsolatedNetworkCommandResultPerfChecker.JuliaRegressionInvestigationPerfChecker.JuliaRuntimeCampaignPerfChecker.JuliaRuntimeSpecPerfChecker.NativeDependencyEvidencePerfChecker.NetworkInterfaceSnapshotPerfChecker.NetworkIsolationSpecPerfChecker.OracleSpecPerfChecker.PackageSuitePerfChecker.PackageVersionSpecPerfChecker.PerfConfigPerfChecker.PerformanceDocumentBlockPerfChecker.PerformancePlotPerfChecker.PerformanceQueryPerfChecker.PlannedFeatureRunPerfChecker.ProbeSpecPerfChecker.ProcessMemorySnapshotPerfChecker.QualificationFailurePerfChecker.QueryPredicatePerfChecker.ResourceEnvelopePerfChecker.RunBundlePerfChecker.RunMetadataPerfChecker.RunTargetPerfChecker.ScenarioCatalogPerfChecker.ScenarioSpecPerfChecker.SoftwareSuitePerfChecker.SoftwareSuiteResultPerfChecker.SuiteCandidatePerfChecker.SuiteJobPerfChecker.SuitePlanPerfChecker.VersionComparisonPerfChecker.VersionWindowPerfChecker._advisor_draftPerfChecker._copy_check_environmentPerfChecker._git_provenancePerfChecker._json_parsePerfChecker._json_parsefilePerfChecker._prepare_check_environmentPerfChecker._suite_environment_keyPerfChecker._terminate_process_treePerfChecker._validate_narrativePerfChecker.advisePerfChecker.advisor_setupPerfChecker.advisor_setup_transportPerfChecker.advisor_transportPerfChecker.agent_evidencePerfChecker.agent_evidencePerfChecker.arrange_breakingPerfChecker.arrange_majorPerfChecker.arrange_patchesPerfChecker.bundle_dictPerfChecker.bundle_passedPerfChecker.cancel!PerfChecker.cancel!PerfChecker.cancel_suite!PerfChecker.checkPerfChecker.check_to_metadata_csvPerfChecker.checkres_to_boxplotsPerfChecker.checkres_to_piePerfChecker.checkres_to_scatterlinesPerfChecker.cleanupPerfChecker.compare_bundlesPerfChecker.compare_scenariosPerfChecker.compare_suite_versionsPerfChecker.comparison_dictPerfChecker.comparison_passedPerfChecker.comparison_policy_dictPerfChecker.comparison_verdictPerfChecker.compatibility_report_dictPerfChecker.configure_suite_replPerfChecker.csv_to_tablePerfChecker.default_optionsPerfChecker.dependency_evidencePerfChecker.dependency_evidence_dictPerfChecker.diagnosePerfChecker.diagnostic_capabilitiesPerfChecker.discoverPerfChecker.discover_testitemsPerfChecker.documenter_makedocsPerfChecker.documenter_pagePerfChecker.documenter_vitepress_makedocsPerfChecker.drwatson_parametersPerfChecker.drwatson_produce_or_loadPerfChecker.drwatson_run_suitePerfChecker.drwatson_savenamePerfChecker.estimate_performancePerfChecker.evaluate_advisorsPerfChecker.evaluate_resource_envelopePerfChecker.external_command_dictPerfChecker.external_memory_snapshotPerfChecker.external_memory_snapshot_dictPerfChecker.filter_suite_planPerfChecker.find_by_tagsPerfChecker.freeze_propcheck_corpusPerfChecker.freeze_supposition_corpusPerfChecker.get_pkg_versionsPerfChecker.get_versionsPerfChecker.initpkgsPerfChecker.investigatePerfChecker.investigate_julia_regressionsPerfChecker.investigation_statusPerfChecker.investigation_viewPerfChecker.isolated_network_result_dictPerfChecker.julia_investigation_dictPerfChecker.julia_runtime_campaign_dictPerfChecker.julia_runtime_commandPerfChecker.julia_runtime_matrixPerfChecker.julia_runtime_spec_dictPerfChecker.julia_runtime_suite_commandPerfChecker.launch_advisor_setupPerfChecker.launch_investigationPerfChecker.launch_pluto_dashboardPerfChecker.launch_suitePerfChecker.list_run_bundlesPerfChecker.load_advisor_configPerfChecker.load_scenario_catalogPerfChecker.load_software_suitePerfChecker.loaded_library_inventoryPerfChecker.machine_profilePerfChecker.measure_isolated_network_commandPerfChecker.measure_network_interfacePerfChecker.measure_network_isolatedPerfChecker.migrate_run_bundlePerfChecker.narrate_advicePerfChecker.native_tool_planPerfChecker.network_interface_capabilitiesPerfChecker.network_interface_deltaPerfChecker.network_interface_snapshotPerfChecker.network_isolation_capabilitiesPerfChecker.network_isolation_spec_dictPerfChecker.normalize_configPerfChecker.oracle_spec_dictPerfChecker.package_dependency_inventoryPerfChecker.perf_plotPerfChecker.perf_setupPerfChecker.perf_tablePerfChecker.perfchecker_mainPerfChecker.performance_document_blockPerfChecker.performance_figurePerfChecker.performance_plotPerfChecker.performance_plot_dictPerfChecker.performance_plot_htmlPerfChecker.performance_queryPerfChecker.performance_query_dictPerfChecker.plan_suitePerfChecker.planned_run_idPerfChecker.plot_catalogPerfChecker.postPerfChecker.preflight_passedPerfChecker.preflight_suitePerfChecker.prepPerfChecker.prepare_pluto_dashboardPerfChecker.print_suite_planPerfChecker.probe_julia_runtimePerfChecker.probe_spec_dictPerfChecker.process_memory_capabilitiesPerfChecker.process_memory_snapshotPerfChecker.process_memory_snapshot_dictPerfChecker.query_bundlePerfChecker.query_result_dictPerfChecker.read_advicePerfChecker.read_document_blocksPerfChecker.read_property_corpusPerfChecker.read_provider_resultPerfChecker.read_run_bundlePerfChecker.read_scenario_runsPerfChecker.read_ui_configurationPerfChecker.register_oxygen_routes!PerfChecker.register_testitem_routes!PerfChecker.resource_envelope_dictPerfChecker.resource_envelope_metricsPerfChecker.resource_policy_passedPerfChecker.run_external_commandPerfChecker.run_julia_runtime_campaignPerfChecker.run_perfitemPerfChecker.run_scenariosPerfChecker.run_studio_agentPerfChecker.run_suitePerfChecker.run_suite_filePerfChecker.run_suite_replPerfChecker.run_testitemsPerfChecker.runtime_campaign_passedPerfChecker.saveplotPerfChecker.scenario_catalog_dictPerfChecker.scenario_syncPerfChecker.select_scenariosPerfChecker.select_suite_planPerfChecker.select_suite_planPerfChecker.serve_suitePerfChecker.similar_machinesPerfChecker.stop_before_postPerfChecker.studio_token_authenticatorPerfChecker.suite_dashboardPerfChecker.suite_dictPerfChecker.suite_job_dictPerfChecker.suite_job_progressPerfChecker.suite_job_statusPerfChecker.suite_passedPerfChecker.suite_plan_dictPerfChecker.suite_summaryPerfChecker.suite_verdictPerfChecker.suite_version_seriesPerfChecker.summary_tablePerfChecker.table_to_csvPerfChecker.table_to_piePerfChecker.terminal_plotPerfChecker.testitem_filterPerfChecker.to_dictPerfChecker.to_tablePerfChecker.tool_catalogPerfChecker.verify_run_bundlePerfChecker.version_comparison_dictPerfChecker.version_comparison_passedPerfChecker.version_comparison_verdictPerfChecker.wait_investigationPerfChecker.wait_suitePerfChecker.worker_environmentPerfChecker.workload_idPerfChecker.write_comparison_jsonPerfChecker.write_comparison_markdownPerfChecker.write_compatibility_reportPerfChecker.write_folded_profilePerfChecker.write_investigation_notebookPerfChecker.write_investigation_reportPerfChecker.write_julia_investigationPerfChecker.write_julia_runtime_campaignPerfChecker.write_pprof_profilePerfChecker.write_property_corpusPerfChecker.write_run_bundlePerfChecker.write_scenario_workflowPerfChecker.write_software_suite_templatePerfChecker.write_speedscope_profilePerfChecker.write_suite_bundlePerfChecker.write_suite_jsonPerfChecker.write_suite_junitPerfChecker.write_suite_markdownPerfChecker.write_suite_notebookPerfChecker.write_suite_reportsPerfChecker.write_templatePerfChecker.write_version_comparison_jsonPerfChecker.write_version_comparison_markdownPerfChecker.write_version_series_jsonPerfChecker.@checkPerfChecker.@check
Docstrings
PerfChecker.PerfChecker Module
Performance measurement, comparison and qualification for Julia workloads. Start with discover_testitems for existing tests or plan_suite for explicit feature workloads. Interface packages consume the same plans and saved evidence; measurement and diagnostic processes run in separately prepared environments.
PerfChecker.AdvisorConfig Type
Optional evidence writer configuration. Local endpoints are the default; no model is bundled.
sourcePerfChecker.BundleComparison Type
A definition-aware comparison between two portable run bundles.
sourcePerfChecker.CancellationToken Type
Thread-safe cancellation request, checked while an isolated child is running.
sourcePerfChecker.CheckConfig Type
CheckConfigValidated internal configuration used by PerfChecker after merging backend defaults with the public Dict passed to @check.
Users can keep passing dictionaries; CheckConfig exists to make required fields and cache identity explicit before workers are launched.
PerfChecker.CheckerResult Type
CheckerResultResult returned by @check.
Fields:
tables: oneTypedTables.Tableper package version or target.hwinfo: hardware information collected by the orchestrating process.tags: tags attached to the run.pkgs: package specs corresponding totables.qualifications: probe and correctness evidence corresponding totables.resource_envelopes: optional process/external-memory evidence corresponding totables. This remains separate from Julia allocation columns.
PerfChecker.ComparisonPolicy Type
An exact or grouped reference used to compare several candidate targets.
sourcePerfChecker.CompatibilityReport Type
Structured dependency-resolution evidence produced before measurement.
sourcePerfChecker.ExternalCommandSpec Type
A command provider that emits perfchecker-provider-result/1 JSON.
PerfChecker.ExternalMemorySnapshot Type
A versioned workload-owned view of native or otherwise external memory.
sourcePerfChecker.FeatureRun Type
Result of one planned feature execution. planned identifies the target; status distinguishes :pass, :unavailable, :blocked, :invalid and :error. elapsed_seconds is orchestration time, not a replacement for measured samples. result holds backend data when available; qualification retains probe, correctness and provenance evidence even when execution fails.
PerfChecker.InvestigationJob Type
An asynchronous investigation shared by the web interface and notebook interfaces.
sourcePerfChecker.InvestigationView Type
A presentation of saved investigation evidence for the REPL, Pluto and HTML reports.
sourcePerfChecker.IsolatedNetworkCommandResult Type
Result of an external command executed in a requested network namespace. Carries the command outcome, captured output, provider and network sample. Inspect isolated_network_result_dict before attributing traffic to the target; unavailable isolation is not a zero-traffic measurement.
PerfChecker.JuliaRegressionInvestigation Type
Ranked source evidence for differences between two Julia runtime runs.
sourcePerfChecker.JuliaRuntimeCampaign Type
A completed suite campaign over an explicit Julia runtime axis.
sourcePerfChecker.JuliaRuntimeSpec Type
One explicit Julia runtime axis, independent from package-version targets.
sourcePerfChecker.NativeDependencyEvidence Type
Declared, resolved, and observed dependency evidence captured at one phase.
sourcePerfChecker.NetworkInterfaceSnapshot Type
Monotonic counters observed on one operating-system network interface.
sourcePerfChecker.NetworkIsolationSpec Type
A process-tree network-isolation request for native Linux or Linux through WSL2.
sourcePerfChecker.OracleSpec Type
A deterministic correctness oracle executed outside the measured region.
sourcePerfChecker.PackageVersionSpec Type
PackageVersionSpec(name, selector, versions, prefer_latest)
PackageVersionSpec(pkgconf::Tuple)Normalized representation of the :pkgs option accepted by @check.
The tuple form is (name::String, selector::Symbol, versions::Vector{VersionNumber}, prefer_latest::Bool). Supported selectors are :custom, :patches, :minor, :major, and :breaking.
PerfChecker.PerfConfig Type
PerfConfig(backend::Symbol; path=pwd(), kwargs...)
PerfConfig(backend::Symbol, options)Julia-native public configuration object for @check.
PerfConfig keeps the existing dictionary-based API available while giving REPL, scripts, and Pluto notebooks a clearer object to pass around. Keyword arguments are stored with symbolic keys and validated by normalize_config just before a check runs.
Example:
config = PerfConfig(:benchmark; path=pwd(), tags=[:local], samples=10)
result = @check config begin
nothing
end begin
sum(1:100)
endPerfChecker.PerformanceDocumentBlock Type
A documentation-system-neutral block backed by one bundle query.
sourcePerfChecker.PerformancePlot Type
Backend-neutral plot description consumed by Makie, Oxygen, notebooks and CI exporters.
sourcePerfChecker.PerformanceQuery Type
A presentation-neutral selection over a PerfChecker run bundle.
sourcePerfChecker.PlannedFeatureRun Type
One resolved package, feature variant and target in a suite plan. Created by plan_suite; inspect planned_status and reason before execution. Planning an unavailable target preserves it for reports rather than executing it.
PerfChecker.ProbeSpec Type
A functional capability probe executed inside the prepared target worker.
sourcePerfChecker.ProcessMemorySnapshot Type
A point-in-time operating-system view of one process' memory usage.
sourcePerfChecker.QualificationFailure Type
Structured qualification evidence carried when a run is blocked or invalid.
sourcePerfChecker.QueryPredicate Type
A portable predicate over a result field, an attribute, or a manifest field.
sourcePerfChecker.ResourceEnvelope Type
One resource envelope around a backend collection in an isolated worker.
sourcePerfChecker.RunMetadata Type
RunMetadataStructured metadata written next to cached performance outputs. It records the backend, package version, tags, normalized config hash, result UUID, Julia version, thread count, timestamp, and hardware identity used for cache lookup.
sourcePerfChecker.RunTarget Type
RunTarget(spec, label, is_dev)Internal description of one package target to run in an isolated worker. Released versions use is_dev == false; local development targets created from :devops use is_dev == true.
PerfChecker.ScenarioCatalog Type
The explicit catalog used by both local execution and CI. Inferred candidates are never members.
sourcePerfChecker.ScenarioSpec Type
A shared, dependency-free Julia factory, identified independently of its measurement collector.
sourcePerfChecker.SoftwareSuite Type
The measurable surface of one software, composed from package suites.
sourcePerfChecker.SoftwareSuiteResult Type
Completed suite evidence: the original plan, UTC start/finish timestamps and a vector of FeatureRun records. Use suite_verdict for qualification and write_suite_reports to export it without repeating measurements.
PerfChecker.SuiteCandidate Type
A named Git branch, tag, or commit evaluated beside releases and the working tree.
sourcePerfChecker.SuiteJob Type
Handle returned by launch_suite for asynchronous controller execution. Use suite_job_status, suite_job_progress, cancel_suite! and wait_suite instead of mutating its task and reference fields.
PerfChecker.SuitePlan Type
Resolved suite, profile, feature runs and comparison policies. Obtain a plan with plan_suite, inspect or filter it, then pass it to run_suite or launch_suite. Holding a plan does not start workers.
PerfChecker.VersionComparison Type
A release-by-release comparison and its plottable version series.
sourcePerfChecker.@check Macro
@check backend config begin
# preparation code
end begin
# measured code
endRun a performance check using backend and return a CheckerResult.
The public config argument is usually a Dict. PerfChecker merges it with backend defaults, validates it with normalize_config, copies the environment at config[:path], launches isolated Julia workers, installs the requested package versions, runs the two code blocks, and stores result tables plus metadata.
Example:
using PerfChecker, BenchmarkTools
config = Dict(:path => @__DIR__, :samples => 10, :evals => 1)
result = @check :benchmark config begin
using Random
end begin
sum(rand(Random.MersenneTwister(1), 1_000))
endPerfChecker.@check Macro
@check config begin
# preparation code
end begin
# measured code
endRun a performance check from a PerfConfig.
This is equivalent to @check config.backend Dict(config) ..., but keeps the backend and options bundled in one Julia object for scripts, REPL sessions, and Pluto notebooks.
PerfChecker._advisor_draft Method
Validate a setup draft, optionally before an MCP advice tool has been selected.
sourcePerfChecker._copy_check_environment Method
Copy a worker environment, excluding only explicitly named top-level entries.
sourcePerfChecker._git_provenance Method
Capture reproducible source identity without recording remotes or file contents.
sourcePerfChecker._json_parse Method
Parse JSON into ordinary dictionaries on every supported JSON.jl major.
sourcePerfChecker._json_parsefile Method
Read JSON without retaining a memory-mapped handle to the source file.
sourcePerfChecker._prepare_check_environment Method
Prepare one immutable package target environment for reuse by fresh workers.
sourcePerfChecker._suite_environment_key Method
Identity of the package graph prepared for one feature worker.
sourcePerfChecker._terminate_process_tree Method
Terminate a controller process and, where supported, its complete child tree.
sourcePerfChecker._validate_narrative Method
Validate references and shape, without claiming that generated prose is semantically true.
sourcePerfChecker.advise Method
Produce deterministic, evidence-linked advice. This function never executes target code.
sourcePerfChecker.advisor_setup Method
advisor_setup(configuration; action=:probe, model="", confirmed=false, project, cancellation)Check a connection or discover available models/MCP tools without sending project evidence. Ollama :pull, :delete, and :unload require explicit confirmation and a loopback endpoint. Operations run in a cancellable worker. Model files are managed by the existing Ollama server, never bundled with PerfChecker.
PerfChecker.advisor_setup_transport Method
Extension point for optional connection checks and local model management.
sourcePerfChecker.advisor_transport Method
Provider extension point: return a Chat Completions-shaped response, preserving usage when known.
sourcePerfChecker.agent_evidence Function
Create a bounded machine-readable evidence envelope for CI and AI workflows.
sourcePerfChecker.agent_evidence Method
Expose diagnostics and deterministic advice to agents without running or modifying target code.
sourcePerfChecker.arrange_breaking Method
arrange_breaking(version, versions, prefer_latest)Return the first or last compatible breaking-version group. For 0.x packages, minor versions are treated as breaking; otherwise major versions are used.
PerfChecker.arrange_major Method
arrange_major(version, versions, prefer_latest)Return the first or last version with the same major version.
sourcePerfChecker.arrange_patches Method
arrange_patches(version, versions, prefer_latest)Return all versions with the same major and minor version.
sourcePerfChecker.bundle_dict Method
Return the dictionary representation of a RunBundle manifest and, with include_records=true (default), its definitions, observations, diagnostics and artifacts. This is an in-memory conversion; it does not write a report or run a workload.
PerfChecker.bundle_passed Method
bundle_passed(bundle::RunBundle) -> BoolReturn whether the manifest is complete and no diagnostic has error severity. This is an execution check, not a comparison against a performance budget. Use compare_bundles and comparison_verdict for a regression decision.
PerfChecker.cancel! Method
Request cancellation of a web or notebook investigation and its isolated worker.
sourcePerfChecker.cancel_suite! Method
cancel_suite!(job::SuiteJob) -> BoolRequest interruption of an active suite task and mark it as cancelling. Return false if the task already finished. A true return acknowledges the request; use wait_suite or the job status to observe completed cancellation and cleanup.
PerfChecker.check Method
check(config::Dict, block::Expr, ::Val{backend}) -> ExprBackend hook returning code that performs the measurement. Its result is stored as config[:check_result] before post is called.
PerfChecker.check_to_metadata_csv Method
check_to_metadata_csv(backend, pkg, version, tags; metadata="")Compatibility wrapper for the legacy metadata format. New runs use structured metadata with result UUIDs and config hashes.
sourcePerfChecker.checkres_to_boxplots Function
checkres_to_boxplots(result::CheckerResult, ::Val{backend}; kwarg=:times)Create boxplots from a CheckerResult for the selected metric column.
PerfChecker.checkres_to_pie Function
checkres_to_pie(result::CheckerResult, ::Val{backend}; kwargs...)Create pie charts from a CheckerResult. For allocation checks this returns pairs mapping version labels to Makie figures. Forwards min_percentage and top to table_to_pie.
PerfChecker.checkres_to_scatterlines Function
checkres_to_scatterlines(result::CheckerResult, ::Val{backend}; kwargs...)Create an evolution plot from a CheckerResult. Plotting dispatch is explicit: use Val(:benchmark), Val(:chairmark), or Val(:alloc).
PerfChecker.cleanup Method
cleanup(config::Dict, ::Val{backend})Backend hook run after workers have stopped. Backends that create process-exit artifacts can use it to remove files that are flushed only when a worker exits.
sourcePerfChecker.compare_bundles Method
Compare exact measurement definitions; no cross-unit conversion is implicit.
sourcePerfChecker.compare_scenarios Method
Compare each scenario/implementation/collector separately, retaining configurations not tested.
sourcePerfChecker.compare_suite_versions Method
Compare adjacent releases, then compare a development checkout to the latest release.
sourcePerfChecker.comparison_dict Method
Return the dictionary representation of a BundleComparison, including input validity, environment status, verdict and per-metric records. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.comparison_passed Method
Return true only when comparison_verdict(comparison) is :qualified.
PerfChecker.comparison_policy_dict Method
Return the dictionary representation of a ComparisonPolicy, including its baseline/candidate selection and metric limits. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.comparison_verdict Method
comparison_verdict(comparison::BundleComparison) -> SymbolReturn :invalid_inputs, :incomparable, :regressed, :qualified or :inconclusive. Qualification requires valid inputs, comparable environments, at least one comparison record and a passing status for every record.
PerfChecker.compatibility_report_dict Method
Return the dictionary representation of a CompatibilityReport, including diagnostic counts and the preflight pass predicate. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.configure_suite_repl Method
configure_suite_repl(suite; profile=:historical, input=stdin, output=stdout)Prompt for package, workload, collector, version bounds, search and sort order, then print the selected plan. Read positive sample, duration and worker-thread settings and return (plan, overrides) after confirmation. This prepares a run; it does not execute workloads or write reports. Pass the returned values to run_suite_repl.
Empty selectors include all matching runs; an empty numeric answer uses the displayed default. Reject an empty selection or invalid settings with ArgumentError; declining confirmation throws InterruptException. input and output may be redirected for a reproducible scripted dialogue.
PerfChecker.csv_to_table Method
csv_to_table(path::String) -> TableRead a CSV file written by PerfChecker into a TypedTables.Table.
PerfChecker.default_options Method
default_options(::Val{backend}) -> DictBackend hook returning default configuration values. These defaults are merged with the user dictionary before normalize_config validates shared options.
PerfChecker.dependency_evidence Method
Capture the dependency closure visible from the current Julia process.
sourcePerfChecker.dependency_evidence_dict Method
Return the dictionary representation of NativeDependencyEvidence with dependency identity, origin and availability details. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.diagnose Method
Run optional analyzers in separate bounded processes. Reports never install missing packages.
sourcePerfChecker.diagnostic_capabilities Method
Describe executable diagnostic tools without loading packages or executing target code.
sourcePerfChecker.discover Function
Discover test-derived proposals and explicit catalogs without executing target code or CI commands.
sourcePerfChecker.discover_testitems Function
discover_testitems(root=pwd(); mode=:performance, tags=[], exclude_tags=[])List existing @testitem declarations without executing their bodies, setup modules, or surrounding source code. Load TestItemRunner to enable this method.
mode=:performance includes ordinary items and :perf_only, but excludes :test_only. mode=:test does the converse; :all keeps both categories. tags matches any requested tag; exclude_tags always removes matching items. An item carrying both reserved tags is rejected.
Return a dictionary with schema perfchecker-testitems/1, normalized root, selection mode, executed=false, and an items array. Each item contains its stable ID, name, relative file, tags and source SHA-256. IDs identify the file/name pair; renaming either changes the ID. Duplicate names in one file are rejected.
Discovery writes no report and launches no measured workload. Missing directories, invalid declarations and ambiguous identities raise an error rather than silently producing a partial listing. See run_testitems to execute a selection.
PerfChecker.documenter_makedocs Function
documenter_makedocs(bundle; root=pwd(), source="src", build="build",
page="performance.md", sitename="Performance", kwargs...)Load Documenter. Generate a performance page from saved evidence and invoke Documenter.makedocs, forwarding additional options. This writes documentation outputs but does not deploy them. For VitePress, use the corresponding extension.
PerfChecker.documenter_page Function
documenter_page(bundle_or_result, destination; title="Performance",
blocks=PerformanceDocumentBlock[], config=nothing)Load Documenter and write a Markdown report page from existing evidence. config selects blocks from a configuration file; without blocks, include the version comparison summary. Create parent directories, replace the destination and return its absolute path. This renders saved data without running workloads.
PerfChecker.documenter_vitepress_makedocs Function
documenter_vitepress_makedocs(bundle; repo, devbranch="main",
devurl="dev", deploy_url=nothing, kwargs...)Load Documenter and DocumenterVitepress. Configure the VitePress formatter and build a report site through documenter_makedocs. repo is required. This is a report-publishing integration for user projects, separate from PerfChecker's own website and its collection qualification gate.
PerfChecker.drwatson_parameters Function
Load DrWatson, then convert a suite plan (or a suite with profile=:quick) into parameter dictionaries for each planned run. No measurement is started.
PerfChecker.drwatson_produce_or_load Function
drwatson_produce_or_load(producer, parameters; directory="",
force=false, tag=true, kwargs...)Load DrWatson to enable its disk-cache workflow. Delegate cache lookup and writing to DrWatson.produce_or_load; wrap a non-dictionary producer result under "result". Return DrWatson's result. The producer executes only when its cache policy requires it; cached data is not fresh measurement evidence.
PerfChecker.drwatson_run_suite Function
drwatson_run_suite(suite; profile=:quick, directory="", force=false,
tag=true, kwargs...)Load DrWatson. Plan a suite, use its plan revision as a cache parameter and run it with reports when production is required. Return the DrWatson cache result. Existing artifacts may be reused: request force=true when fresh execution is required, and inspect the saved provenance before comparison.
PerfChecker.drwatson_savename Function
Load DrWatson, then derive a filename from a planned run's suite, package, feature and target version; suffix="jld2" selects the default extension. This does not write a file.
PerfChecker.estimate_performance Method
estimate_performance(target, references, workload; neighbours=3,
min_calibrations=3, max_log_error=0.25)Experimental calibrated nearest-neighbour transfer. Each record contains machine, context, calibration (workload => positive seconds) and measurements. Context must explicitly identify suite_revision, environment, measurement, unit, and resource_policy; only equal contexts and OS/architecture are compared. Fit a log time ratio on shared calibration workloads. Leave-one-workload-out error rejects unstable transfers. Return a donor spread/error envelope, NOT a confidence interval or a measured result. At least two independent machine labels are required. Use only to prioritize actual measurements, never to qualify a CI performance gate.
PerfChecker.evaluate_advisors Method
Evaluate evidence selection separately from prose truth; supplied expected rule IDs are the oracle.
sourcePerfChecker.evaluate_resource_envelope Method
Evaluate absolute memory bounds and ownership balance for one resource envelope.
sourcePerfChecker.external_command_dict Method
Return the dictionary representation of an ExternalCommandSpec describing a command without executing it. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.external_memory_snapshot Method
Normalize a dictionary or named tuple implementing perfchecker-external-memory/1.
PerfChecker.external_memory_snapshot_dict Method
Return the portable perfchecker-external-memory/1 representation of a snapshot.
PerfChecker.filter_suite_plan Method
Filter and deterministically order a suite plan without starting workers.
sourcePerfChecker.find_by_tags Method
find_by_tags(tags::Vector{Symbol}, results; exact_match=true)Find results whose tags match tags.
With exact_match=true, tags must match exactly. With exact_match=false, any overlap is accepted.
PerfChecker.freeze_propcheck_corpus Function
freeze_propcheck_corpus(path, generator; count=100, seed=0,
encode=identity, metadata=Dict(), force=false)Load PropCheck to enable this extension. Generate cases with a seeded Xoshiro RNG, extract tree roots, apply encode and save a frozen JSON corpus. Return its absolute path. count must be positive; overwriting requires force=true. Generation happens now, outside later measurement workers.
PerfChecker.freeze_supposition_corpus Function
freeze_supposition_corpus(path, possibility; count=100, tries=100_000,
encode=identity, metadata=Dict(), force=false)Load Supposition to enable this extension. Sample the possibility, encode the cases as JSON-compatible values and persist them for later reproducible replay. Return the corpus path; a positive count is required and existing files need force=true. Replay uses saved inputs rather than resampling the generator.
PerfChecker.get_pkg_versions Function
get_pkg_versions(name::String, regname=nothing) -> Vector{VersionNumber}Find all registered versions of name in the installed registries.
Example:
julia> get_pkg_versions("ConstraintLearning")
7-element Vector{VersionNumber}:
v"0.1.4"
v"0.1.5"
v"0.1.0"
v"0.1.6"
v"0.1.1"
v"0.1.3"
v"0.1.2"The optional regname argument restricts the lookup to registry names.
PerfChecker.get_versions Function
Select registered versions using the legacy version-selection configuration. The configuration supplies package name, grouping mode, requested versions and whether to prefer the latest representative. Registry lookup reads installed registry metadata; it does not measure or install the selected versions.
sourcePerfChecker.initpkgs Method
initpkgs(::Val{backend}) -> ExprBackend hook returning code that loads backend-specific packages inside each worker. Extensions normally define methods such as PerfChecker.initpkgs(::Val{:benchmark}).
PerfChecker.investigate Method
Run only declared scenario/collector/analyzer experiments within explicit count and wall-time limits.
sourcePerfChecker.investigate_julia_regressions Method
Rank source lines that gained sampled CPU/allocation weight across Julia runtimes.
sourcePerfChecker.investigation_status Method
Read a consistent job snapshot without waiting or rerunning code.
sourcePerfChecker.investigation_view Method
Display an investigation without executing the target program.
sourcePerfChecker.isolated_network_result_dict Method
Return the dictionary representation of an IsolatedNetworkCommandResult with command, output, status and network attribution evidence. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.julia_investigation_dict Method
Return the dictionary representation of a JuliaRegressionInvestigation with its classification, evidence and recommended follow-up. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.julia_runtime_campaign_dict Method
Return the dictionary representation of a JuliaRuntimeCampaign with runtime specifications, execution results and comparisons. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.julia_runtime_command Method
Build a hermetic-by-default Julia command prefix for a runtime spec.
sourcePerfChecker.julia_runtime_matrix Method
Create the usual stable/candidate/nightly runtime axis without installing channels.
sourcePerfChecker.julia_runtime_spec_dict Method
Return the dictionary representation of a JuliaRuntimeSpec with its identifier, command and runtime role. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.julia_runtime_suite_command Method
Build a child-controller command that runs one suite under the selected Julia runtime.
sourcePerfChecker.launch_advisor_setup Method
Start a cancellable setup task for web/Pluto clients. Opening a view never calls this.
sourcePerfChecker.launch_investigation Method
Launch one bounded investigation; callbacks execute only after this explicit call.
sourcePerfChecker.launch_pluto_dashboard Function
launch_pluto_dashboard(path; kwargs...)Load PerfCheckerPluto and open an existing generated notebook with Pluto.run. Reject a missing file and forward server options to Pluto. This starts a notebook server; generating a notebook alone uses prepare_pluto_dashboard instead.
PerfChecker.launch_suite Method
launch_suite(plan::SuitePlan; executor, overrides=Dict()) -> SuiteJob
launch_suite(suite::SoftwareSuite; profile=:quick, kwargs...) -> SuiteJobStart an asynchronous controller task which executes the selected plan. The normal executor prepares isolated environments and starts measurement workers. Return immediately with a job handle. Poll suite_job_progress for progress, use cancel_suite! to request interruption and wait_suite to obtain the result or surface a failure. Supplying an executor changes how measurements are run.
PerfChecker.list_run_bundles Method
list_run_bundles(root; recursive=false)Read manifests in child bundle directories and return them with bundle_path. A missing root returns an empty vector. Unreadable or foreign manifests are ignored. This is discovery only: call read_run_bundle to verify bundle integrity before using its observations.
PerfChecker.load_advisor_config Method
Load an explicit provider configuration. Secrets are referenced by environment variable name.
sourcePerfChecker.load_scenario_catalog Method
Read a TOML catalog without evaluating package or test code. Paths are relative to the catalog.
sourcePerfChecker.load_software_suite Method
load_software_suite(path; factory=:build_suite) -> SoftwareSuiteLoad an ordinary Julia suite definition in an isolated controller module. The file must define the selected zero-argument factory or bind suite to a SoftwareSuite. Only the controller evaluates this file; measured Malt workers still load just their backend, package, and feature entrypoint.
PerfChecker.loaded_library_inventory Method
List shared libraries loaded in the current process. File hashing is opt-in.
sourcePerfChecker.machine_profile Method
machine_profile(; label="", limits=Dict())Capture a specification fingerprint, independent of host name and transient CPU load. This identifies a specification class, not a unique physical machine. Declare CI CPU quotas, affinity and memory limits in limits; unknown limits remain unknown.
PerfChecker.measure_isolated_network_command Method
Run one command tree in an isolated network namespace and capture its counters.
sourcePerfChecker.measure_network_interface Method
Measure interface counters around a workload. Isolation is required for package attribution.
sourcePerfChecker.measure_network_isolated Method
Measure an in-process workload only when launched by PerfChecker's netns wrapper.
sourcePerfChecker.migrate_run_bundle Method
Rewrite a legacy/unverified bundle into a new digest-protected destination.
sourcePerfChecker.narrate_advice Method
Write optional prose from bounded evidence in a cancellable worker. Verdicts remain deterministic.
sourcePerfChecker.native_tool_plan Method
native_tool_plan(tool, script; project=dirname(Base.active_project()),
output="native-profile", julia=first(Base.julia_cmd().exec),
suppressions=nothing)Prepare shell-free arguments for optional native profilers. No process is started and no software is installed. Linux tools can be planned on Windows for execution inside Linux/WSL with Linux paths. The plan reports local availability separately from qualification. Capture the workload's oracle and dependency inventory alongside the resulting artifact; a profiler exit code does not prove workload correctness.
sourcePerfChecker.network_interface_capabilities Method
network_interface_capabilities()Describe platform support and available interfaces for network-counter sampling. This reports collection capability; interface counters include other traffic using the same interface. Use network isolation for process-tree attribution.
sourcePerfChecker.network_interface_delta Method
Compute counter deltas for two snapshots of the same interface.
sourcePerfChecker.network_interface_snapshot Function
Take a network-interface snapshot. auto selects the busiest non-loopback interface.
PerfChecker.network_isolation_capabilities Function
Describe whether a process-tree network namespace can be launched on this host.
sourcePerfChecker.network_isolation_spec_dict Method
Return the dictionary representation of a NetworkIsolationSpec with provider, distribution, interface and connectivity requirements. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.normalize_config Method
normalize_config(backend::Symbol, config::Dict) -> CheckConfigMerge backend defaults with a user configuration dictionary, validate shared PerfChecker options, and return a CheckConfig.
Required shared option:
:path: environment directory copied for each worker.
Common optional options include :tags, :threads, :track, :pkgs, :devops, :extra_pkgs, :targets, and :repeat.
PerfChecker.oracle_spec_dict Method
Return the dictionary representation of an OracleSpec with its function name and required flag. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.package_dependency_inventory Method
Inventory the active Pkg dependency graph without loading dependency modules.
sourcePerfChecker.perf_plot Function
perf_plot(...)Reserved extension point for backend-specific plots.
sourcePerfChecker.perf_setup Method
perf_setup(; dir="perf", kinds=(:benchmark, :chairmark, :alloc, :pluto), force=false)Create a small Julia-native performance workspace.
This writes benchmark, chairmark, allocation, and Pluto dashboard starter files by default. It intentionally does not create a Perf.toml; options stay in Julia code through PerfConfig. The Pluto dashboard activates the surrounding Julia project so it can be used as a controlled project-local view over stored or newly run checks.
PerfChecker.perf_table Function
perf_table(...)Reserved extension point for backend-specific tabular summaries.
sourcePerfChecker.perfchecker_main Function
Implementation of the unified perfchecker CLI. Returns a process exit code.
PerfChecker.performance_document_block Method
Parse one documentation block from the shared JSON-compatible grammar.
sourcePerfChecker.performance_plot Method
performance_plot(bundle, [id]; reference_version=nothing, version=nothing, top=40, min_percentage=5)Build a backend-neutral plot. With no identifier, prefer overlaid BenchmarkTools or Chairmarks metrics. By default, use each version's minimum sample, divided by the minimum across the compared versions separately for each metric (best = 1). Pass statistic=:median to compare medians instead. Release targets use semantic version order; Git labels follow the series order. Use reference_version=:latest or a version label to select a target instead of the minimum. Raw measurements and units remain in every record. Equal zeros appear at 1 (unchanged), by convention; a nonzero value over a zero reference, or a missing reference, has no finite ratio. Separate absolute plots remain available through plot_catalog. Allocation pies combine sites contributing strictly less than min_percentage percent of the selected version's allocated bytes into "Other allocation sites". The default is 5%; exactly 5% remains separate. Set min_percentage=0 to disable this threshold. top still caps legend entries, including the combined remainder.
PerfChecker.performance_plot_dict Method
Return the dictionary representation of a performance plot view model for interface transport. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.performance_query Method
Parse and validate the language-neutral dictionary form of a report query.
sourcePerfChecker.performance_query_dict Method
Return the dictionary representation of a PerformanceQuery with its filters and requested evidence selections. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.plan_suite Method
plan_suite(suite; profile=:quick, candidates=Dict(), comparisons=[])Resolve package releases, development sources, Git candidates, feature variants, and comparison policies into an immutable SuitePlan without running workloads.
PerfChecker.planned_run_id Method
Return the deterministic identifier of a planned feature/target selection used by plan filters, progress events and interfaces. This identifies the selection, not a completed measurement.
sourcePerfChecker.plot_catalog Method
List every plot supported by the evidence contained in a run bundle.
sourcePerfChecker.post Method
post(config::Dict, ::Val{backend})Backend hook that selects or transforms the worker result before it is converted to a TypedTables.Table by to_table.
PerfChecker.preflight_passed Method
Return whether a CompatibilityReport contains no blocking diagnostic. This checks preparation evidence and does not execute or qualify a workload.
PerfChecker.preflight_suite Method
Resolve every ready feature/version environment without running a workload.
sourcePerfChecker.prep Method
prep(config::Dict, block::Expr, ::Val{backend}) -> ExprBackend hook returning code run before the measured block. Its result is stored as config[:prep_result] before post is called.
PerfChecker.prepare_pluto_dashboard Function
prepare_pluto_dashboard(path; suite_path=nothing, factory=:build_suite, kwargs...)Load PerfCheckerPluto. Write a suite dashboard notebook and return its absolute path without starting Pluto or a workload. suite_path selects the Julia suite definition and factory its constructor; the notebook uses explicit run controls. Other keywords, including project, reports_root and force, are forwarded to write_suite_notebook.
PerfChecker.print_suite_plan Method
print_suite_plan([io=stdout], plan::SuitePlan; limit=typemax(Int))Print a readable plan, including target labels and availability status, without starting workers. limit must be positive and bounds displayed rows.
PerfChecker.probe_julia_runtime Method
Resolve a Julia selector to the exact runtime identity observed in a fresh process.
sourcePerfChecker.probe_spec_dict Method
Return the dictionary representation of a ProbeSpec with its identifier, function name, blocking flag and category. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.process_memory_capabilities Method
Report which process-memory counters PerfChecker can observe on this platform.
sourcePerfChecker.process_memory_snapshot Function
Take a non-throwing memory snapshot for pid; unsupported counters remain nothing.
PerfChecker.process_memory_snapshot_dict Method
Return the portable perfchecker-process-memory/1 representation of a snapshot.
PerfChecker.query_bundle Method
Execute a report query without invoking a measurement worker or mutating the bundle.
sourcePerfChecker.query_result_dict Method
Return the dictionary representation of a query result for transport to a report, UI or agent. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.read_document_blocks Method
Read a shared UI/documentation configuration and return its document blocks.
sourcePerfChecker.read_property_corpus Method
read_property_corpus(path)Read a frozen property corpus and return its JSON dictionary, including cases and generation metadata. Reject missing files, unsupported schemas and a count that disagrees with the stored cases. No generator or shrinking code is run.
PerfChecker.read_run_bundle Method
read_run_bundle(directory; verify_integrity=true, require_integrity=false)Read and validate a perfchecker-run-bundle/1 directory. Integrity metadata is verified by default when present and can be made mandatory with require_integrity=true.
PerfChecker.read_scenario_runs Method
Read shared-scenario bundles from one measurement directory without modifying them.
sourcePerfChecker.read_ui_configuration Method
Read and minimally validate a shared interface configuration.
sourcePerfChecker.register_oxygen_routes! Function
register_oxygen_routes!(source; prefix="/perfchecker/v1", kwargs...)Load PerfCheckerWeb. Register routes on Oxygen's current router for a result, bundle, result provider or interactive suite. Read-only evidence routes do not run measurements; suite/studio control routes may launch work. This registers routes without starting the HTTP server. See serve_suite for hosting.
PerfChecker.register_testitem_routes! Function
Register an Oxygen UI for existing TestItemRunner items. Load PerfCheckerWeb; bind the server to loopback or supply external authentication.
sourcePerfChecker.resource_envelope_dict Method
Return the portable perfchecker-resource-envelope/1 representation.
PerfChecker.resource_envelope_metrics Method
Flatten an envelope into explicitly named, non-conflated resource metrics.
sourcePerfChecker.resource_policy_passed Method
Return whether an evaluate_resource_envelope result has status="passed". Missing status is treated as failure.
PerfChecker.run_external_command Method
Run a non-Julia provider in its own process and ingest its result grammar.
sourcePerfChecker.run_julia_runtime_campaign Method
Run one package suite under baseline and candidate Julia runtimes.
sourcePerfChecker.run_perfitem Method
run_perfitem(catalog, id; implementation="default", kwargs...)Run exactly one declared performance item with the shared isolated lifecycle. Keywords are forwarded to run_scenarios; unknown identities fail before execution.
PerfChecker.run_scenarios Method
Measure explicit shared scenarios in fresh Julia processes; no package installation is performed.
sourcePerfChecker.run_studio_agent Function
run_studio_agent(suite; server, token, agent_id, poll_seconds=2,
heartbeat_seconds=30, max_jobs=typemax(Int), once=false)Load PerfCheckerWeb. Register an agent with the specified controller, poll for jobs, execute accepted suite plans locally and upload progress/results. This performs network requests and runs workload processes; keep the server and suite under the caller's control. Use once=true for a bounded polling iteration or max_jobs to bound completed jobs.
PerfChecker.run_suite Method
run_suite(plan; executor=_default_suite_executor, strict=true,
progress_callback=identity)Execute the runnable leaves of a resolved suite plan and return their isolated worker results. When strict is false, individual failures are retained in the result instead of aborting the complete suite.
PerfChecker.run_suite_file Method
run_suite_file(path; profile=:quick, reports=nothing,
factory=:build_suite, kwargs...)Load and execute a suite definition. When reports is a path, write the JSON, Markdown, and JUnit representations consumed by CI and user interfaces.
PerfChecker.run_suite_repl Method
Run a selected plan with a terminal progress bar and optional report output.
sourcePerfChecker.run_testitems Function
run_testitems(root=pwd(); ids=nothing, tags=[], exclude_tags=[],
project=dirname(Base.active_project()), samples=1,
timeout=120, threads=1, reports=nothing,
cancellation=CancellationToken())Execute a selection from discover_testitems with the official TestItemRunner lifecycle. Load TestItemRunner before calling. Prepare project with the target's test dependencies first; running does not install packages.
ids=nothing selects every item admitted by the performance/tag filters. Explicit IDs must be unique and known. Empty selections and nonpositive sample counts are errors. Each sample runs in a fresh process with the requested Julia threads and timeout. There is no implicit warmup or repetition.
The measured scope includes item setup, imports, assertions and module cleanup. It is suitable for checking the cost of an existing test; it does not isolate an inner operation. Use a feature workload when that narrower scope is required.
Return a perfchecker-testitem-run/1 dictionary with item/sample records and a functional passed flag. performance=not_compared means no regression budget was evaluated; functional success is not a performance verdict. Source or environment changes during a sample invalidate its evidence. Failures, timeouts and cancellation remain visible in the result.
If reports is supplied, write the report into that directory without replacing an existing testitems.json. Cancellation stops the current worker and prevents further selected items from running. See testitem_filter for reserved tags.
PerfChecker.runtime_campaign_passed Method
Return whether every runtime run has status "passed" and every recorded comparison passed. This predicate summarizes the supplied campaign; it does not schedule missing runtimes.
PerfChecker.saveplot Function
saveplot(...)Reserved extension point for saving backend-specific plots.
sourcePerfChecker.scenario_catalog_dict Method
Return the portable representation of an explicit scenario catalog.
sourcePerfChecker.scenario_sync Function
Relate declared scenarios, test proposals and literal CI configurations without executing them.
sourcePerfChecker.select_scenarios Method
Select exact scenario/implementation pairs; inferred or unknown identities are rejected.
sourcePerfChecker.select_suite_plan Method
Apply the ordered selection from a shared UI configuration.
sourcePerfChecker.select_suite_plan Method
Return a validated, explicitly ordered subset of a server-produced plan.
sourcePerfChecker.serve_suite Function
serve_suite(source; host="127.0.0.1", port=8080, kwargs...)Load PerfCheckerWeb to serve a suite, saved reports, bundle or scenario catalog in Oxygen. Available routes depend on the source type. The default host is loopback; remote control requires an authenticator and explicit allow_remote_control=true. Server startup and lifetime options are forwarded to Oxygen. Loading a report view does not itself rerun its measurements.
PerfChecker.similar_machines Method
Rank specification neighbours; a small distance is not performance equivalence.
sourcePerfChecker.stop_before_post Method
stop_before_post(::Val{backend}) -> BoolBackend hook for measurements whose artifacts are flushed when the worker process exits.
sourcePerfChecker.studio_token_authenticator Function
studio_token_authenticator(users_or_path) -> FunctionLoad PerfCheckerWeb. Build a bearer-token verifier from a digest-to-identity dictionary or a TOML file with [[users]], id, token_sha256 and roles. The returned function hashes a supplied token and returns its identity or nothing. It does not create credentials, start a server or grant new roles.
PerfChecker.suite_dashboard Function
suite_dashboard(result::SoftwareSuiteResult; view=:normalized)
suite_dashboard(job::SuiteJob; strict=true, view=:normalized)
suite_dashboard(suite::SoftwareSuite; profile=:quick, strict=true, view=:normalized, kwargs...)Load PerfCheckerMakie to overlay the first available benchmark workload's measurements, each divided by its minimum across versions. Use plot_catalog and performance_figure to select another workload. With view=:absolute, show minimum benchmark times for every run; this is also the fallback when no overlay is available. The result overload only renders saved measurements. The job overload waits for completion; the suite overload launches and waits for new measurements. Return a Makie figure.
PerfChecker.suite_dict Method
Return the dictionary representation of a SoftwareSuiteResult with schema, execution verdict and per-run summaries and qualification. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.suite_job_dict Method
Return the dictionary representation of a SuiteJob snapshot, including a completed result or failure message when available. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.suite_job_progress Method
Return a shallow copy of the current progress dictionary without waiting. It includes completed/total counts, per-status counts and the current run when available.
sourcePerfChecker.suite_job_status Method
Return the current job state, such as :running, :cancelling, :complete, :cancelled or :failed, without waiting.
PerfChecker.suite_passed Method
Return whether no run has status :error, :blocked or :invalid. Unavailable runs do not fail this execution predicate. Use suite_verdict to distinguish partial execution from validated results.
PerfChecker.suite_plan_dict Method
Return the dictionary representation of a SuitePlan with its revision and resolved selections for UI and execution contracts. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.suite_summary Method
Return a TypedTables table with one row per feature run: suite, package, feature, target version, comparison key, status, elapsed orchestration seconds and message.
sourcePerfChecker.suite_verdict Method
suite_verdict(result::SoftwareSuiteResult) -> SymbolSummarize execution and qualification in priority order: execution failure, blocked capability, invalid result, partial execution, no execution, validated, execution with warnings, or executed. Ordinary successful execution without a correctness oracle remains :executed.
PerfChecker.suite_version_series Method
Aggregate raw observations into plottable statistics for every package feature/version.
sourcePerfChecker.summary_table Method
summary_table(result::CheckerResult) -> TableBuild a compact table for REPL display or Pluto notebooks.
The summary uses a common schema across benchmark-like and allocation-like tables. Missing metrics are reported as missing rather than inferred.
PerfChecker.table_to_csv Method
table_to_csv(table::Table, path::String)Write a TypedTables.Table to path, creating the parent directory if needed.
PerfChecker.table_to_pie Function
table_to_pie(table, ::Val{backend}; kwargs...)Create a pie chart from a backend table. Currently implemented by the Makie package for allocation tables with Val(:alloc). Sites below 5% of allocated bytes are combined by default. Use min_percentage=0 to show smaller sites; top=40 caps legend entries, including the combined remainder.
PerfChecker.terminal_plot Function
Load UnicodePlots to render a performance plot model or a selected bundle plot in the terminal. This consumes existing observations without rerunning their workload.
PerfChecker.testitem_filter Function
testitem_filter(mode=:performance; tags=[], exclude_tags=[])Build a TestItemRunner filter. Untagged items are shared. :test_only excludes performance execution; :perf_only excludes functional execution. Contradictory tags are rejected. A nonempty tag selection matches any requested tag. Use @run_package_tests filter=testitem_filter(:test) in functional CI. Loading PerfChecker never changes TestItemRunner's default behavior.
PerfChecker.to_dict Method
to_dict(config::PerfConfig) -> Dict{Symbol, Any}Return a copy of the public options stored in config.
PerfChecker.to_table Function
to_table(raw_result) -> TypedTables.TableConvert a backend-specific raw result into a table stored by PerfChecker. Backends should extend this method for their raw result types.
sourcePerfChecker.tool_catalog Method
Inventory of implemented integrations and candidates; listing is never qualification.
sourcePerfChecker.version_comparison_dict Method
Return the dictionary representation of a VersionComparison with availability, series, comparisons and verdict. This is an in-memory conversion; it does not write a report or run a workload.
sourcePerfChecker.version_comparison_passed Method
Return true only when the within-bundle version comparison is :qualified.
PerfChecker.version_comparison_verdict Method
Return :invalid_input, :regressed, :qualified or :inconclusive for a VersionComparison. Empty records and incomplete evidence are inconclusive; a successful input bundle alone does not qualify a version comparison.
PerfChecker.wait_investigation Method
Wait for a launched investigation and retain incomplete or cancelled outcomes.
sourcePerfChecker.wait_suite Method
wait_suite(job::SuiteJob; strict=true) -> SoftwareSuiteResultWait for the controller task to finish. Rethrow orchestration failures and throw InterruptException for cancellation. With strict=true, a failed suite raises an error carrying its result; strict=false returns completed failure records for inspection. It does not suppress orchestration exceptions.
PerfChecker.worker_environment Method
Seed environment copied into every isolated measurement worker.
sourcePerfChecker.workload_id Method
Stable business-feature identifier shared by plans, reports, and user interfaces.
sourcePerfChecker.write_comparison_json Method
write_comparison_json(result::BundleComparison, path)Write canonical JSON comparison evidence. Create parent directories, replace the destination file and return its path. The input is saved evidence; this writer does not execute measurements.
sourcePerfChecker.write_comparison_markdown Method
write_comparison_markdown(result::BundleComparison, path)Write a Markdown comparison table and verdict. Create parent directories, replace the destination file and return its path. The input is saved evidence; this writer does not execute measurements.
sourcePerfChecker.write_compatibility_report Method
write_compatibility_report(result::CompatibilityReport, path)Write JSON preparation and compatibility evidence. Create parent directories, replace the destination file and return its path. The input is saved evidence; this writer does not execute measurements.
sourcePerfChecker.write_folded_profile Method
write_folded_profile(bundle, path; metric="julia.cpu.samples",
case_id="", version=nothing)Write matching saved stacks as folded stack/weight lines for flame-graph tools. Create parent directories, replace the file and return its absolute path. Reject an empty selection. This exports observations; it does not sample a process.
sourcePerfChecker.write_investigation_notebook Function
Generate an investigation notebook. Load PerfCheckerPluto before calling.
sourcePerfChecker.write_investigation_report Method
Write the same investigation as JSON and human-readable Markdown. Existing output requires force=true.
sourcePerfChecker.write_julia_investigation Method
write_julia_investigation(investigation::JuliaRegressionInvestigation, directory)Write julia-investigation.json and a Markdown attribution report in directory. Create the directory, replace these report files and return both absolute paths. This exports the supplied investigation without rerunning any runtime campaign.
PerfChecker.write_julia_runtime_campaign Method
write_julia_runtime_campaign(campaign::JuliaRuntimeCampaign, directory;
include_output=false)Write julia-runtime-campaign.json and a Markdown summary in directory and return both absolute paths. Existing report files are replaced. Captured process output is omitted from JSON unless include_output=true. No measurements run.
PerfChecker.write_pprof_profile Function
write_pprof_profile(bundle, path; metric="julia.cpu.samples",
case_id="", version=nothing, max_samples=100_000)Load PProf and FlameGraphs. Convert saved weighted stacks into a PProf file, returning its absolute path. The conversion approximates weights with repeated samples scaled by max_samples; it is not a fresh native-process profile. Reject nonpositive sample limits and profiles without positive weights.
PerfChecker.write_property_corpus Method
write_property_corpus(path, cases; producer="manual", metadata=Dict(), force=false)Persist JSON-compatible property-generated cases before benchmarking them. The result is an immutable input artifact: generation and shrinking do not run in the timed worker.
sourcePerfChecker.write_run_bundle Method
Write a run bundle using a temporary sibling and an atomic directory rename.
sourcePerfChecker.write_scenario_workflow Method
Write a new CI workflow consuming an explicitly selected catalog; never overwrite a workflow.
sourcePerfChecker.write_software_suite_template Function
Create an immediately runnable feature-oriented suite for the current package.
sourcePerfChecker.write_speedscope_profile Method
write_speedscope_profile(bundle, path; metric="julia.cpu.samples",
case_id="", version=nothing)Export matching saved stacks as a Speedscope sampled-profile JSON document. Weights use bytes for allocation metrics and unitless samples otherwise. Create parents, replace the file and return its absolute path; reject an empty selection.
sourcePerfChecker.write_suite_bundle Method
write_suite_bundle(result, root; run_id=uuid4(), attempt_id=uuid4(),
evidence="fresh")Convert a completed suite result into a portable bundle under root/run-<id>. Return the absolute bundle directory. The atomic writer rejects an existing destination. The evidence label is supplied by the caller; writing a bundle does not establish that previously cached observations were freshly measured.
PerfChecker.write_suite_json Method
write_suite_json(result::SoftwareSuiteResult, path)Write JSON suite evidence including per-run qualification. Create parent directories, replace the destination file and return its path. The input is saved evidence; this writer does not execute measurements.
sourcePerfChecker.write_suite_junit Method
write_suite_junit(result::SoftwareSuiteResult, path)Write JUnit XML, mapping error/blocked/invalid runs to failures and unavailable runs to skipped cases. Create parent directories, replace the destination file and return its path. The input is saved evidence; this writer does not execute measurements.
sourcePerfChecker.write_suite_markdown Method
write_suite_markdown(result::SoftwareSuiteResult, path)Write a Markdown suite summary with verdict and run statuses. Create parent directories, replace the destination file and return its path. The input is saved evidence; this writer does not execute measurements.
sourcePerfChecker.write_suite_notebook Function
write_suite_notebook(path; suite_path=nothing, factory=:build_suite,
profile=:quick, project=dirname(Base.active_project()),
result_path="results/suite-result.json", reports_root="results/notebook",
force=false)Load PerfCheckerPluto and generate an editable Pluto notebook. It selects a package, workload, collector and target, with explicit Launch, Cancel, Refresh and Save controls. Generation does not start Pluto or execute a workload. Without suite_path, the notebook only displays an existing saved result.
project must be a prepared controller environment containing PerfChecker, PlutoUI and the selected collectors. Relative report paths resolve beside the notebook; relative suite and project paths resolve from the caller's directory. Create parent directories and return the absolute notebook path. Reject an existing destination unless force=true explicitly permits replacement.
PerfChecker.write_suite_reports Method
write_suite_reports(result, directory; formats, relative_limits=Dict(),
min_samples=1, sample_statistics=Dict(),
default_sample_statistic=:median)Export a completed suite and return written paths. Defaults include JSON, Markdown, JUnit, a run bundle, version series and version-comparison reports. The comparison options control evidence reduction and budgets. Ordinary report files are replaced; bundles use new run directories. No workload is rerun.
sourcePerfChecker.write_template Method
write_template(kind::Symbol; path=nothing, force=false) -> StringWrite a Julia performance-checking template and return its path.
Supported template kinds are :benchmark, :chairmark, :alloc, and :pluto. The generated files use PerfConfig; no external configuration file format is introduced.
PerfChecker.write_version_comparison_json Method
write_version_comparison_json(result::VersionComparison, path)Write canonical JSON version-comparison evidence. Create parent directories, replace the destination file and return its path. The input is saved evidence; this writer does not execute measurements.
sourcePerfChecker.write_version_comparison_markdown Method
write_version_comparison_markdown(result::VersionComparison, path)Write a Markdown version-comparison report. Create parent directories, replace the destination file and return its path. The input is saved evidence; this writer does not execute measurements.
sourcePerfChecker.write_version_series_json Method
write_version_series_json(result::VersionComparison, path)Write canonical JSON series and target availability. Create parent directories, replace the destination file and return its path. The input is saved evidence; this writer does not execute measurements.
source