Closed GoogleCodeExporter closed 8 years ago
You should specify Java version number since different versions manage memory
different. If you have x64 Java version it will increase memory consumption by
around 50%. Configuring large number of processors also increases memory
consumption.
Run "java -version" in command line and post the output.
Does the problem always occurs with the configuration you are using? After how
much time (or number of games played) you are getting the error?
I tried to reproduce it on my PC (Windows 7 x86, Java 1.6.0_22) and memory
consumption seems to stop after reaching 52MB while running on 2 processors.
Original comment by sergey...@gmail.com
on 26 Oct 2010 at 4:43
[deleted comment]
Java version is 1.6.0_21-b07 (x86).
I have only had the error once, after several (20+ M) games.
Running on 7 threads (have 8 threads total).
RAM and VM usage both 3-3.5 GB.
Original comment by atb...@gmail.com
on 26 Oct 2010 at 4:54
I tried out a few different conditions to look at the RAM usage over time.
Here is the RAM usage for 1, 2, 4 or 8 threads, over the first 500 K games:
http://img4.imageshack.us/img4/4448/ramusage.png
And here is the same but with the 8 thread run extended to 2 M games (I didn't
have time to wait for the slower runs with less threads):
http://img41.imageshack.us/img41/6932/ramusage2.png
Original comment by atb...@gmail.com
on 26 Oct 2010 at 5:53
Attachments:
Is it memory usage of the Java process or total Windows memory usage? On my PC
EvolutionChamber takes 10-20 times less memory (at least for the short runs).
In any case the graphs for 4 cores and less are relatively stable while 8 core
graph looks very much like a memory leak. It make require some specialized
tools (like JProfiler) to find the problem.
Original comment by sergey...@gmail.com
on 26 Oct 2010 at 7:46
That's the memory usage for the Java process only.
Original comment by atb...@gmail.com
on 26 Oct 2010 at 8:03
I tried to reproduce it on my PC. I let it run with 8 cores till it reached
about 2.5 million games. Memory consumption was about 150MB. But again, I have
only 2 physical cores and x86 OS.
Try to run it like this with 8 cores: java -Xmx1536m -jar
evolutionchamber-version-0017.jar
Original comment by sergey...@gmail.com
on 27 Oct 2010 at 7:07
Running on 8 cores with the -Xmx1536m flag did limit the RAM and VM usage.
Original comment by atb...@gmail.com
on 27 Oct 2010 at 10:58
When the high memory usage was occuring, I had only x86 Java 1.6.0_21
installed, and Java/Evolution Chamber was running as a 32-bit process.
I just uninstalled all versions of Java, then installed only x86 Java 1.6.0_22.
When running on 8 cores (32-bit), the memory usage was approximately 10-fold
lower (~150 MB).
I then installed x64 Java 1.6.0_22, and when running on 8 cores (64-bit
process) the memory usage is similar to before (~1.5 GB after 1 M games).
Original comment by atb...@gmail.com
on 27 Oct 2010 at 11:19
That can explain it. 64-bit JVM runs always in server mode and use completely
different default memory settings.
You can get some information about it here:
http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#threads_oom
Original comment by sergey...@gmail.com
on 27 Oct 2010 at 2:52
Update install docs (when they are created) to make sure it requires 1.6.0_22+
Original comment by Frit...@gmail.com
on 6 Nov 2010 at 1:08
Updated front page saying to use 1.6.0_22
Original comment by Frit...@gmail.com
on 21 Nov 2010 at 9:39
Original issue reported on code.google.com by
atb...@gmail.com
on 26 Oct 2010 at 2:55