What are -XX:PermSize and -XX:MaxPermSize JVM parameters in java | Differences



In this core java tutorial we will learn What are -XX:PermSize and -XX:MaxPermSize JVM parameters in java, And differences between -XX:PermSize and -XX:MaxPermSize JVM parameters in java.

Contents of page >
  • What is -XX:PermSize JVM parameter in java?
    • Examples of using -XX:PermSize VM (JVM) option in java >
  • What is -XX:MaxPermSize JVM parameter in java?
    • Examples of using -XX:MaxPermSize VM option in java >
    • What is the maximum perm gen size value you can set on your system, if you aren’t sure about the system configurations?
  • What are differences between -XX:PermSize and -XX:MaxPermSize JVM parameters in java?



Before learning about -XX:PermSize and -XX:MaxPermSize JVM parameters in java we must know about java heap memory structure.
Earlier we read about JVM Heap memory (Hotspot heap structure)  in java consists of following elements>
  1. Young Generation
    • 1a) Eden,
    • 1b) S0 (Survivor space 0)
    • 1c) S1 (Survivor space 1)
  2. Old Generation (Tenured)
  3. Permanent Generation.


Learn how to pass vmargs (VM parameters) to java program in eclipse?


What is -XX:PermSize JVM parameter in java?
-XX:PermSize :   It’s is initial value of Permanent Space which is allocated at startup of JVM.

Examples of using -XX:PermSize VM (JVM) option in java >
Example1 of using -XX:PermSize VM (JVM) option in java >
java -XX:PermSize=512 MyJavaProgram
It will set initial value of Permanent Space as 512 bytes to JVM.

Example2 of using -XX:PermSize VM (JVM) option in java >
java -XX:PermSize=512k MyJavaProgram
It will set initial value of Permanent Space as 512 kilobytes to JVM

Example3 of using -XX:PermSize VM (JVM) option in java >
java -XX:PermSize=512m MyJavaProgram
It will set initial value of Permanent Space as 512 megabytes to JVM

Example4 of using -XX:PermSize VM (JVM) option in java >
java -XX:PermSize=1g MyJavaProgram
It will set initial value of Permanent Space as 512 gigabyte to JVM




What is -XX:MaxPermSize JVM parameter in java?
-XX:MaxPermSize : It’s maximum value of Permanent Space that JVM can allot up to.

Examples of using -XX:MaxPermSize VM option in java >
Example1 of using -XX:MaxPermSize VM (JVM) option in java >
java -XX:MaxPermSize=512 MyJavaProgram
It will set maximum value of Permanent Space as 512 bytes to JVM.

Example2 of using -XX:MaxPermSize VM (JVM) option in java >
java -XX:MaxPermSize=512k MyJavaProgram
It will set maximum value of Permanent Space as 512 kilobytes to JVM

Example3 of using -XX:MaxPermSize VM (JVM) option in java >
java -XX:MaxPermSize=512m MyJavaProgram
It will set maximum value of Permanent Space as 512 megabytes to JVM

Example4 of using -XX:MaxPermSize VM (JVM) option in java >
java -XX:MaxPermSize=1g MyJavaProgram
It will set maximum value of Permanent Space as 1 gigabyte to JVM


What is the maximum perm gen size value you can set on your system, if you aren’t sure about the system configurations?
Try out for -XX:MaxPermSize=256m, if it works then try -XX:MaxPermSize=512m, if it works then try -XX:MaxPermSize=1024m and so on. Be cautious before going beyond 8g.



What are differences between -XX:PermSize and -XX:MaxPermSize JVM parameters in java?

-XX:PermSize JVM parameter
-XX:MaxPermSize JVM parameter
It’s is initial value of Permanent Space which is allocated at startup of JVM.
It’s maximum value of Permanent Space that JVM can allot up to.
Examples of using -XX:PermSize VM (JVM) option in java >

Example1 of using -XX:PermSize VM (JVM) option in java >
java -XX:PermSize=512m MyJavaProgram
It will set initial value of Permanent Space as 512 megabytes to JVM

Example2 of using -XX:PermSize VM (JVM) option in java >
java -XX:PermSize=1g MyJavaProgram
It will set initial value of Permanent Space as 512 gigabyte to JVM
Examples of using -XX:MaxPermSize VM option in java >

Example1 of using -XX:MaxPermSize VM (JVM) option in java >
java -XX:MaxPermSize=512m MyJavaProgram
It will set maximum value of Permanent Space as 512 megabytes to JVM

Example2 of using -XX:MaxPermSize VM (JVM) option in java >
java -XX:MaxPermSize=1g MyJavaProgram
It will set maximum value of Permanent Space as 1 gigabyte to JVM






Summary -


So in this core java tutorial we learned what are -XX:PermSize and -XX:MaxPermSize JVM parameters in java, And differences between -XX:PermSize and -XX:MaxPermSize JVM parameters in java.


Having any doubt? or you liked the tutorial! Please comment in below section.
Please express your love by liking JavaMadeSoEasy.com (JMSE) on facebook, following on google+ or Twitter.



RELATED LINKS>

 

Different type of garbage collectors in java>

>Serial collector / Serial GC (Garbage collector) in java

>Throughput GC (Garbage collector) or Parallel collector in java

>Concurrent Mark Sweep (CMS) collector / concurrent low pause garbage collector in java

>G1 garbage collector / Garbage first collector in java

>PS Scavenge and PS MarkSweep



Different between garbage collectors in java>

>Difference between Serial GC vs Throughput GC (Garbage collector) in java



JVM in detail - Garbage collection & heap structure >

>JVM Heap memory (Hotspot heap structure) with diagram in java


Young, Old (tenured) and Permanent Generation >

>What are Young, Old (tenured) and Permanent Generation in JVM in java


Minor, Major and Full garbage collection >

>What are Minor, Major and Full garbage collection in JVM in java



Important VM parameters >

>Most important and frequently used VM (JVM) PARAMETERS with examples in JVM Heap memory in java

>What are -Xms and -Xmx JVM parameters in java, And differences between them with examples

>-Xmn JVM parameters in java with examples - Setting young generation size

>What is -XX:NewRatio JVM parameters in java with examples - Setting young and old generation ratio

>What are -XX:NewSize and -XX:MaxNewSize JVM parameters in java

>-XX:SurvivorRatio JVM parameters in java with examples - Setting survivor spaces size

>-XX:+AggressiveHeap VM parameters

>What are -XX:PermSize and -XX:MaxPermSize JVM parameters with examples in java | Differences

>Solve java.lang.OutOfMemoryError : unable to create new native Thread - Xss JVM option

More VM parameters >

>How to use -verbose:gc VM argument

>-Xverify option in java


Monitor, analyze garbage collection and fix MEMORY LEAK >

>How to monitor and analyze the garbage collection in 10 ways in java

>Detecting and fixing memory leak in java


eEdit
Must read for you :