git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] speedup allocation in pack-redundant.c

From
Alex Riesen <raa.lkml@gmail.com>
Date
Nov 22, 2005, 23:00 UTC
Message-ID
<20051122230011.GA2916@steel.home>
In-Reply-To
<7vek58ct4b.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano, Tue, Nov 22, 2005 21:41:56 +0100:
Show 7 quoted lines
> > Reuse discarded nodes of llists
> >
> > Signed-off-by: Alex Riesen <ariesen@harmanbecker.com>
> 
> I think making allocation/deallocation to the central place is a
> good cleanup, but I am not sure about the free-nodes reusing.
> Does this make difference in real life?

It definitely does, though nor very much. I have no real numbers at hand (being home now), but I remember it was 1 min with against 3 min without the patch on cygwin+fat32, which is already bad enough all by itself. Very big repository with no redundant packs in it.

> If so, it might be worth doing the slab-like allocation, since
> free-nodes are very small structure and malloc overhead is not
> ignorable there.
Like this?
    if ( free_nodes ) { ... }
    else {
	struct llist_node *slab = malloc(sizeof(*slab) * BLKCNT);
	for ( i =0; i < BLKCNT; ++i ) {
	    slab->next = free_nodes;
	    free_nodes = slab++;
	}
    }
Previous: Alex RiesenNext: Lukas Sandström
Message 6 of 10 in “speedup allocation in pack-redundant.c”
  1. speedup allocation in pack-redundant.cAlex Riesen, Nov 22, 2005
  2. Junio C HamanoNov 22, 2005
  3. Lukas SandströmNov 22, 2005
  4. Junio C HamanoNov 22, 2005
  5. Alex RiesenNov 22, 2005
  6. Alex RiesenNov 22, 2005
  7. Lukas SandströmNov 22, 2005
  8. Alex RiesenNov 22, 2005
  9. Lukas SandströmNov 22, 2005
  10. Alex RiesenNov 23, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.