mimalloc-bench
mimalloc-bench copied to clipboard
Improve the speed of the benchmarks
Currently the CI takes around 90min to run: this is a bit excessive. Here is what we could do to reduce a bit this number:
- Change the parameters for the
redis
benchmark:SYSMALLOC=1 /__w/mimalloc-bench/mimalloc-bench/extern/redis-6.2.6/src/redis-benchmark -r 1000000 -n 1000000 -q -P 16 lpush a 1 2 3 4 5 lrange a 1 5
takes around a full minute, given that we have ~16 allocators, it adds up rapidly.- Done in 410f665d48cea57eee03551310ea8b9aa4f8129d
-
Lean
takes around 1-3 minutes per allocator, and is unmaintained. Shall we try to move to lean4 ?
So my wondering was about how to split the work up into more parallel tasks.
We could build a Docker image with all the benchmarks, and then we can install that image, and run build and test a subset of the allocators. This would allow us to increase the parallelism, without too much duplication of cost. It would provide a more stable test setup for replication.
I am imagining the allocators change more frequently than the benchmarks for this to make sense. But based on the PRs I think that is correct.
We would still want to test that we can build all the benchmarks, but that could be a separate task, and not have the allocator testing depend on it.
Unfortunately, I don't think that github actions has the concept of artifacts like gitlab does :/