[Pingus-Devel] Memory consumption in pingus 0.7.2

2008-07-19 Thread usb
Hi all,

I'm trying to port Pingus to an embeded arm system (tomtom navigation system). 
And amazingly enough, it works. But...

My system has no swap configured and it has 64mb of ram. Pingus seem to use 
memory quite extensively and I see in memory log that after every complete 
level amount of free memory is declining very rapidly.

So I have kernel oops on the middle of 3rd level...

My question is: Is it possible to reduce the memory usage?

Maybe there is a bug in memry manager or something that does not free sdl 
surfaces after they are used? 


Sincerely,

Serg___
Pingus-Devel mailing list
Pingus-Devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/pingus-devel


Re: [Pingus-Devel] Memory consumption in pingus 0.7.2

2008-07-19 Thread Ingo Ruhnke
On Sun, Jul 20, 2008 at 1:21 AM,  <[EMAIL PROTECTED]> wrote:
> Maybe there is a bug in memry manager or something that does not free sdl
> surfaces after they are used?

There were a handful of memory leaks that have been closed in the
meantime. So I suggest you try the latest SVN version to see if that
performs better.

It would of course also be possible to reduce the memory usage of
Pingus further, there certainly is still quite a bit of room left.

Some things that come to mind:

* resource system got ripped out in the ClanLib->SDL switch and isn't
back yet, so some surfaces are keep in memory twice even so they are
identical (I'll fix that in the next days/weeks)

* collision map is keep in memory as one piece instead of as sparse
tiles, so we waste a bit of space (colmap consumes ~2MB for a
1920x1200 level)

* graphical level map is hold in memory twice (once in software and
once on the GPU) and hold as 32bit RGBA, this could certainly be
optimized for some systems, i.e. use 16bit or 24bit RGB + Colorkey,
share the GPU and software surfaces, since they are identical on some
platforms or don't keep them in software at all (levelmap takes around
10MB for a 1920x1200 level)

* the whole screenstack is kept in memory, so the menu background and
such are kept in memory even when not visible

-- 
WWW: http://pingus.seul.org/~grumbel/
Blog: http://grumbel.blogspot.com/
JabberID: xmpp:[EMAIL PROTECTED]
ICQ: 59461927


___
Pingus-Devel mailing list
Pingus-Devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/pingus-devel