There are hundreds of JVM parameters or JVM Options exists within Sun JDK too its virtually impossible to cash inwards one's chips on rails of every unmarried JVM option too based on my experience nosotros don't even use most of JVM flags except twosome of of import JVM pick related to coffee heap size, coffee options for printing garbage collection details too most probable JVM switches for setting upwards remote debugging inwards Java. but at that spot are many other useful category of JVM parameters which you lot at to the lowest degree similar to hold upwards familiar fifty-fifty if non intending to utilization it to a greater extent than frequently. In this article nosotros volition encounter examples of 10 dissimilar categories of JVM parameter which I flora useful too utilization to a greater extent than oft than other. I would recommend to larn a total cognition of what does a exceptional JVM options does yesteryear referring official listing of JVM options.
JVM parameters inwards Java
On the solid soil of how nosotros specify JVM pick it tin hold upwards divided into 2 parts, JVM Options which starts amongst –X too those which starts amongst -XX:
1) JVM Options that start out amongst -X are non-standard (thy are not guaranteed to hold upwards supported on all JVM implementations), too are bailiwick to alter without notice inwards subsequent releases of the JDK.
2) JVM Options or parameters which are specified amongst -XX are non stable too are non recommended for casual use. These options are bailiwick to alter without notice also.
I was thinking most writing postal service on JVM options when I completed my postal service on Java Heap Size too Java Garbage Collection because these are 2 master copy expanse where nosotros encounter usages of diverse JVM flags. But it didn’t happened fifty-fifty afterwards I covered OutOfMemoryError postal service which has some JVM pick to solve OutOfMemoryError inwards Java. Now I am happy that I convey completed this slice of information too its laid upwards to hold upwards published. As e'er I await for your feedback, suggestions too whatever other JVM flags which I convey missed too you lot guys uncovering useful to share.
Good cognition of JVM options particularly related to GC tuning is of import for fourth dimension critical application e.g. high book depression latency electronic trading platform where every micro seconds matter. though getting correct combination requires lot of profiling too case too mistake too depends heavily on nature of trading application.
Good cognition of JVM options particularly related to GC tuning is of import for fourth dimension critical application e.g. high book depression latency electronic trading platform where every micro seconds matter. though getting correct combination requires lot of profiling too case too mistake too depends heavily on nature of trading application.
Important Points most JVM Options:
1) Boolean JVM options can hold upwards turned on amongst -XX:+ too can hold upwards turned off amongst -XX:-.
2) Numeric JVM Options tin be laid amongst -XX:=. Numbers tin include 'm' or 'M' for megabytes, 'k' or 'K' for kilobytes, too 'g' or 'G' for gigabytes (for example, 32k is the same every bit 32768).
3) String JVM options can be laid by using -XX:=, and unremarkably used to specify a file, a path, or a listing of commands.
The ascendency java -help lists the criterion options (standard across dissimilar JVM implementations) for the Java application launcher. The command coffee -X tin hold upwards used to encounter the Java application launcher's non-standard (X for extension specific to that JVM) arguments.The -X options are non-standard too bailiwick to alter without notice. If you lot want to uncovering which JVM arguments your currently running Java application is using, you lot tin utilization the ManagementFactory.getRuntimeMXBean().getInputArguments()
Now hither is my listing of of import JVM flags, switches, options or parameters which is most commonly used spell running Java applications:
1) JVM retentiveness options related to coffee heap size
Following iii JVM options are used to specify initial too max heap size too thread stack size spell running Java programs.
-Xms laid initial Java heap size
-Xmx laid maximum Java heap size
-Xss > set coffee thread stack size
2) JVM pick to impress gc details
-verbose:gc logs garbage collector runs too how long they're taking. I by too large utilization this every bit my commencement tool to investigate if GC is a bottleneck for a given application.
-XX:+PrintGCDetails includes the information from -verbose:gc but also adds information most the size of the novel generation too to a greater extent than accurate timings.
-XX:-PrintGCTimeStamps Print timestamps at garbage collection.
3) JVM parameters to specify Java Garbage collector
-XX:+UseParallelGC Use parallel garbage collection for scavenges
-XX:-UseConcMarkSweepGC Use concurrent mark-sweep collection for the former generation. (Introduced inwards 1.4.1)
-XX:-UseSerialGC Use series garbage collection. (Introduced inwards 5.0.)
beware when you lot utilization GC Parameters if you lot are working on fourth dimension critical application e.g. high frequency trading application. As GC is fourth dimension consuming functioning too its desired to arrive at a balance.
beware when you lot utilization GC Parameters if you lot are working on fourth dimension critical application e.g. high frequency trading application. As GC is fourth dimension consuming functioning too its desired to arrive at a balance.
4) JVM debug options JVM options for remote debugging
-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
to read to a greater extent than most remote debugging banking corporation represent How to Setup Java remote debugging inwards Eclipse too 10 Java debugging tips inwards Eclipse
to read to a greater extent than most remote debugging banking corporation represent How to Setup Java remote debugging inwards Eclipse too 10 Java debugging tips inwards Eclipse
5) JVM options related to profiling
-Xprof
-Xrunhprof
6) JVM options related to coffee classpath
Xbootclasspath specifies classpath entries you lot want loaded without verification. The JVM verifies all classes it loads to ensure they don't endeavour to dereference an object amongst an int, popular extra entries off the stack or force also many, too thence on. This verification is purpose of the argue why the JVM is really stable, but it's also rather costly, too responsible for a large purpose of start upwards delay. Putting classes on the bootclasspath skips this cost, but should alone hold upwards used when you lot know the classes convey been verified many times before. In JRuby, this reduced startup fourth dimension yesteryear one-half or to a greater extent than for a elementary script. The -Xbootclasspath pick tin hold upwards used to either prepend (/p) or append (/a) resources to the bootstrap classpath. You Can read to a greater extent than most Java Classpath inwards my articles How Classpath Works inwards Java too How to Solve ClassNotFoundException inwards Java
7) JVM options to alter Perm Gen Size
These JVM optiosn are quite useful to solve java.lang.OutOfMemoryError:Perm Gen Space.
-XX:PermSize too MaxPermSize
-XX:NewRatio=2 Ratio of new/old generation sizes.
-XX:MaxPermSize=64m Size of the Permanent Generation.
8) JVM parameters to delineate classloading too unloading
-XX:+TraceClassLoading too -XX:+TraceClassUnloading are 2 JVM options which nosotros utilization to impress logging information whenever classes loads into JVM or unloads from JVM. These JVM flags are extremely useful if you lot convey whatever retentiveness leak related to classloader too or suspecting that classes are non unloading or garbage collected.
9) JVM switches related to logging
-XX:+TraceClassLoading too -XX:+TraceClassUnloading impress information course of written report loads too unloads. Useful for investigating if you lot convey a course of written report leak or if former classes (like JITed Ruby methods inwards JRuby) are getting collected or not. You tin read to a greater extent than most logging inwards Java on my postal service 10 Tips spell logging inwards Java
-XX:+PrintCompilation prints out the refer of each Java method Hotspot decides to JIT compile. The listing volition unremarkably demonstrate a bunch of marrow Java course of written report methods initially, too thence plough to methods inwards your application. In JRuby, it eventually starts to demonstrate Ruby methods every bit well
10) JVM Switches for debugging purpose
-XX:HeapDumpPath=./java_pid.hprof Path to directory or file refer for heap dump.
-XX:-PrintConcurrentLocks Print java.util.concurrent locks inwards Ctrl-Break thread dump.
-XX:-PrintCommandLineFlags Print flags that appeared on the ascendency line.
That’s all on JVM Options, I sympathise its non possible to hollo upwards all JVM flags but at-least having an consider of what form of JVM flags are available is practiced asset. Image for JVM parameters is from Java tuning too Nutshell. For total listing of JVM options you lot tin refer these link from Oracle Java site: Java Hotspot VM Options
Further Learning
Java Memory Management
Why grapheme array is ameliorate than String for storing password
How to convert String to Date inwards Java amongst Example
How to split String inwards coffee amongst Example
Further Learning
Java Memory Management
Why grapheme array is ameliorate than String for storing password
How to convert String to Date inwards Java amongst Example
How to split String inwards coffee amongst Example