mirror of
https://github.com/git-for-windows/git.git
synced 2026-04-12 16:44:58 -05:00
checkout.c: enable fscache for checkout again
This is retry of #1419. I added flush_fscache macro to flush cached stats after disk writing with tests for regression reported in #1438 and #1442. git checkout checks each file path in sorted order, so cache flushing does not make performance worse unless we have large number of modified files in a directory containing many files. Using chromium repository, I tested `git checkout .` performance when I delete 10 files in different directories. With this patch: TotalSeconds: 4.307272 TotalSeconds: 4.4863595 TotalSeconds: 4.2975562 Avg: 4.36372923333333 Without this patch: TotalSeconds: 20.9705431 TotalSeconds: 22.4867685 TotalSeconds: 18.8968292 Avg: 20.7847136 I confirmed this patch passed all tests in t/ with core_fscache=1. Signed-off-by: Takuto Ikuta <tikuta@chromium.org>
This commit is contained in:
committed by
Git for Windows Build Agent
parent
74e068a28f
commit
0b16d8d5bf
@@ -640,6 +640,7 @@ static void write_items_sequentially(struct checkout *state)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
flush_fscache();
|
||||
for (i = 0; i < parallel_checkout.nr; i++) {
|
||||
struct parallel_checkout_item *pc_item = ¶llel_checkout.items[i];
|
||||
write_pc_item(pc_item, state);
|
||||
|
||||
Reference in New Issue
Block a user