mimalloc-bench icon indicating copy to clipboard operation
mimalloc-bench copied to clipboard

Improve the speed of the benchmarks

Open jvoisin opened this issue 2 years ago • 2 comments

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 ?

jvoisin avatar Jun 05 '22 18:06 jvoisin

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.

mjp41 avatar Jun 07 '22 07:06 mjp41

Unfortunately, I don't think that github actions has the concept of artifacts like gitlab does :/

jvoisin avatar Jun 23 '22 19:06 jvoisin