perf: compare diff algorithms

8c912ee (teach --histogram to diff, 2011-07-12) claimed histogram diff
was faster than both Myers and patience.

We have since incorporated a performance testing framework, so add a
test that compares the various diff tasks performed in a real 'log -p'
workload.  This does indeed show that histogram diff slightly beats
Myers, while patience is much slower than the others.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Thomas Rast 2012-03-06 14:15:01 +01:00 committed by Junio C Hamano
parent 2980b0de1b
commit 85551232b5

29
t/perf/p4000-diff-algorithms.sh Executable file
View file

@ -0,0 +1,29 @@
#!/bin/sh
test_description="Tests diff generation performance"
. ./perf-lib.sh
test_perf_default_repo
test_perf 'log -3000 (baseline)' '
git log -1000 >/dev/null
'
test_perf 'log --raw -3000 (tree-only)' '
git log --raw -3000 >/dev/null
'
test_perf 'log -p -3000 (Myers)' '
git log -p -3000 >/dev/null
'
test_perf 'log -p -3000 --histogram' '
git log -p -3000 --histogram >/dev/null
'
test_perf 'log -p -3000 --patience' '
git log -p -3000 --patience >/dev/null
'
test_done