Ok guys,
After trying all your suggestions, here is the combination that worked
best for me (in the order of their impact solving the problem):
JVM_FLAGS="-server \
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode \
-XX:+UseCompressedOops \
-XX:+DoEscapeAnalysis \
-XX:+UseBiasedLocking \
-XX:Perm
Have you tried running with escape analysis on? It might help take
some of the burden off the garbage collector.
-XX:+DoEscapeAnalysis
On Jan 7, 4:20 am, Gabi wrote:
> Hello fellow Clojurians,
>
> I got lots of "java.lang.OutOfMemoryError: GC overhead limit exceeded
> " exceptions ,and after a
Hi Gabi,
This may not be useful, but have you tried running the Clojure new
branch? Rich implemented fine-grained locals clearing on the new
branch, and it helps avoid holding onto unused data accidentally.
http://groups.google.com/group/clojure/browse_thread/thread/14baed8f26097515/583cd8375a0d4
What I use:
-Xincgc : enable incremental garbage collector. Works great when
there's more than 1 CPU
-Xms4000m -Xmx4000m : set both min and max heap size to the same
amount (4 Gb in this case). Prevents dynamic heap resizing, which at
high loads may result in unexpected out of memory errors and
Thanks I'll try those flags. I indeed use 64 bits
On Jan 7, 6:47 pm, kyle smith wrote:
> First, make sure you have -server. If you can spare more heap, use -
> Xmx1g . If you're on a 64bit jvm, -XX:+UseCompressedOops adds a
> significant boost. A flag that helps quite a bit is -XX:
> +DoEscapeAna
I use -XX:+UseConcMarkSweepGC. And don't forget -Xmx, just having a
bigger heap can solve some problems. Some people have found it
necessary to increase the PermGen size, but usually only for programs
that generate a lot of functions dynamically.
-SS
On Jan 7, 4:20 am, Gabi wrote:
> Hello fel
First, make sure you have -server. If you can spare more heap, use -
Xmx1g . If you're on a 64bit jvm, -XX:+UseCompressedOops adds a
significant boost. A flag that helps quite a bit is -XX:
+DoEscapeAnalysis . Finally, if you want to play around with the JIT
threshold, use -XX:CompileThreshold=n ,
Hello fellow Clojurians,
I got lots of "java.lang.OutOfMemoryError: GC overhead limit exceeded
" exceptions ,and after a short investigation added the following
flags (JVM 1.6.0_17):
-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:
+CMSIncrementalPacing
These flags seems to solve the problem,