Merge branch 'nd/threaded-index-pack'

Enables threading in index-pack to resolve base data in parallel.

By Nguyễn Thái Ngọc Duy (3) and Ramsay Jones (1)
* nd/threaded-index-pack:
  index-pack: disable threading if NO_PREAD is defined
  index-pack: support multithreaded delta resolving
  index-pack: restructure pack processing into three main functions
  compat/win32/pthread.h: Add an pthread_key_delete() implementation
This commit is contained in:
Junio C Hamano
2012-05-14 11:50:40 -07:00
5 changed files with 331 additions and 67 deletions

40
t/perf/p5302-pack-index.sh Executable file
View File

@ -0,0 +1,40 @@
#!/bin/sh
test_description="Tests index-pack performance"
. ./perf-lib.sh
test_perf_large_repo
test_expect_success 'repack' '
git repack -ad &&
PACK=`ls .git/objects/pack/*.pack | head -n1` &&
test -f "$PACK" &&
export PACK
'
test_perf 'index-pack 0 threads' '
GIT_DIR=t1 git index-pack --threads=1 --stdin < $PACK
'
test_perf 'index-pack 1 thread ' '
GIT_DIR=t2 GIT_FORCE_THREADS=1 git index-pack --threads=1 --stdin < $PACK
'
test_perf 'index-pack 2 threads' '
GIT_DIR=t3 git index-pack --threads=2 --stdin < $PACK
'
test_perf 'index-pack 4 threads' '
GIT_DIR=t4 git index-pack --threads=4 --stdin < $PACK
'
test_perf 'index-pack 8 threads' '
GIT_DIR=t5 git index-pack --threads=8 --stdin < $PACK
'
test_perf 'index-pack default number of threads' '
GIT_DIR=t6 git index-pack --stdin < $PACK
'
test_done