chronos

module
v0.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2025 License: MIT

README

🕐 chronos is a continuous benchmarking tool that tracks performance metrics over time
image

Features

Here are the features that chronos provides:

  • A UI with benchmark grouping, filtering, point comparison, and chart screenshots;
  • Summarization of pull request benchmarks (and comparison with the latest one) in GitHub Job Summary;

Rationale

There is at least one GitHub Action that serves the same purpose (github-action-benchmark), but I was not satisfied with it for several reasons:

  • Inconvenient UI with little to no interactivity;
  • The parser of benchmark output does not always work correctly and introduces weird units (e.g., B/op 437 ns/op);
  • The way of configuring the GitHub Action seemed a little cumbersome (but that's very subjective);

Setting chronos up

Preconfiguration

Since chronos operates on two Git branches (by default these are chronos-storage and gh-pages), you need to create and push these branches to the remote:

git checkout --orphan chronos-storage \
  && git commit --allow-empty -m "[chronos] init" \
  && git push origin chronos-storage

You must run the same commands for your GitHub Pages branch (if it has not been created yet).

git checkout --orphan gh-pages \
  && git commit --allow-empty -m "[chronos] init" \
  && git push origin gh-pages

Action Configuration

Please refer to this workflow file to understand how to incorporate chronos into your GitHub Workflows.

Here you can find what inputs chronos expects.

Don't worry - it's dead simple! Just don't forget to pin the release version.

Notes

I should mention that I used AI assistance to build the UI for data visualization (I am far from frontend development), but I performed common-sense checks of the code that was generated by the LLM - it's perfectly manageable.

Roadmap

  • Support benchstat format to mitigate noisy results;
  • Support compare (?) action which will fail when incoming benchmark results are significantly worse;
  • Support option to configure maximum count of data points on charts;

Directories

Path Synopsis
cmd
chronos command
examples
gotool module
pkg
git

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL