diff options
author | Ben Peart <benpeart@microsoft.com> | 2018-10-10 11:59:38 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-10-11 15:32:48 +0900 |
commit | 77ff1127a4ca340fb9e81861a9851b0c3701bdc1 (patch) | |
tree | e8609ce68976f016703ab21c9e3123a0c8537440 /t/t4013/diff.format-patch_--attach_--stdout_initial..master | |
parent | ieot: add Index Entry Offset Table (IEOT) extension (diff) | |
download | tgif-77ff1127a4ca340fb9e81861a9851b0c3701bdc1.tar.xz |
read-cache: load cache entries on worker threads
This patch helps address the CPU cost of loading the index by utilizing
the Index Entry Offset Table (IEOT) to divide loading and conversion of
the cache entries across multiple threads in parallel.
I used p0002-read-cache.sh to generate some performance data:
Test w/100,000 files reduced the time by 32.24%
Test w/1,000,000 files reduced the time by -4.77%
Note that on the 1,000,000 files case, multi-threading the cache entry parsing
does not yield a performance win. This is because the cost to parse the
index extensions in this repo, far outweigh the cost of loading the cache
entries.
The high cost of parsing the index extensions is driven by the cache tree
and the untracked cache extensions. As this is currently the longest pole,
any reduction in this time will reduce the overall index load times so is
worth further investigation in another patch series.
Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4013/diff.format-patch_--attach_--stdout_initial..master')
0 files changed, 0 insertions, 0 deletions