• Max Kellermann's avatar
    tag: added a pool for tag items · c855415c
    Max Kellermann authored
    The new source tag_pool.c manages a pool of reference counted tag_item
    objects.  This is used to merge tag items of the same type and value,
    saving lots of memory.  Formerly, only the value itself was pooled,
    wasting memory for all the pointers and tag_item structs.
    
    The following results were measured with massif.  Started MPD on
    amd64, typed "mpc", no song being played.  My music database contains
    35k tagged songs.  The results are what massif reports as "peak".
    
     0.13.2:     total 14,131,392; useful 11,408,972; extra 2,722,420
     eric:       total 18,370,696; useful 15,648,182; extra 2,722,514
     mk f34f694e: total 15,833,952; useful 13,111,470; extra 2,722,482
     mk now:     total 12,837,632; useful 10,626,383; extra 2,211,249
    
    This patch set saves 20% memory, and does a good job in reducing heap
    fragmentation.
    c855415c
Name
Last commit
Last update
bs Loading commit data...
doc Loading commit data...
m4 Loading commit data...
scripts Loading commit data...
src Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
Makefile.am Loading commit data...
README Loading commit data...
TODO Loading commit data...
UPGRADING Loading commit data...
autogen.sh Loading commit data...
build.mk Loading commit data...
configure.ac Loading commit data...