Jeff King <peff@xxxxxxxx> writes: > On Mon, Nov 23, 2020 at 11:49:49AM -0500, Taylor Blau wrote: > >> On Sun, Nov 22, 2020 at 12:32:01PM -0800, Junio C Hamano wrote: >> > Taylor Blau <me@xxxxxxxxxxxx> writes: >> > >> > > - a geometric increase in existing size; we'll switch to 3/2 instead of >> > > 2 here. That's less aggressive and may help avoid fragmenting memory >> > > (N + 3N/2 > 9N/4, so old chunks can be reused as we scale up). >> > >> > I am sure this is something obvious to bitmap folks, but where does >> > 9N/4 come from (I get that the left-hand-side of the comparison is >> > the memory necessary to hold both the old and the new copy while >> > reallocating the words[] array)? >> >> I thought that I was in the group of "bitmap folks", but since it's not >> obvious to me either, I guess I'll have to hand in my bitmap folks >> membership card ;). >> >> Peff: where does 9N/4 come from? > > it is not a bitmap thing at all. We are growing a buffer, so if we > continually multiply it by 3/2, then our sequence of sizes is: > > - before growth: N > - after 1 growth: 3N/2 > - after 2 growths: 9N/4 AH, OK. I feel stupid not to have thought of this myself X-<. Thanks.