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

Re: Git-status / preload_index() performance

From
Karsten Blees <karsten.blees@gmail.com>
Date
Jun 24, 2014, 23:25 UTC
Message-ID
<53AA08D1.5080205@gmail.com>
In-Reply-To
<1403651538.22828.4.camel@stross>
Am 25.06.2014 01:12, schrieb David Turner:
Show 9 quoted lines
> On Wed, 2014-06-25 at 00:52 +0200, Karsten Blees wrote:
>> Even more time is spent unpacking the HEAD tree, even with hot cache (repacking with depth 10 reduces this to ~250ms, on SSD its just 7ms). Perhaps caching the HEAD tree in an index extension could help here?
> 
> This is approximately what the cache-tree extension does.  However, it's
> a bit broken.  I've been working on a fix, but slowly because my other
> work has taken me longer than expected.  You can see the effect of the
> cache-tree extension by doing git reset --hard HEAD; this temporarily
> restores that extension.
> 
Indeed:

01:32:35.965910 builtin/commit.c:1374 performance: 0.097505786 s: cmd_status:setup ... 01:32:36.047534 preload-index.c:129 performance: 0.081458337 s: read_index_preload 01:32:36.056204 read-cache.c:1226 performance: 0.008641527 s: refresh_index 01:32:36.059237 builtin/commit.c:1385 performance: 0.002997060 s: cmd_status:update_index 01:32:36.065163 wt-status.c:630 performance: 0.005732979 s: wt_status_collect_changes_worktree 01:32:36.072078 wt-status.c:638 performance: 0.006832976 s: wt_status_collect_changes_index 01:32:36.072150 wt-status.c:643 performance: 0.000000374 s: wt_status_collect_untracked 01:32:36.072211 trace.c:414 performance: 0.204069579 s: git command: 'git' 'status' '-s' '-uno'

Thanks
Previous: David Turner
Message 9 of 9 in “Git-status / preload_index() performance”
  1. Karsten BleesJun 24, 2014
  2. preload-index: optimize for sequential IOKarsten Blees, Jun 24, 2014
  3. preload-index: make parallel IO configurableKarsten Blees, Jun 24, 2014
  4. test git-status performanceKarsten Blees, Jun 24, 2014
  5. Duy NguyenJun 26, 2014
  6. Duy NguyenJul 26, 2014
  7. Duy NguyenJul 26, 2014
  8. David TurnerJun 24, 2014
  9. Karsten BleesJun 24, 2014

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.