Thread (55 messages) flat view 55 messages, 11 authors, 2016-06-15

Re: [PATCH 2/2] Implement a simple delta_base cache

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 22:43:00


On Sat, 17 Mar 2007, Morten Welinder wrote:
quoted
        samples  %        app name                 symbol name
        41527    15.6550  git                      strlen
Almost 16% in strlen?  Ugh!

That's a lot of strings, or perhaps very long strings.  Or a profiling bug.
It's likely real, and the problem is likely lots of small strings.

Each git tree entry is:

	"<octal mode> name\0" <20-byte sha1>

so you do have a *lot* of strlen() calls when doing any tree parsing. And 
for some inexplicable reason, glibc thinks strings are long on average, so 
it has a fancy algorithm to do 8 bytes at a time and tries to do things 
aligned etc.

The size of strlen() on x86-64 with glibc is 232 bytes. I'm not kidding.

			Linus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help