perf: run the gc before each run
The python garbage collector is a large source of performance troubles, we run
it right before the timed section to reduce the change for the gc to add noise
to the benchmark.
--- a/contrib/perf.py Sun Apr 14 02:38:41 2024 +0200+++ b/contrib/perf.py Sun Apr 14 02:40:15 2024 +0200@@ -581,6 +581,7 @@ if setup is not None: setup() with context():+ gc.collect() with prof: with timeone() as item: r = func()