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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Sat, 17 Mar 2007, Morten Welinder wrote:
>
> >         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
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]