On Tue, 2012-12-04 at 21:47 +0000, Craig Lanning wrote:
> On Tue, 2012-12-04 at 15:58 -0500, Martin Cracauer wrote:
> > Craig Lanning wrote on Tue, Dec 04, 2012 at 08:33:28PM +0000:
> > > The company I work for currently uses SBCL to run the Common Lisp part
> > > of the code for a product that we are developing. While testing to see
> > > how much data I could add before it ran out of memory, I found that it
> > > died with what looked to me to be a large amount of free memory. I am
> > > planning to look at the GC to see if there is anything I can do to help
> > > the situation.
> > >
> > > First I plan to document the current garbage collector (gencgc), then
> > > I'll look at making changes. I've started writing a Garbage Collector
> > > chapter for the SBCL Internals document. Right now it is little more
> > > than a collection of my notes. If anyone else has info on the gencgc
> > > collector that they would like to share with me, I would appreciate it.
> > You run out of heap with (room) displaying a lot less objects in use
> > than what you have set as dynamic heap size because the GC needs large
> > contiguous areas as copy targets. It's more of a fragmentation
> > problem. You don't actually need as much RAM as the dynamic heap size
> > would indicate.
> > That's harmless, just set the dynamic heap size large enough to not
> > die. You then watch actual RAM usage to detect real problems.
> > With the toy at work we use a lower dynamic heap size in one usage
> > setting because that presents a natural automatic killswitch against
> > rapid endless memory growth (such as from recursion with allocation).
> > That way we can't have some crazy fare rules causing one process to
> > wipe out the whole machine and everything on it. But that's special
> > case because we voluntarily die in favor of keeping other things going
> > smoothly.
> > Martin
> Another thing I'm interested in is having some way to monitor the GC
> system so that I can determine when it is getting close to running out
> of memory. That way I can reconfigure the application to use less
> memory, but be slower.
I'm back looking at the Garbage Collector. I noticed that most of the
GC code in implemented in C. Is there any particular reason it is not
implemented in Lisp?
>>>CONFIDENTIALITY NOTICE>>> This electronic mail message, including any and/or all attachments, is for the sole use of the intended recipient(s), and may contain confidential and/or privileged information, pertaining to business conducted under the direction and supervision of the sending organization. All electronic mail messages, which may have been established as expressed views and/or opinions (stated either within the electronic mail message or any of its attachments), are left to the sole responsibility of that of the sender, and are not necessarily attributed to the sending organization. Unauthorized interception, review, use, disclosure or distribution of any such information contained within this electronic mail message and/or its attachment(s), is(are) strictly prohibited. If you are not the intended recipient, please contact the sender by replying to this electronic mail message, along with the destruction of all copies of the original electronic mail message (along with any attachments).