Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Incompatible initial and maximum heap sizes specified

Tags:

I got this Error when I run a java class which has an NLP library ....

Error occurred during initialization of VM Incompatible initial and maximum heap sizes specified 

any idea how i can solve this error :)

like image 973
S Gaber Avatar asked Feb 19 '12 15:02

S Gaber


People also ask

How do I fix invalid max heap size?

64 bit JVM installed on Solaris machines runs with a 32-bit model if you don't specify either -d32 or -d64, which won't accept a Maximum heap size of 4GB, hence "invalid heap size". You can resolve this issue by running Solaris JVM with option -d64.

How do you fix initial heap size set to a larger value than the maximum heap size?

To get rid of this error, the value of Xmx(maximum heap size) should always be greater than or equal to Xms(minimum heap size). Run the HelloWorld program with the value of Xms(minimum heap size) set to 1 gigabyte and Xmx(maximum heap size) set to 2 gigabytes.

What is initial heap size and maximum heap size?

Initial heap size is 1/64th of the computer's physical memory or reasonable minimum based on platform (whichever is larger) by default. The initial heap size can be overridden using -Xms. Maximum heap size is 1/4th of the computer's physical memory or 1 GB (whichever is smaller) by default.

What is the maximum heap size of 32-bit and 64 bit JVM?

Max Heap Size. The maximum theoretical heap limit for the 32-bit and 64-bit JVM is easy to determine by looking at the available memory space, 2^32 (4 GB) for 32-bit JVM and 2^64 (16 Exabytes) for 64-bit JVM. In practice, due to various constraints, the limit can be much lower and varies given the operating system.


1 Answers

You should note that in case of setting initial heap size bigger than maximum one, application will produce such error

-Xms means initial heap size
-Xmx means maximum heap size allowed for particular JVM

  • java -Xms128m MyClass
    • WRONG, because default maximum heap size could be lower than 128m
  • java -Xms128m -Xmx128m MyClass
    • BETTER, because initial size is equal or higher than maximum

Read more here http://javahowto.blogspot.com/2006/06/6-common-errors-in-setting-java-heap.html

And useful is too, to understand those two arguments, read more here if you're interested:

Speed tradeoff of Java's -Xms and -Xmx options
What are the Xms and Xmx parameters when starting JVMs?

like image 122
Marek Sebera Avatar answered Sep 20 '22 13:09

Marek Sebera