============ 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!