[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: RE: Functions and memory usage
- From: "Alberto Demichelis" <alberto@...>
- Date: Thu, 17 Oct 2002 18:20:29 +0200
In our game we managed to reduce fragmetation to 0%.
What we do is managing small allocations(smaller than 513 bytes) and big allocations in a different way.
for every allocation size between 1 and 512 bytes we allocate a 4K page where we will store only object of a certain size;
for example 1 page with only 4 bytes chunks 1 page with only 32 bytes page.we round the allocations size to multiple of 4.
for all chunk bigger than 512 bytes, we allocate it with a normal general pourpose allocator using a "best fit" algorithm.
we "waste" 200/300k of memory every 100Mb allocated.
With this solution we have an allocator that is almost CPU free for small alloc/free and relatively fast for big alloc/free
because the number of chunk managed by the "best fit" are not so many.
we do not have a dedicated pool for lua but a dedicated pool for all game.
Crytek Studios GmbH
From: Benoit Germain [mailto:email@example.com]
Sent: Donnerstag, 17. Oktober 2002 17:30
To: Multiple recipients of list
Subject: RE: Functions and memory usage
I use dlmalloc too, and I have slightly modified it so that I can manage
several memory pools. That way, I ensure that fragmentation won't affect the
entire RAM, but will be confined to some area of my choosing. All I have to
do is dedicate one pool to LUA, et voilà :-).
> -----Original Message-----
> From: terenctb [mailto:firstname.lastname@example.org]
> Sent: jeudi 17 octobre 2002 08:12
> To: Multiple recipients of list
> Subject: Re: Functions and memory usage
> We are did try to use dlmalloc to replace the regular malloc but it
> didn't seem to make much difference...well other than the fact we are
> probably doing something wrong anyway ;-)>
> I also found out(not sure if the info that valid) that the dlmalloc
> is the same one used by in linux anyways so it seemed kinda silly to
> replace it.
> --- In lua-l@y..., Luiz Henrique de Figueiredo <lhf@t...> wrote:
> > >I think a lot of fragmentation problems are down to the allocation
> > >algorithm. There is some useful info here and I think this
> > >looks pretty good. I think I pulled it off this list a while ago.
> > >fast and should be good for a scripting system allocating and
> > >deallocating little blocks of similar sizes.
> > >http://g.oswego.edu/dl/html/malloc.html
> > We'd be very interested in knowing whether simply replacing the
> system malloc
> > and friends by dlmalloc (the one at the URL above) helps. It's
> difficult for
> > us to test memory allocation pattern in typical, real-life cases.
> So, someone
> > with memory fragmentation problems or suspicion of such, could you
> please try
> > dlmalloc and see if makes any difference? Please report here.
> > Another thing: Lua typically does not deallocating little blocks of
> > sizes: strings and userdata allocated their "data" arrays right
> after the
> > "header" part.
> > --lhf