read_index_from(): speed index loading by skipping verification of the entry order
authorBen Peart <benpeart@microsoft.com>
Wed, 18 Oct 2017 14:27:25 +0000 (10:27 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 8 Nov 2017 01:39:41 +0000 (10:39 +0900)
commit00ec50e56d136de41f43c33f39cdbee83f3e4458
tree31f42fd87d978a2d4d3515d7bfa916e4427eb8c7
parentfc849d8d6b90e5c1e0c37bc0d60dd92b2fe7347f
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>
builtin/fsck.c
cache.h
read-cache.c