本文总结一下JVM中常用的配置参数。
堆内存相关的JVM参数
Xms
设置Java应用程序启动时的初始堆大小。
-Xmx
设置Java应用程序能获得的最大堆大小。
-Xss
设置线程桟的大小。
-XX:MinHeapFreeRatio
设置堆空间最小空闲比例。当堆空间的空闲内存小于这个数值时,JWM便会扩展堆空间。
-XX:MaxHeapFreeRatio
设置堆空间的最大空闲比例。当堆空间的空闲内存大于这个数值时,便会压缩堆空间,得到一个较小的堆。
-XX:NewSize
设置新生代的大小。
-XX:NewRatio
设置老年代与新生代的比例,它等于老年代大小除以新生代大小。
-XX:MaxTenuringThreshold
对象进入老年代年龄,默认15.
-XX:SurviorRatio
新生代中eden区与suvivior区的比例。
-XX:Maxpemsize
设置最大的持久区大小。
-XX:PermSize
设置永久区的初始值。
-XX:TargetSurvivorRatio
设置suwivior区的可使用率。当survivior区的空间使用率达到这个数值时,会将对象送入老年代。
获取JVM信息参数
-XX:+PrintGC
打印gc信息
-XX:+PrintGCDetails
打印gc详细信息
-XX:+PrintGCTimeStamps
打印gc发生时间
-XX:+PrintTenuringDistribution
打印新生代对象年龄
-XX:+HeapDumpOnOutOfMemoryError
在程序发生OOM时,导出应用程序的当前堆快照。
-XX:HeapDumpPath
指定堆快照保存位置。
类和对象跟踪
-XX:+TraceClassLoading
跟踪类加载情况
-XX:+TraceClassUnloading
跟踪类卸载情况
-XX:PrintClassHistogram
打印运行时实例的信息。