1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
# Benchmarking
cattrs includes a benchmarking suite to help detect performance regressions and
guide performance optimizations.
The suite is based on pytest and pytest-benchmark. Benchmarks are similar to
tests, with the exception of being stored in the `bench/` directory and being
used to verify performance instead of correctness.
## A Sample Workflow
First, ensure the system you're benchmarking on is as stable as possible. For
example, the pyperf library has a `system tune` command that can tweak
CPU frequency governors. You also might want to quit as many applications as
possible and run the benchmark suite on isolated CPU cores (`taskset` can be
used for this purpose on Linux).
Then, generate a baseline using `make bench`. This will run the benchmark suite
and save it into a file.
Following that, implement the changes you have in mind. Run the test suite to
ensure correctness. Then, compare the performance of the new code to the saved
baseline using `make bench-cmp`. If the code is still correct but faster,
congratulations!
|