java虚拟机面试干货(八) — JVM配置参数

时间:2022-12-27 13:42:43

本文总结一下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
打印运行时实例的信息。