git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v4 0/4] read-cache: speed up add_index_entry

From
Ggit@jeffhostetler.com <git@jeffhostetler.com>
Date
Apr 4, 2017, 21:08 UTC
Message-ID
<20170404210847.50860-1-git@jeffhostetler.com>
From: Jeff Hostetler <jeffhost@microsoft.com>

Teach add_index_entry_with_check() and has_dir_name() to avoid index lookups if the given path sorts after the last entry in the index.

This saves at least 2 binary searches per entry.

This improves performance during checkout and read-tree because merge_working_tree() and unpack_trees() processes a list of already sorted entries.

This helps performance on very large repositories.

================ Before and after numbers on index with 1M files. ./p0004-read-tree.sh 0004.2: read-tree (1003037) 3.24(2.46+0.72) 0004.3: switch branches (3038 1003037) 7.53(5.66+1.56)

$ ./p0004-read-tree.sh 0004.2: read-tree (1003040) 2.45(1.79+0.61) 0004.3: switch branches (3041 1003040) 6.65(4.22+1.60)

================ Before and after numbers on index with 100K files.

./p0004-read-tree.sh 0004.2: read-tree (103037) 0.30(0.20+0.08) 0004.3: switch branches (3038 103037) 0.65(0.47+0.16)

$ ./p0004-read-tree.sh 0004.2: read-tree (103040) 0.25(0.16+0.07) 0004.3: switch branches (3041 103040) 0.58(0.44+0.13) ================

Jeff Hostetler (4):
  p0004-read-tree: perf test to time read-tree
  read-cache: add strcmp_offset function
  test-strcmp-offset: created test for strcmp_offset
  read-cache: speed up add_index_entry during checkout
 Makefile                      |  1 +
 cache.h                       |  1 +
 read-cache.c                  | 73 ++++++++++++++++++++++++++++++++++++-
 t/helper/.gitignore           |  1 +
 t/helper/test-strcmp-offset.c | 64 +++++++++++++++++++++++++++++++++
 t/perf/p0004-read-tree.sh     | 84 +++++++++++++++++++++++++++++++++++++++++++
 t/t0065-strcmp-offset.sh      | 11 ++++++
 7 files changed, 234 insertions(+), 1 deletion(-)
 create mode 100644 t/helper/test-strcmp-offset.c
 create mode 100755 t/perf/p0004-read-tree.sh
 create mode 100755 t/t0065-strcmp-offset.sh
-- 
2.9.3
Next: git@jeffhostetler.com
Message 1 of 5 in “read-cache: speed up add_index_entry”
  1. 0/4 read-cache: speed up add_index_entrygit@jeffhostetler.com, Apr 4, 2017
  2. 1/4 p0004-read-tree: perf test to time read-treegit@jeffhostetler.com, Apr 4, 2017
  3. 4/4 read-cache: speed up add_index_entry during checkoutgit@jeffhostetler.com, Apr 4, 2017
  4. 2/4 read-cache: add strcmp_offset functiongit@jeffhostetler.com, Apr 4, 2017
  5. 3/4 test-strcmp-offset: created test for strcmp_offsetgit@jeffhostetler.com, Apr 4, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.