From: David Kastrup <dak@gnu.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] blame.c: prepare_lines should not call xrealloc for every line
Date: Tue, 04 Feb 2014 22:09:44 +0100 [thread overview]
Message-ID: <87d2j2wpnr.fsf@fencepost.gnu.org> (raw)
In-Reply-To: <xmqq4n4e8uf1.fsf@gitster.dls.corp.google.com> (Junio C. Hamano's message of "Tue, 04 Feb 2014 13:00:50 -0800")
Junio C Hamano <gitster@pobox.com> writes:
> Junio C Hamano <gitster@pobox.com> writes:
>
>> David Kastrup <dak@gnu.org> writes:
>>
>>> Whitespace error in line 1778. Should I be reposting?
>>
>> Heh, let me try to clean it up first and then repost for your
>> review.
>>
>> Thanks.
>
> -- >8 --
> From: David Kastrup <dak@gnu.org>
>
> Making a single preparation run for counting the lines will avoid memory
> fragmentation. Also, fix the allocated memory size which was wrong
> when sizeof(int *) != sizeof(int), and would have been too small
> for sizeof(int *) < sizeof(int), admittedly unlikely.
>
> Signed-off-by: David Kastrup <dak@gnu.org>
> ---
>
> One logic difference from what was posted is that sb->lineno[num]
> is filled with the length of the entire buffer when the file ends
> with a complete line.
Where's the difference? This is exactly what will happen with my code
as well. I _do_ rely on memchr(whatever, '\n', 0) to return NULL
without looking at any memory for that. If there is a fear of memchr
not being able to deal with a count of 0, this code needs to be somewhat
more complex.
> I do not remember if the rest of the logic
> actually depends on it (I think I use lineno[n+1] - lineno[n] to
> find the end of line,
Well, you do it about _half_ the time. The other half, you scan for the
'\n' explicitly.
> The original code dates back to 2006 when the author of the code
> was not paid for doing anything for Git but was doing it as a
> weekend and evening hobby, so it may not be so surprising to find
> this kind of "what was I thinking when I wrote it" inefficiency in
> such a code with $0 monetary value ;-)
Oh, _this_ patch is not in the "I want to make money from it" range. If
that were the case, I should not have bothered at all. This is just the
"this code offends my sense of aesthetics" class. It's purely optional
to apply. It's conceivable that it will make a performance difference
on non-glibc (or what it's called) platforms.
--
David Kastrup
next prev parent reply other threads:[~2014-02-04 21:17 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-04 20:06 [PATCH] blame.c: prepare_lines should not call xrealloc for every line David Kastrup
2014-02-04 20:10 ` David Kastrup
2014-02-04 20:49 ` Junio C Hamano
2014-02-04 21:00 ` Junio C Hamano
2014-02-04 21:09 ` David Kastrup [this message]
2014-02-04 22:28 ` Philip Oakley
2014-02-04 22:48 ` Philip Oakley
2014-02-04 20:24 ` Junio C Hamano
2014-02-04 20:52 ` David Kastrup
2014-02-04 21:03 ` Junio C Hamano
2014-02-04 21:11 ` David Kastrup
2014-02-04 21:41 ` Junio C Hamano
2014-02-04 21:27 ` David Kastrup
2014-02-04 21:44 ` Junio C Hamano
2014-02-04 21:48 ` David Kastrup
2014-02-04 22:06 ` Junio C Hamano
2014-02-05 8:39 ` David Kastrup
2014-02-05 20:39 ` Junio C Hamano
2014-02-06 0:34 ` David Kastrup
2014-02-06 10:29 ` David Kastrup
2014-02-05 9:22 ` David Kastrup
2014-02-05 20:34 ` Junio C Hamano
2014-02-05 23:45 ` David Kastrup
-- strict thread matches above, loose matches on Subject: below --
2014-02-04 21:40 David Kastrup
2014-02-04 21:46 David Kastrup
2014-02-12 14:27 David Kastrup
2014-02-12 19:36 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d2j2wpnr.fsf@fencepost.gnu.org \
--to=dak@gnu.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).