Re: [PATCH v2 2/2] sha1_file: improve sha1_file_name() perfs

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

 



Jeff Hostetler <git@xxxxxxxxxxxxxxxxx> writes:

>>     void sha1_file_name(struct strbuf *buf, const unsigned char
>> *sha1)
>>   {
>> -	strbuf_addf(buf, "%s/", get_object_directory());
>> +	const char *obj_dir = get_object_directory();
>> +	size_t extra = strlen(obj_dir) + 1 + GIT_MAX_HEXSZ;
>
> Very minor nit.  Should this be "+3" rather than "+1"?
> One for the slash after obj_dir, one for the slash between
> "xx/y[38]", and one for the trailing NUL.
>
>>   +	if (extra > strbuf_avail(buf))
>> +		strbuf_grow(buf, extra);

The callers who care use static strbuf with 1/2, which lets them
grow it to an appropriate size after they make their first call.

On the other hand, the ones to which performance does not matter by
definition do not care.

I actually think this whole "extra -> grow" business should be
discarded.  With a miscomputed "extra" like this, it does not help
anybody---everybody may pay cost for one extra realloc due to the
miscalculation, and the ones that do care also do during their first
call.





[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]

  Powered by Linux