0

I have an Eclipse (plugin-based) application, which I try to start with Java 64bit from a jnlp file (I used maven tycho to build it). Shortly after starting the application, it doesn't respond anymore and sometimes it even closes automatically. If starting the application with Java 32bit, the application works fine.

If I check the log files, I get the java.lang.OutOfMemoryError: PermGen space exception. I have increased the MaxPermSize to 756m and still did not work. I can see that the CPU reaches almost 100% usage when the application is blocked.

If you have any suggestions about what I can to to fix the problem or some explanation, please share them.

Thank you!

Jenny Smith
  • 2,987
  • 6
  • 29
  • 32

2 Answers2

0

Perm space get filled when you load many classes.

From this FAQ :

How can I tell if the permanent generation is filling up?

Starting in 1.4.2 -XX:+PrintGCDetails will print information about all parts of the heap collected at each garbage collection. For a full collection

[Full GC [Tenured: 30437K->33739K(280576K), 0.7050569 secs] 106231K->33739K(362112K), [Perm : 2919K->2919K(16384K)], 0.7052334 secs]

this example shows that little was collected in the permanent generation (it went from 2919K used before the collection to 2919K used after the collection) and the current size of the permanent generation is 16384K.

If you suffer of classloader leaks, you might be interested by this article and the "how to fix" article.

alain.janinm
  • 19,951
  • 10
  • 65
  • 112
0

The solution for me was to change to Java 1.7. I have previously tried with Java 1.6.0_26_x64 and Java 1.6.0_29_x64 and got the errors described above.

I have changed now to Java 1.7.0_04_x64 and it works smoothly, without blocking at all.

Edit: It also works with Java 1.6.0_33.

Jenny Smith
  • 2,987
  • 6
  • 29
  • 32