mirror of https://github.com/Textualize/rich.git
30 lines
1.8 KiB
Markdown
30 lines
1.8 KiB
Markdown
# Benchmarking Rich
|
|
|
|
This directory contains benchmarks, for monitoring the performance of Rich over time.
|
|
|
|
View the benchmark dashboard [here](https://textualize.github.io/rich-benchmarks/).
|
|
|
|
The benchmarks use a tool called [Airspeed Velocity](https://asv.readthedocs.io/en/stable) (`asv`),
|
|
and we've configured it in [asv.conf.json](../asv.conf.json).
|
|
|
|
## Running Benchmarks
|
|
|
|
We strongly recommend running `asv run --help` for a full list of options, but
|
|
here are some common actions:
|
|
|
|
* You can run the benchmarks against the `master` branch with `asv run`.
|
|
* To test the most recent commit on your branch `asv run HEAD^!`.
|
|
* To generate a static website for browsing the results, run `asv publish`. The resulting HTML can be found in `benchmarks/html`.
|
|
|
|
The asv docs have some more examples [here](https://asv.readthedocs.io/en/stable/using.html#benchmarking).
|
|
|
|
## Updating the Benchmark Website
|
|
|
|
1. Ensure any tags you wish to benchmark are included in the file `asvhashfile` at the root of the repo.
|
|
2. Run the benchmarks for those tags by running `asv run HASHFILE:asvhashfile`. This will take several minutes.
|
|
3. Create the HTML locally for those benchmarks by running `asv publish`.
|
|
4. Run `asv preview` to launch a local webserver that will let you preview the benchmarks dashboard. Navigate to the URL this command gives you and check everything looks fine.
|
|
5. Checkout the `rich-benchmarks` repo from [here](https://github.com/Textualize/rich-benchmarks) and `cd` into it.
|
|
6. Copy the HTML you generated earlier into the root of this repo, e.g. `cp -r ../rich/benchmarks/html/* .` (assuming you checked out `rich-benchmarks` alongside `rich` in your filesystem)
|
|
7. When the HTML is merged into `main`, the [benchmark dashboard](https://textualize.github.io/rich-benchmarks/) will be updated automatically via a GitHub Action.
|