From 0bf6c5a6392f1a6cbcc80ce495f1d6541cc2c84e Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Mon, 15 Aug 2022 10:13:43 +0200 Subject: [PATCH] fixup! TEST: benchmark allocators The performance test results are inconclusive (see https://github.com/dscho/git/actions/runs/2857346255): the standard deviation between the runs with a specific allocator seems to be larger than the difference between the allocators: M M2 D N run #1 624.65 638.37 669.96 650.83 run #2 648.46 653.38 655.63 650.52 run #3 643.72 634.63 647.15 650.88 run #4 661.46 657.36 666.27 664.79 run #5 661.02 669.21 666.06 678.14 where M is running with mimalloc, M2 also mimalloc but setting MIMALLOC_RESET_DELAY=1, MIMALLOC_EAGER_COMMIT=0 and MIMALLOC_RESET_DECOMMITS=1, D using the default allocator and N using nedmalloc This is when compiling with gcc. With MSVC, the numbers are consistently larger: M M2 D N run #1 909.93 929.10 869.86 875.60 run #2 842.44 874.36 882.67 882.79 run #3 879.07 858.80 866.01 871.63 run #4 870.59 876.81 900.35 889.55 run #5 891.71 888.66 897.45 891.81 The difference between gcc and MSVC is actually a lot larger than the difference between allocators! The best conclusion I can draw is that the `git repack -q -d -l -A` invocation does not actually exercise the allocators enough. Let's try something different. Signed-off-by: Johannes Schindelin --- .github/workflows/mimalloc-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mimalloc-test.yml b/.github/workflows/mimalloc-test.yml index d77addc01025b7..a81edd8039e730 100644 --- a/.github/workflows/mimalloc-test.yml +++ b/.github/workflows/mimalloc-test.yml @@ -233,7 +233,7 @@ jobs: rm -rf bare.git && cp -R bare-repo.git bare.git && - time MinGit-$compiler-$allocator/cmd/git.exe -C bare.git repack -q -d -l -A || + time MinGit-$compiler-$allocator/cmd/git.exe -C bare.git repack -q -d -l -A --unpack-unreachable=2.weeks.ago || exit 1 done done