summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorLibravatar Ben Peart <benpeart@microsoft.com>2017-10-18 10:27:25 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-11-08 10:39:41 +0900
commit00ec50e56d136de41f43c33f39cdbee83f3e4458 (patch)
tree31f42fd87d978a2d4d3515d7bfa916e4427eb8c7 /builtin
parentGit 2.14.3 (diff)
downloadtgif-00ec50e56d136de41f43c33f39cdbee83f3e4458.tar.xz
read_index_from(): speed index loading by skipping verification of the entry order
There is code in post_read_index_from() to catch out of order entries when reading an index file. This order verification is ~13% of the cost of every call to read_index_from(). Update check_ce_order() so that it skips this verification unless the "verify_ce_order" global variable is set. Teach fsck to force this verification. The effect can be seen using t/perf/p0002-read-cache.sh: Test HEAD HEAD~1 -------------------------------------------------------------------------------------- 0002.1: read_cache/discard_cache 1000 times 0.41(0.04+0.04) 0.50(0.00+0.10) +22.0% Signed-off-by: Ben Peart <benpeart@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r--builtin/fsck.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/builtin/fsck.c b/builtin/fsck.c
index d18244ab54..81cc5ad78d 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -763,6 +763,7 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
if (keep_cache_objects) {
verify_index_checksum = 1;
+ verify_ce_order = 1;
read_cache();
for (i = 0; i < active_nr; i++) {
unsigned int mode;