All,

I'm running my game code on pyglet 1.1.4, and am seeing what looks to
me like a memory leak. That is, while the code is executing the RSS
continually increases until eventually my laptop starts swapping and
eventually the code exits with a bus error.

I investigated with guppy: I did a heap dump once at startup, once
after the first slowdown due to running out of memory and hitting
swap, then once this is detected I exited pyglet and did one last heap
dump. I noticed that all three dumps showed approximately the same
heap size (approximately 18 MB), even though htop shows the code is
using gigabytes of memory.

>From what I've read, these heap dumps only show python memory usage,
which means the rest of the memory would be occupied by C code. If my
understanding is correct, this would seem to indicate a memory leak in
the ctypes that pyglet is generating. My understanding of the
underlying code is hazy, so please feel free to correct any incorrect
terminology I may be using or any other errors in my understanding/
description.

Here was the Apple crash report when I encountered the bus error:
https://gist.github.com/1612500

Here is the code that contains the memory problem:
https://github.com/greenmoss/NotOrion/tarball/bus_error

I created a utility to automatically trigger the condition. To run it,
download/untar the above tarball, then cd to the "demo" directory,
then execute "./label_move.py". If you allow this utility to run
continually, it should replicate the behavior described above. If you
have a lot of free memory, it may take a while to use it all before it
hits swap.

Does anyone have any suggestions for getting past this problem?

-- 
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pyglet-users?hl=en.

Reply via email to