My OOMs are in PermGen. This is essentially a default jetty instance, so
probably isn’t using ConcurrentMarkSweep and probably has a default
allocation. (Heap allocation is 500m to 1500m.) In addition to my
which contains JRuby and Spring, among others, jetty is running Hudson
a webapp that’s just JSPs). So there’s some load for sure.
But my whole webapp probably has about 30-40 classes at this point in
development. It’s still not even really in testing, though other members
my dev team are starting to rely on the server being there.
I’m using JRuby in a very limited way at the moment: Basically, I wanted
queries that were nicely formatted using here documents instead of the
clunky Java “blah” + " blah " + " blah." The plan is to use it more for
variety of things, but I thought this would be a good trial balloon.
you want more details.)
Here are some things I’m trying now to keep things tight:
Enforce singleton in the constructor of the interpreter (for the
prototyping work, this is fine.) I believe this is the default, but I
explicitly to be certain.
Set loadPaths explicitly to /WEB-INF/classes. It seems like if I
that, JRuby might try to bring in lots of outside classes? I’ve read up
the classpath/loadpaths distinctions, but I’m not sure I fully
what it’s doing.
I’m letting it run now to see if that fixes anything.
On Mon, Jan 25, 2010 at 12:32 PM, Rob H.