Skip to content

Commit

Permalink
fixup! TEST: benchmark allocators
Browse files Browse the repository at this point in the history
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 <johannes.schindelin@gmx.de>
  • Loading branch information
dscho committed Aug 15, 2022
1 parent 135277c commit 0bf6c5a
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/mimalloc-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 0bf6c5a

Please sign in to comment.