When running any intensive Java framework - ECJ, JESS, Pellet, etc, its
usually good idea to increase not only the heap size, but also the size of
the object nursery. This can avoid out of memory exceptions, and also
improve runtime performance.
The commands would be:
java -XX:NewSize=256m -Xms512m -Xmx512m MyApp
The NewSize command alters the object nursery size - note that this is in
the addition to the heap size. So if you had 1G of memory on your machine,
these sizes would be good choices - 256M for the object nursery, 512M for
the heap, and 256M for your OS.
Tweaking the nursery / heap size ratio for best performance is of course,
>From: Sean Luke <[log in to unmask]>
>Reply-To: ECJ Evolutionary Computation Toolkit
><[log in to unmask]>
>To: [log in to unmask]
>Subject: Re: java.lang.OutOfMemoryError: Java heap space
>Date: Tue, 13 Jun 2006 10:45:05 -0400
>If you're doing GP, out of memory errors will be common: GP individuals
>bloat unless you use one of many techniques to keep them under control.
>In this case, you need to increase the heap size. Here we increase it to
> java -Xmx500M ec.Evolve ...
>If you're doing something *other* than GP, sure, it could be a leak of
>some sort; though ECJ hasn't historically had many leaks -- hash table
>overfills etc ...
>On Jun 13, 2006, at 6:28 AM, Alberto Cuesta wrote:
>>I'm running Genetic Programming experiments, and I get easily this error:
>>Exception in thread "EvolutionAgent.2508451.8329630"
>>java.lang.OutOfMemoryError: Java heap space
>>I think that it's that the population genotypes grow and exceed over a
>>certain memory limit assigned to the JVM, but I could be wrong and have a
>>memory leak somewhere. Has anyone some directions to investigate or solve