Your first comparison
PerfChecker measures the same operation across package versions and keeps the conditions with the result. Install Core in a Julia project:
] add PerfCheckerFor this benchmark, also run ] add BenchmarkTools. The figure needs PerfCheckerMakie and WGLMakie; they are optional, separate installations.
using PerfChecker, BenchmarkTools
config = PerfConfig(:benchmark; path = dirname(Base.active_project()),
pkgs = ("Bibliography", :custom, [v"0.3.1", v"0.4.0"], false),
include_current = false, samples = 50, evals = 1, seconds = 1.0)
result = @check config begin
using Bibliography
entries = Bibliography.import_bibtex(
"@article{example, title={A small example}, author={Ada Lovelace}, " *
"journal={Julia Studies}, year={2026}}\n")
end begin
Bibliography.export_bibtex(entries)
end
using PerfCheckerMakie, WGLMakie
WGLMakie.activate!()
checkres_to_scatterlines(result, Val(:benchmark))Preparation parses one entry once outside the timed export; the read-only benchmark reuses it. Two released versions are measured with fifty samples each; dependencies resolve for each release. This compares complete resolved stacks, not an isolated source change.
Each curve has its own reference at 1. Read the statistic, reference, units and unavailable values in the exported plot before comparing curves.
Open the same interactive export · Download the serialized plot
The recorded example uses exactly this workload: Linux, Julia 1.13.1, BenchmarkTools 1.7.0. Release 0.4.0 has lower minimum time but higher allocated bytes and allocation count. Four curves overlay each metric's minimum divided by its minimum across the two versions; 1 is the reference, and equal zeros are shown at 1. Inspect a point for its original value, unit and capture conditions. A lower minimum alone does not prove an improvement.
Continue with a focused investigation, then a suite and CI. Installation details and measurement definitions remain available as references.
ARM installations
Published Core 1.1.0 pins CpuId 0.3.0, whose import can fail on aarch64, including Apple Silicon. All six companions depend on Core, so installing them by name does not bypass this reported failure. A source correction must be validated and released before installations from General receive it. Saved examples retain their original capture environments.
