java(1) Basic Tools java(1) (NAME) java - (SYNOPSIS) java [options] classname [args] java [options] -jar filename [args] options . . classname . filename (JAR) . -jar . args main() . (DESCRIPTION) java . (JRE) main() . public static String . : public static void main(String[] args) java JavaFX main() javafx.application.Application (extends) . Application init() start(javafx.stage.Stage) . java (fully qualified name) . -jar JAR . Main-Class . JRE ( ) : (bootstrap class path) (user class path). JAR main() . (OPTIONS) java : o (Standard Options) o (Non-Standard Options) o (Advanced Runtime Options) o JIT (Advanced JIT Compiler Options) o (Advanced Serviceability Options) o (Advanced Garbage Collection Options) (JVM) . JRE (class path) (verbose) . Java HotSpot JVM . -X . . Java HotSpot . JVM . -XX . << >> (Deprecated and Removed Options) . (Boolean) . . -XX (-XX:+OptionName) (-XX:-OptionName) . (:) (=) ( ). k K (KB) m M (MB) g G (GB) . 8g 8192m 8388608k 8589934592 . ( 0.25 ). (Standard Options) JVM . -agentlib:libname[=options] (native agent library) . . -agentlib:foo JVM libfoo.so LD_LIBRARY_PATH ( OS X DYLD_LIBRARY_PATH ) . (HPROF) CPU : -agentlib:hprof=cpu=samples,interval=20,depth=3 (JDWP) JVM : -agentlib:jdwp=transport=dt_socket,server=y,address=8000 : o java.lang.instrument http://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html o Agent Command Line Options JVM http://docs.oracle.com/javase/8/docs/platform/jvmti/jvmti.html#starting -agentpath:pathname[=options] . -agentlib . -client Java HotSpot Client VM . (JDK) Server JVM . JVM Server-Class Machine Detection http://docs.oracle.com/javase/8/docs/technotes/guides/vm/server-class.html . -Dproperty=value . property . value . value ( -Dfoo="foo bar"). -d32 . . . -d64 . . . Java HotSpot Server VM -server -d64 . -client -d64 . . -disableassertions[:[packagename]...|:classname] -da[:[packagename]...|:classname] (assertions) . . -disableassertions (-da) . packagename ... . ... . classname . -disableassertions (-da) ( ) . : . . -disablesystemassertions . -enableassertions (-ea) . . MyClass com.wombat.fruitbat ( ) com.wombat.fruitbat.Brickbat : java -ea:com.wombat.fruitbat... -da:com.wombat.fruitbat.Brickbat MyClass -disablesystemassertions -dsa . -enableassertions[:[packagename]...|:classname] -ea[:[packagename]...|:classname] (assertions) . . -enableassertions (-ea) . packagename ... . ... . classname . -enableassertions (-ea) ( ) . : . . -enablesystemassertions . -disableassertions (-da) . . MyClass com.wombat.fruitbat ( ) com.wombat.fruitbat.Brickbat : java -ea:com.wombat.fruitbat... -da:com.wombat.fruitbat.Brickbat MyClass -enablesystemassertions -esa . -help -? java JVM . -jar filename JAR . filename JAR Main-Class:classname public static void main(String[] args) . -jar JAR (class path) . JAR : o jar(1) o The Java Archive (JAR) Files http://docs.oracle.com/javase/8/docs/technotes/guides/jar/index.html o Lesson: Packaging Programs in JAR Files http://docs.oracle.com/javase/tutorial/deployment/jar/index.html -javaagent:jarpath[=options] . (instrumenting) java.lang.instrument Java API http://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html . -jre-restrict-search JRE . -no-jre-restrict-search JRE . -server Java HotSpot Server VM . JDK Server VM . JVM Server-Class Machine Detection http://docs.oracle.com/javase/8/docs/technotes/guides/vm/server-class.html . -showversion . -version JVM . -splash:imgname (splash screen) imgname . splash.gif images : -splash:images/splash.gif -verbose:class . -verbose:gc (GC) . -verbose:jni (JNI) . -version . -showversion JVM . -version:release . java . release . : 1.x.0_u ( x (major) u (update) ). (+) (*) . OR (&) AND / . JAR JRE 6u13 (1.6.0_13) JRE 6 6u10 (1.6.0_10) : -version:"1.6.0_13 1.6* & 1.6.0_10+" release . JAR JAR . (Non-Standard Options) (Java HotSpot Virtual Machine) . -X -X . -Xbatch . JVM . -Xbatch . -XX:-BackgroundCompilation . -Xbootclasspath:path JAR ZIP (:) (Boot Class Files) . JDK . rt.jar JRE . -Xbootclasspath/a:path JAR ZIP (:) (Bootstrap Class Path) . rt.jar JRE . -Xbootclasspath/p:path JAR ZIP (:) (Bootstrap Class Path) . rt.jar JRE . -Xcheck:jni (Java Native Interface JNI) . JNI JNI . (Native Code) JVM . . -Xcomp . Client VM (-client) , Server VM (-server) , . -Xcomp . -XX:CompileThreshold . -Xdebug . -Xdiag . -Xfuture (Class-File Format) . . -Xint (Interpreted-Only) . . (JIT) . -Xinternalversion JVM -version . -Xloggc:filename (GC) . -verbose:gc GC . java -Xloggc -verbose:gc . : -Xloggc:garbage-collection.log -Xmaxjitcodesize=size (Code Cache) ( ) JIT . k K m M g G . (Tiered Compilation) -XX:-TieredCompilation : -Xmaxjitcodesize=240m -XX:ReservedCodeCacheSize . -Xmixed (Hot Methods) . -Xmnsize ( ) (Heap) (Young Generation / Nursery) . k K m M g G . . (GC) . (Minor GC) . (Full GC) . . : -Xmn256m -Xmn262144k -Xmn268435456 -Xmn -XX:NewSize -XX:MaxNewSize . -Xmssize ( ) . . k K m M g G . : -Xms6291456 -Xms6144k -Xms6m (Old Generation) . -Xmn -XX:NewSize . -Xmxsize ( ) . . k K m M g G . . -Xms -Xmx . <> Java SE HotSpot Virtual Machine Garbage Collection Tuning Guide http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html . : -Xmx83886080 -Xmx81920k -Xmx80m -Xmx -XX:MaxHeapSize . -Xnoclassgc (GC) . GC . -Xnoclassgc GC . (Out Of Memory Exception) . -Xprof ( ) . (Production) . -Xrs JVM . (Shutdown Hooks) ( ) JVM . JVM . JVM SIGHUP SIGINT SIGTERM . JVM (Thread Dump) . JVM SIGQUIT . JVM (Embedded) SIGINT SIGTERM JVM . -Xrs . -Xrs SIGINT SIGTERM SIGHUP SIGQUIT JVM . -Xrs : o (Thread Dumps) SIGQUIT . o System.exit() JVM . -Xshare:mode (Class Data Sharing CDS) . mode : auto CDS . Java HotSpot 32-Bit Client VM . on CDS . . off CDS . Java HotSpot 32-Bit Server VM Java HotSpot 64-Bit Client VM Java HotSpot 64-Bit Server VM . dump CDS. << >> . JDK CDS . -XshowSettings:category . category : all . . locale (Locale) . properties (System Properties) . vm JVM . -Xsssize (Thread Stack Size) ( ) . k K (KB) m M (MB) g G (GB) . : o Linux/ARM (32-bit): 320 KB o Linux/i386 (32-bit): 320 KB o Linux/x64 (64-bit): 1024 KB o OS X (64-bit): 1024 KB o Oracle Solaris/i386 (32-bit): 320 KB o Oracle Solaris/x64 (64-bit): 1024 KB : -Xss1m -Xss1024k -Xss1048576 -XX:ThreadStackSize . -Xusealtsigs SIGUSR1 SIGUSR2 JVM. -XX:+UseAltSigs . -Xverify:mode (Bytecode Verifier) . . mode : none . . remote . -Xverify . all . (Advanced Runtime Options) Java HotSpot VM . -XX:+CheckEndorsedAndExtDirs java (endorsed-standards override) (extension mechanism) . : o java.ext.dirs java.endorsed.dirs . o lib/endorsed . o lib/ext JAR JDK . o JAR . -XX:+DisableAttachMechanism (attach) JVM . jcmd jstack jmap jinfo . -XX:ErrorFile=filename . hs_err_pidpid.log pid . ( %p ): -XX:ErrorFile=./hs_err_pid%p.log /var/log/java/java_error.log : -XX:ErrorFile=/var/log/java/java_error.log ( ) . /tmp . -XX:+FailOverToOldVerifier (failover) (new type checker) . ( ). . -XX:LargePageSizeInBytes=size Solaris ( ) (large pages) . size ( ...) . k K m M g G . JVM . (MB) : -XX:LargePageSizeInBytes=4m -XX:MaxDirectMemorySize=size ( ) New I/O ( java.nio) . k K m M g G . JVM NIO . NIO : -XX:MaxDirectMemorySize=1m -XX:MaxDirectMemorySize=1024k -XX:MaxDirectMemorySize=1048576 -XX:NativeMemoryTracking=mode (native memory) (JVM) . mode : off JVM . -XX:NativeMemoryTracking . summary JVM (thread) . detail JVM CallSite (committed) . -XX:ObjectAlignmentInBytes=alignment ( ) . . ( ) . (compressed pointers) . : 4GB * ObjectAlignmentInBytes : (alignment) . . -XX:OnError=string - (semicolon) . . -XX:OnError gcore core ( %p ): -XX:OnError="gcore %p;dbx - %p" -XX:OnOutOfMemoryError=string - OutOfMemoryError . . -XX:OnError . -XX:+PerfDataSaveToFile jstat(1) . hsperfdata_ . jstat : jstat -class file:////hsperfdata_ jstat -gc file:////hsperfdata_ -XX:+PrintCommandLineFlags JVM . JVM (garbage collector) . . -XX:+PrintNMTStatistics JVM ( -XX:NativeMemoryTracking ) . . -XX:+RelaxAccessControlCheck . ( ). . -XX:+ShowMessageBoxOnError (dialog box) JVM . JVM . . -XX:ThreadStackSize=size (thread stack) ( ) . k K m M g G . : o Linux/ARM ( ): o Linux/i386 ( ): o Linux/x64 ( ): o OS X ( ): o Oracle Solaris/i386 ( ): o Oracle Solaris/x64 ( ): : -XX:ThreadStackSize=1m -XX:ThreadStackSize=1024k -XX:ThreadStackSize=1048576 -Xss . -XX:+TraceClassLoading . . -XX:+TraceClassLoadingPreorder . . -XX:+TraceClassResolution (constant pool resolutions) . . -XX:+TraceClassUnloading (unload) . . -XX:+TraceLoaderConstraints (loader constraints recording) . . -XX:+UseAltSigs SIGUSR1 SIGUSR2 JVM . . -Xusealtsigs . -XX:-UseBiasedLocking (biased locking) . (uncontended synchronization) . Java Tuning White Paper http://www.oracle.com/technetwork/java/tuning-139912.html#section4.2.5 . . -XX:-UseCompressedOops (compressed pointers) . . . JVM . . -XX:ObjectAlignmentInBytes . -XX:+UseHugeTLBFS -XX:+UseLargePages . . (up-front) JVM -XX:UseTransparentHugePages . << (Large Pages)>> . -XX:+UseLargePages (large page memory) . . << (Large Pages)>> . -XX:+UseMembar (membars) . ARM . ( ARM .) -XX:+UsePerfData perfdata . JVM . hsperfdata_userid . perfdata -XX:-UsePerfData . -XX:+UseTransparentHugePages . . (transparent huge pages) . << (Large Pages)>> . -XX:+AllowUserSignalHandlers (signal handlers) . . JIT (Advanced JIT Compiler Options) (JIT: Just-in-Time) Java HotSpot VM . -XX:+AggressiveOpts . . -XX:AllocateInstancePrefetchLines=lines (prefetch) . 1 : -XX:AllocateInstancePrefetchLines=1 Java HotSpot Server VM . -XX:AllocatePrefetchDistance=size ( ) (prefetch) . . (thread) . . . k K m M g G . -1 . 1024 : -XX:AllocatePrefetchDistance=1024 Java HotSpot Server VM . -XX:AllocatePrefetchInstr=instruction . Java HotSpot Server VM . 0 3 . . 0 : -XX:AllocatePrefetchInstr=0 Java HotSpot Server VM . -XX:AllocatePrefetchLines=lines (cache lines) . (instance) 1 (array) 3 . 5 : -XX:AllocatePrefetchLines=5 Java HotSpot Server VM . -XX:AllocatePrefetchStepSize=size ( ) . k K m M g G . 16 : -XX:AllocatePrefetchStepSize=16 Java HotSpot Server VM . -XX:AllocatePrefetchStyle=style . style 0 3 : 0 . 1 . . 2 (watermark) (TLAB) . 3 BIS SPARC . Java HotSpot Server VM . -XX:+BackgroundCompilation . . -XX:-BackgroundCompilation ( -Xbatch ). -XX:CICompilerCount=threads . JVM 2 JVM 1 (tiered compilation) . 2 : -XX:CICompilerCount=2 -XX:CodeCacheMinimumFreeSpace=size ( ) . k K m M g G . . 500 . 1024 : -XX:CodeCacheMinimumFreeSpace=1024m -XX:CompileCommand=command,method[,option] . indexOf() String : -XX:CompileCommand=exclude,java/lang/String.indexOf (/) . (cut and paste) -XX:+PrintCompilation -XX:+LogCompilation : -XX:CompileCommand=exclude,java.lang.String::indexOf (signature) . . . indexOf(String) String : -XX:CompileCommand="exclude,java/lang/String.indexOf,(Ljava/lang/String;)I" (*) (wildcard) . indexOf() : -XX:CompileCommand=exclude,*.indexOf . -XX:CompileCommand : -XX:CompileCommand="exclude java/lang/String indexOf" -XX:CompileCommand JIT .hotspot_compiler . -XX:CompileCommandFile . -XX:CompileCommand (\n) . : break (breakpoint) JVM . compileonly . -XX:CompileOnly . dontinline (inlining) . exclude . help -XX:CompileCommand. inline . log ( -XX:+LogCompilation) . . option JIT (option) . . BlockLayoutByFrequency append() StringBuffer : -XX:CompileCommand=option,java/lang/StringBuffer.append,BlockLayoutByFrequency . print . quiet . -XX:CompileCommand indexOf() String : CompilerOracle: exclude java/lang/String.indexOf -XX:CompileCommand=quiet -XX:CompileCommand . -XX:CompileCommandFile=filename JIT . .hotspot_compiler JIT . . toString() String : print java/lang/String toString JIT -XX:CompileCommand . -XX:CompileOnly=methods ( ) . . ( ) . length() String size() List : -XX:CompileOnly=java/lang/String.length,java/util/List.size (/) . -XX:+PrintCompilation -XX:+LogCompilation : -XX:CompileOnly=java.lang.String::length,java.util.List::size : -XX:CompileOnly=java/lang/String -XX:CompileOnly=java/lang -XX:CompileOnly=.length -XX:CompileThreshold=invocations . JVM JIT 10,000 . JVM 1,500 . (tiered compilation) -XX:+TieredCompilation . 5000 : -XX:CompileThreshold=5000 -Xcomp . -XX:+DoEscapeAnalysis (escape analysis) . . -XX:-DoEscapeAnalysis . Java HotSpot Server VM . -XX:InitialCodeCacheSize=size ( ) . k K m M g G . 500 . . 32 : -XX:InitialCodeCacheSize=32k -XX:+Inline (method inlining) . . -XX:-Inline . -XX:InlineSmallCode=size ( ) . k K m M g G . . 1000 : -XX:InlineSmallCode=1000 -XX:+LogCompilation hotspot.log . -XX:LogFile . . -XX:+LogCompilation -XX:UnlockDiagnosticVMOptions JVM . -XX:+PrintCompilation . -XX:MaxInlineSize=size ( ) . k K m M g G . 35 : -XX:MaxInlineSize=35 -XX:MaxNodeLimit=nodes . 65,000 : -XX:MaxNodeLimit=65000 -XX:MaxTrivialSize=size ( ) (trivial) . k K m M g G . 6 : -XX:MaxTrivialSize=6 -XX:+OptimizeStringConcat String . . String -XX:-OptimizeStringConcat . Java HotSpot Server VM . -XX:+PrintAssembly (native) disassembler.so . . . -XX:+PrintAssembly -XX:UnlockDiagnosticVMOptions JVM . -XX:+PrintCompilation JVM . . . -XX:+LogCompilation . -XX:+PrintInlining (inlining) . . . -XX:+PrintInlining -XX:UnlockDiagnosticVMOptions JVM . -XX:ReservedCodeCacheSize=size ( ) JIT . k K m M g G . 240 -XX:-TieredCompilation 48 . 2 . -XX:InitialCodeCacheSize . -Xmaxjitcodesize . -XX:RTMAbortRatio=abort_ratio () RTM (%) RTM . (deoptimized) . -XX:+UseRTMDeopt . 50 . 50% deoptimize . -XX:RTMRetryCount=number_of_retries RTM . 5 . -XX:UseRTMLocking . -XX:-TieredCompilation (tiered compilation) . . Java HotSpot Server VM . -XX:+UseAES (intrinsics) AES Intel AMD SPARC . Intel Westmere ( 2010 ) AMD Bulldozer ( 2011 ) SPARC ( T4 ) . UseAES UseAESIntrinsics . -XX:+UseAESIntrinsics UseAES UseAESIntrinsics 32 64 Java HotSpot Server VM . AES -XX:-UseAES -XX:-UseAESIntrinsics . AES : -XX:+UseAES -XX:+UseAESIntrinsics UseAES UseAESIntrinsics 32 64 -server Java HotSpot Server VM . Client VM . -XX:+UseCodeCacheFlushing . . -XX:-UseCodeCacheFlushing . -XX:+UseCondCardMark . . Java HotSpot Server VM . -XX:+UseRTMDeopt RTM . -XX:RTMAbortRatio . deoptimize . . -XX:+UseRTMLocking . -XX:+UseRTMLocking (RTM: Restricted Transactional Memory) (inflated locks) . . RTM Java HotSpot Server VM x86 (TSX) . RTM TSX x86 . RTM XBEGIN XABORT XEND XTEST . XBEGIN XEND . (registers) XEND (commit) . XABORT XEND . (inflated) . RTM . RTM TSX . RTM (critical region ) . RTM (coarse-grain locking) . ( (fine-grained locking) .) RTM (false cache line sharing) . . . -XX:+UseSHA SHA SPARC . UseSHA UseSHA1Intrinsics UseSHA256Intrinsics UseSHA512Intrinsics . UseSHA UseSHA*Intrinsics 64 Java HotSpot Server VM SPARC T4 . sun.security.provider.Sun SHA . SHA -XX:-UseSHA . SHA : -XX:-UseSHA256Intrinsics. -XX:+UseSHA1Intrinsics SHA-1 . -XX:+UseSHA256Intrinsics SHA-224 SHA-256 . -XX:+UseSHA512Intrinsics SHA-384 SHA-512 . -XX:+UseSuperWord (scalar) (superword) . . -XX:-UseSuperWord . Java HotSpot Server VM . (Advanced Serviceability Options) . -XX:+ExtendedDTraceProbes dtrace . dtrace . -XX:+HeapDumpOnOutOfMemory java.lang.OutOfMemoryError (Java heap) (HPROF) . -XX:HeapDumpPath . OutOfMemoryError . -XX:HeapDumpPath=path (HPROF) -XX:+HeapDumpOnOutOfMemoryError . java_pidpid.hprof pid . (%p ): -XX:HeapDumpPath=./java_pid%p.hprof /var/log/java/java_heapdump.hprof : -XX:HeapDumpPath=/var/log/java/java_heapdump.hprof -XX:LogFile=path . hotspot.log . /var/log/java/hotspot.log : -XX:LogFile=/var/log/java/hotspot.log -XX:+PrintClassHistogram Control+C (SIGTERM) . . jmap -histo jcmd pid GC.class_histogram pid . -XX:+PrintConcurrentLocks . . java.util.concurrent Control+C (SIGTERM) . . jstack -l jcmd pid Thread.print -l pid . -XX:+UnlockDiagnosticVMOptions JVM . . (Advanced Garbage Collection Options) (GC) Java HotSpot . -XX:+AggressiveHeap . ( ) . . -XX:+AlwaysPreTouch (touching) JVM . main() . . JVM (commit) . -XX:+CMSClassUnloadingEnabled (class unloading) (CMS) . . CMS -XX:-CMSClassUnloadingEnabled . -XX:CMSExpAvgFactor=percent ( ) . . : -XX:CMSExpAvgFactor=15 -XX:CMSInitiatingOccupancyFraction=percent (old generation) CMS . -1 . ( ) -XX:CMSTriggerRatio . : -XX:CMSInitiatingOccupancyFraction=20 -XX:+CMSScavengeBeforeRemark (scavenging) (remark) CMS . . -XX:CMSTriggerRatio=percent ( ) -XX:MinHeapFreeRatio CMS . . : -XX:CMSTriggerRatio=75 -XX:ConcGCThreads=threads GC . JVM . GC : -XX:ConcGCThreads=2 -XX:+DisableExplicitGC System.gc() . System.gc() . System.gc() JVM GC . -XX:+ExplicitGCInvokesConcurrent GC System.gc() . -XX:+UseConcMarkSweepGC . -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses GC System.gc() GC . -XX:+UseConcMarkSweepGC . -XX:G1HeapRegionSize=size - (G1) . . . : -XX:G1HeapRegionSize=16m -XX:+G1PrintHeapRegions G1 . . -XX:G1ReservePercent=percent ( ) (promotion failure) G1 . . : -XX:G1ReservePercent=20 -XX:InitialHeapSize=size ( ) . . k K m M g G . . <> Java SE HotSpot Virtual Machine Garbage Collection Tuning Guide http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html . : -XX:InitialHeapSize=6291456 -XX:InitialHeapSize=6144k -XX:InitialHeapSize=6m . -XX:NewSize . -XX:InitialSurvivorRatio=ratio (survivor space) ( -XX:+UseParallelGC -XX:+UseParallelOldGC ) . (adaptive sizing) -XX:+UseParallelGC -XX:+UseParallelOldGC . ( -XX:-UseAdaptiveSizePolicy) -XX:SurvivorRatio . (S) (Y) (R) : S=Y/(R+2) . . . ( ) . . : -XX:InitialSurvivorRatio=4 -XX:InitiatingHeapOccupancyPercent=percent ( ) GC . GC ( G1). . GC . : -XX:InitiatingHeapOccupancyPercent=75 -XX:MaxGCPauseMillis=time GC ( ) . (soft goal) JVM . . : -XX:MaxGCPauseMillis=500 -XX:MaxHeapSize=size ( ) . . k K m M g G . . -XX:InitialHeapSize -XX:MaxHeapSize . <> Java SE HotSpot Virtual Machine Garbage Collection Tuning Guide http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html . : -XX:MaxHeapSize=83886080 -XX:MaxHeapSize=81920k -XX:MaxHeapSize=80m Oracle Solaris 7 Oracle Solaris 8 SPARC . Oracle Solaris 2.6 x86 . . -XX:MaxHeapSize -Xmx . -XX:MaxHeapFreeRatio=percent ( ) GC . . . : -XX:MaxHeapFreeRatio=75 -XX:MaxMetaspaceSize=size (native memory) (class metadata) . . . : -XX:MaxMetaspaceSize=256m -XX:MaxNewSize=size ( ) (nursery) . . -XX:MaxTenuringThreshold=threshold / (tenuring threshold) GC . . (throughput) CMS . : -XX:MaxTenuringThreshold=10 -XX:MetaspaceSize=size . . . -XX:MinHeapFreeRatio=percent ( ) GC . . . : -XX:MinHeapFreeRatio=25 -XX:NewRatio=ratio . . : -XX:NewRatio=1 -XX:NewSize=size ( ) (nursery) . k K m M g G . . GC . GC (minor GC) . GC (full GC) . . : -XX:NewSize=256m -XX:NewSize=262144k -XX:NewSize=268435456 -XX:NewSize -Xmn . -XX:ParallelGCThreads=threads . JVM . GC : -XX:ParallelGCThreads=2 -XX:+ParallelRefProcEnabled (reference processing) . . -XX:+PrintAdaptiveSizePolicy . . -XX:+PrintGC GC . . -XX:+PrintGCApplicationConcurrentTime ( GC) . . -XX:+PrintGCApplicationStoppedTime ( GC) . . -XX:+PrintGCDateStamps (date stamp) GC . . -XX:+PrintGCDetails GC . . -XX:+PrintGCTaskTimeStamps GC . . -XX:+PrintGCTimeStamps GC . . -XX:+PrintStringDeduplicationStatistics (deduplication) . . -XX:+UseStringDeduplication . -XX:+PrintTenuringDistribution (tenuring age) . : Desired survivor size 48286924 bytes, new threshold 10 (max 10) - age 1: 28992024 bytes, 28992024 total - age 2: 1366864 bytes, 30358888 total - age 3: 1425912 bytes, 31784800 total ... ( eden ). ( ). . eden . n . . -XX:+ScavengeBeforeFullGC GC GC (full GC) . . GC . GC GC -XX:-ScavengeBeforeFullGC . -XX:SoftRefLRUPolicyMSPerMB=time ( ) (softly reachable) . . -XX:SoftRefLRUPolicyMSPerMB ( Java HotSpot Client) ( Java HotSpot Server) . Client VM (soft references) Server VM . -Xmx . . : -XX:SoftRefLRUPolicyMSPerMB=2500 -XX:StringDeduplicationAgeThreshold=threshold String (deduplication) . . (tenuring) -XX:+PrintTenuringDistribution . String . 3 . -XX:+UseStringDeduplication . -XX:SurvivorRatio=ratio eden (survivor) . . eden : -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=percent ( ) GC . . : -XX:TargetSurvivorRatio=30 -XX:TLABSize=size ( ) (TLAB) . k K m M g G . JVM . TLAB : -XX:TLABSize=512k -XX:+UseAdaptiveSizePolicy . . -XX:-UseAdaptiveSizePolicy ( -XX:SurvivorRatio ). -XX:+UseCMSInitiatingOccupancyOnly CMS . . -XX:+UseConcMarkSweepGC CMS . (-XX:+UseParallelGC) CMS . G1 (-XX:+UseG1GC) . JVM . -XX:+UseParNewGC JDK 8 : -XX:+UseConcMarkSweepGC -XX:-UseParNewGC. -XX:+UseG1GC - (G1) . . GC (throughput) . G1 ( ) GC ( . ) . JVM . -XX:+UseGCOverheadLimit JVM GC OutOfMemoryError . GC OutOfMemoryError . . -XX:-UseGCOverheadLimit . -XX:+UseNUMA (NUMA) . NUMA . (-XX:+UseParallelGC) . -XX:+UseParallelGC ( throughput ) . JVM . -XX:+UseParallelOldGC . -XX:+UseParallelOldGC GC (full GCs) . . -XX:+UseParallelGC . -XX:+UseParNewGC . . -XX:+UseConcMarkSweepGC . -XX:+UseParNewGC -XX:+UseConcMarkSweepGC JDK 8 . -XX:+UseSerialGC . . JVM . -XX:+UseSHM JVM (large pages) . << >> (Large Pages) . -XX:+UseStringDeduplication (string deduplication) . . - (G1) . -XX:+UseG1GC . String String . String String . -XX:+UseTLAB (TLAB) . . TLAB -XX:-UseTLAB . (Deprecated and Removed Options) . -Xincgc (incremental garbage collection) . JDK 8 . -Xrunlibname / (debugging/profiling) . -agentlib . -XX:CMSIncrementalDutyCycle=percent ( ) . -XX:+CMSIncrementalMode JDK 8 . -XX:CMSIncrementalDutyCycleMin=percent ( ) -XX:+CMSIncrementalPacing . -XX:+CMSIncrementalMode JDK 8 . -XX:+CMSIncrementalMode CMS . CMSIncremental JDK 8 . -XX:CMSIncrementalOffset=percent ( ) (shift) . -XX:+CMSIncrementalMode JDK 8 . -XX:+CMSIncrementalPacing JVM . -XX:+CMSIncrementalMode JDK 8 . -XX:CMSIncrementalSafetyFactor=percent ( ) . -XX:+CMSIncrementalMode JDK 8 . -XX:CMSInitiatingPermOccupancyFraction=percent ( ) GC . JDK 8 . -XX:MaxPermSize=size ( ) . JDK 8 -XX:MaxMetaspaceSize . -XX:PermSize=size ( ) . JDK 8 -XX:MetaspaceSize . -XX:+UseSplitVerifier . : ( ) ( JVM). JDK 8 . -XX:+UseStringCache . JDK 8 . (PERFORMANCE TUNING EXAMPLES) . java -d64 -server -XX:+AggressiveOpts -XX:+UseLargePages -Xmn10g -Xms26g -Xmx26g java -d64 -XX:+UseG1GC -Xms26g Xmx26g -XX:MaxGCPauseMillis=500 -XX:+PrintGCTimeStamp (LARGE PAGES) (Large pages) huge pages ( ) . (Translation-Lookaside Buffers) . (TLB Translation-Lookaside Buffer) . TLB . TLB ( TLB miss) . TLB . TLB . . (pin) (paging) . . JVM . (Large Pages Support) . Solaris (MPSS) . http://www.oracle.com/technetwork/server-storage/solaris10/overview/solaris9-features-scalability-135663.html . Linux . . . . : # cat /proc/meminfo | grep Huge HugePages_Total: 0 HugePages_Free: 0 Hugepagesize: 2048 kB <> . . root : 1. -XX:+UseSHM ( -XX:+UseHugeTLBFS) SHMMAX . . ( ) : # echo 4294967295 > /proc/sys/kernel/shmmax 2. -XX:+UseSHM -XX:+UseHugeTLBFS . ( 2048kB 3 GB = 3 * 1024 MB = 3072 MB = 3072 * 1024 kB = 3145728 kB 3145728 kB / 2048 kB = 1536 ): # echo 1536 > /proc/sys/vm/nr_hugepages +----------------------------------------+ |o | | | | | | /proc | | | | | | | | | | | | | | | | | | | | ( | | rc.local | |sysctl.conf) | |.o | | | | | | | |/proc/sys/kernel/shmmax | |/proc/sys/vm/nr_hugepages | | | |( | | | |) | | | | | | | | | | | | | | | |. | | | | | | | | o | | (Java heap)o | | | |(Code cache)o | | | | | | | |(marking bitmap) GC | | | | | | nr_hugepages | | | | | | | | JVM | | | | | | | | | | | | | | | | | | . | +----------------------------------------+ (EXIT STATUS) (launcher) JVM . API System.exit(exitValue) . : o 0: o >0: (SEE ALSO) o javac(1) o jdb(1) o javah(1) o jar(1) o jstat(1) JDK 8 03 March 2015 java(1)