Re: [RFC/PATCH 0/3] teach --histogram to diff
- From
Tay Ray Chuan <rctay89@gmail.com>
- Date
- Jul 13, 2011, 16:34 UTC
- Message-ID
- <CALUzUxqS8y4HH44t2CuSvfQiLP-Y7hFtbi5x2rtAwPBKSJ+3Bw@mail.gmail.com>
- In-Reply-To
- <CAJo=hJu5ubkzUyyPM0nqP+J9CU3hBtAHfuzaLSuN214Hux4qTA@mail.gmail.com>
On Tue, Jul 12, 2011 at 10:19 PM, Shawn Pearce <spearce@spearce.org> wrote:
> On Mon, Jul 11, 2011 at 23:10, Tay Ray Chuan <rctay89@gmail.com> wrote: >> [RFC/PATCH 3/3] xdiff/xprepare: use a smaller sample size for histogram > > Do we need sampling at all for histogram? Can you skip it?
Sampling is done to get a guess of lines in the file. This guess is then used to preallocated memory for the list of records. (This is just a guess; if we find more records we allocate more memory.) By doing this preallocation, we can save on malloc()'s, giving a performance boost.
But then sampling has its costs - previously, we ran up to 256 memchr('\n')s within a mmfile "block". For histogram diff, we cut the cap down to 20. (But not for the other diff algorithms - see the relevant patch text for more.) I think this gives us a good balance - time spent in guessing lines, and time gained from preallocating memory.
-- Cheers, Ray Chuan