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

Re: [PATCH 0/3] On compresing large index

From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
Date
Feb 6, 2012, 01:35 UTC
Message-ID
<CACsJy8AnGg11PeCGFs_BxOM3wAjwzs2tOCWJV31_2_KMFTxhDA@mail.gmail.com>
In-Reply-To
<87ehu9ug9i.fsf@thomas.inf.ethz.ch>
2012/2/6 Thomas Rast <trast@inf.ethz.ch>:
Show 7 quoted lines
>> We need to figure out what git uses 4s user time for.
>
> When I worked on the cache-tree stuff, my observation (based on
> profiling, so I had actual data :-) was that computing SHA1s absolutely
> dominates everything in such operations.  It does that when writing the
> index to write the trailing checksum, and also when loading it to verify
> that the index is valid.

You're right. This is on another machine but with same index (2M files), without SHA1 checksum:

$ time ~/w/git/git ls-files --stage|head > /dev/null real 0m1.533s user 0m1.228s sys 0m0.306s

and with SHA-1 checksum:

$ time git ls-files --stage|head > /dev/null real 0m7.525s user 0m7.257s sys 0m0.268s

I guess we could fall back to cheaper digests for such a large index. Still more than one second for doing nothing but reading index is too slow to me.

> ls-files shouldn't be so slow though.  A quick run with callgrind in a
> linux-2.6.git tells me it spends about 45% of its time on SHA1s and a
> whopping 25% in quote_c_style().  I wonder what's so hard about
> quoting...
That's why I put "| head" there, to cut output processing overhead (hopefully).
-- 
Duy
Previous: Thomas RastNext: Joshua Redstone
Message 6 of 7 in “On compresing large index”
  1. 0/3 On compresing large indexNguyễn Thái Ngọc Duy, Feb 5, 2012
  2. 1/3 read-cache: factor out cache entries reading codeNguyễn Thái Ngọc Duy, Feb 5, 2012
  3. 2/3 read-cache: reduce malloc/free during writing indexNguyễn Thái Ngọc Duy, Feb 5, 2012
  4. 3/3 Support compressing index when GIT_ZCACHE=1Nguyễn Thái Ngọc Duy, Feb 5, 2012
  5. Thomas RastFeb 5, 2012
  6. Nguyen Thai Ngoc DuyFeb 6, 2012
  7. Joshua RedstoneFeb 6, 2012

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.