|
From: JTK <je...@gm...> - 2012-10-30 07:37:10
|
Apologies in advance if this is a hopeless or pointless question. If the answer is "stop using an old version of SBCL" that's useful too.
I have a long running 1.0.42 64 bit SBCL gengc process on Linux (I'm using old SBCL because
I haven't upgraded my code for a newer version; there are matters of clsql compatibility, etc).
It runs for a long time, months, with several threads. At the end, there is just one thread "initial thread".
(ROOM) shows about 2.9 gigabytes of usage:
1,546,423,296 bytes for 1,688,136 simple-array-unsigned-byte-64 objects
1,027,264,928 bytes for 1,230,615 simple-vector-objects
…
2,928,858,816 bytes for 8,634,596 dynamic objects
I can't figure out what these vectors are. It's mostly unsigned-64 and generic vectors of length about 100.
So I deleted package after package, each time running (PROGN (GC :FULL T) (ROOM)). I'm left with nothing but
ASDF, the SB-, and GRAY-STREAM packages, and the dummy package I'm working in; CL-USER is gone. Yet the mystery
objects are still there, consuming 2.9 gigabytes of memory. I would have thought that at some point their top level
references would be gone along with the package, and they'd be deleted.
Does anyone have an idea what these could be?
Some detritus left after foreign function calls? Internal references to CLOS objects I don't know about? Just a leak in the GC?
Thanks for any tips,
John
|