[armedbear-devel] changes to autoloading affecting PermGen space?

Alan Ruttenberg alanruttenberg at gmail.com
Wed Sep 5 02:46:37 UTC 2012


On Tue, Sep 4, 2012 at 7:05 PM, Alessio Stalla <alessiostalla at gmail.com>wrote:

> On Tue, Sep 4, 2012 at 8:16 PM, Alan Ruttenberg
> <alanruttenberg at gmail.com> wrote:
> >
> >
> > On Tue, Sep 4, 2012 at 1:59 PM, Erik Huelsmann <ehuels at gmail.com> wrote:
> >>
> >> Hi Alan, Alessio,
> >>
> >> On Tue, Sep 4, 2012 at 9:22 AM, Alessio Stalla <alessiostalla at gmail.com
> >
> >> wrote:
> >>>
> >>> On Tue, Sep 4, 2012 at 6:45 AM, Alan Ruttenberg
> >>> <alanruttenberg at gmail.com> wrote:
> >>> > I've recently been getting
> >>> >
> >>> > ; Evaluation aborted on #<JAVA-EXCEPTION java.lang.OutOfMemoryError:
> >>> > PermGen space {2D9FD5EA}>.
> >>> >
> >>> > I'm wondering whether it is possible that the recent changes to
> >>> > autoloading are filling more of this space, leading to my (and
> >>> > presumably others at some point) errors.
> >>>
> >>> Well, unless you're using tons of Java libraries, PermGen exhaustion
> >>> in ABCL pretty much implies a memory leak (such as many functions
> >>> never getting garbage collected). I don't know if that can be caused
> >>> by autoloads or not, though.
> >>
> >>
> >> The autoloads change simply means that several thousand instances of the
> >> Java class org.armedbear.lisp.Autoload are being instantiated instead of
> >> several hundred. I don't see how that would affect PermGen space.
> >>
> >> Could it be that your own project has surpassed some critical size?
> >
> >
> > No, this stuff worked before. I'm wondering if it is java 1.7 related. I
> was
> > getting all kinds of problems with different formulations of the java
> > startup - crazy stuff like not seeing the main class or not being able to
> > start it. I'm wondering whether there is some sort of truncation of
> command
> > line when using abcl under slime - running the same thing under a shell
> in
> > emacs worked.
> >
> > In any case, I'm now using java -jar abcl.jar, putting the classpath in
> > CLASSPATH, and adjusting the Permsize to 128m, and seem to be able to
> > continue.
> > I hate when I can't isolate things.
> >
> > If someone has time perhaps you can do some experiments with older and
> newer
> > versions of ABCL under 1.6 and 1.7, using the gc details setting to get a
> > peek at whether memory allocation looks to be different. But it isn't
> > blocking me atm.
>
> IIRC the default size of the PermGen is 64MB. Considering that
> abcl.jar is well below that size (and it includes a lot of files that
> are not Java classes), it cannot possibly fill that space by itself,
> unless it leaks memory.
>

That'd be my expectation too.

>
> That said, there are many things that could go wrong outside abcl. For
> example, if your 1.7 installation is a 64-bit VM while the 1.6 one was
> 32-bit, you should expect greater memory consumption, and perhaps abcl
> + your code become bigger than 64MB.
>

Did a little investigation into that. It turns out that growth of heap is
rather minimal, but this is a possibility, I suppose.


> Also, when do you get those PermGen errors? During compilation, loading,
> both?
>

Running. I'm using a visualization from prefuse and it was triggered on a
mouseover that otherwise would present a tooltip.

-Alan


>
> Alessio
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20120904/f0cce6d1/attachment.html>


More information about the armedbear-devel mailing list