All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johan Herland <johan@herland.net>
To: git@vger.kernel.org
Cc: Alex Riesen <raa.lkml@gmail.com>,
	gitster@pobox.com, Johannes.Schindelin@gmx.de,
	trast@student.ethz.ch, tavestbo@trolltech.com,
	git@drmicha.warpmail.net, chriscool@tuxfamily.org,
	spearce@spearce.org
Subject: Re: [PATCHv4 10/12] notes.c: Implement simple memory pooling of leaf nodes
Date: Thu, 27 Aug 2009 11:49:10 +0200	[thread overview]
Message-ID: <200908271149.11003.johan@herland.net> (raw)
In-Reply-To: <81b0412b0908270039l7a937c3bmd745274c71526ce1@mail.gmail.com>

On Thursday 27 August 2009, Alex Riesen wrote:
> On Thu, Aug 27, 2009 at 03:43, Johan Herland<johan@herland.net> wrote:
> > When allocating a new memory pool, the older pool is leaked, but this
> > is no worse than the current situation, where (pretty much) all
> > leaf_nodes are leaked anyway.
>
> Could you return the unused nodes back into the mempool?
> By making the pool a preallocated list, perhaps?

Yes, maintaining a free-list is certainly possible. However, the number of 
free()d leaf_nodes is relatively small (only subtree entries are free()d 
after unpacking them into the tree structure), so I'm not sure it pays off, 
runtime-wise.

> And then it is trivial to provide a deallocation function for the
> mempool, which something really concerned about the memleak can call
> (like when or if libgit get more usable in an application context).

Yes, I plan to provide a free_notes() function that free()s all the memory 
associated with the notes data structure. This would of course keep 
references to all the mempools, and deallocate them (along with all the 
int_nodes).


...Johan

-- 
Johan Herland, <johan@herland.net>
www.herland.net

  reply	other threads:[~2009-08-27  9:50 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-27  1:43 [PATCHv4 00/12] git notes Johan Herland
2009-08-27  1:43 ` [PATCHv4 01/12] Introduce commit notes Johan Herland
2009-08-27  1:43 ` [PATCHv4 02/12] Add a script to edit/inspect notes Johan Herland
2009-08-27  1:43 ` [PATCHv4 03/12] Speed up git notes lookup Johan Herland
2009-08-27  1:43 ` [PATCHv4 04/12] Add an expensive test for git-notes Johan Herland
2009-08-27  1:43 ` [PATCHv4 05/12] Teach "-m <msg>" and "-F <file>" to "git notes edit" Johan Herland
2009-08-27  1:43 ` [PATCHv4 06/12] fast-import: Add support for importing commit notes Johan Herland
2009-08-27  1:43 ` [PATCHv4 07/12] t3302-notes-index-expensive: Speed up create_repo() Johan Herland
2009-08-27  1:43 ` [PATCHv4 08/12] Teach the notes lookup code to parse notes trees with various fanout schemes Johan Herland
2009-08-27  5:00   ` Junio C Hamano
2009-08-27  9:35     ` Johan Herland
2009-08-27 10:47       ` Johannes Schindelin
2009-08-27 20:58         ` Junio C Hamano
2009-08-28  8:48           ` Johannes Schindelin
2009-08-27 20:55       ` Junio C Hamano
2009-08-27 21:27         ` Shawn O. Pearce
2009-08-27 21:50           ` Junio C Hamano
2009-08-27 23:03             ` Johan Herland
2009-08-27 23:39               ` Jeff King
2009-08-28  0:30                 ` Junio C Hamano
2009-08-28  0:40                   ` Sverre Rabbelier
2009-08-28  1:43                     ` Junio C Hamano
2009-08-28  2:51                       ` Sverre Rabbelier
2009-08-28  3:02                         ` Junio C Hamano
2009-08-28  3:05                           ` Sverre Rabbelier
2009-08-28  3:35                             ` Junio C Hamano
2009-08-28  8:51               ` Johannes Schindelin
2009-08-28 10:40                 ` Johan Herland
2009-08-28 11:56                   ` Johannes Schindelin
2009-08-28 14:15                     ` Johan Herland
2009-08-27 10:42     ` Johannes Schindelin
2009-08-27  1:43 ` [PATCHv4 09/12] Selftests verifying semantics when loading notes trees with various fanouts Johan Herland
2009-08-27  1:43 ` [PATCHv4 10/12] notes.c: Implement simple memory pooling of leaf nodes Johan Herland
2009-08-27  7:39   ` Alex Riesen
2009-08-27  9:49     ` Johan Herland [this message]
2009-08-27 22:43       ` Johan Herland
2009-08-27  1:43 ` [PATCHv4 11/12] Add flags to get_commit_notes() to control the format of the note string Johan Herland
2009-08-27  1:43 ` [PATCHv4 12/12] Add '%N'-format for pretty-printing commit notes Johan Herland

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=200908271149.11003.johan@herland.net \
    --to=johan@herland.net \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=chriscool@tuxfamily.org \
    --cc=git@drmicha.warpmail.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=raa.lkml@gmail.com \
    --cc=spearce@spearce.org \
    --cc=tavestbo@trolltech.com \
    --cc=trast@student.ethz.ch \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.