java的虚拟机参数_深入理解java虚拟机——常用虚拟机参数

1 跟踪调试参数

1.1 跟踪垃圾回收

-XX:+PrintGC:使用这个参数启动Java虚拟机后,只要遇到GC,就会打印日志。

-XX:+PrintGCDetails:获取更详细的GC信息。

-XX:+PrintHeapAtGC:可以在每次GC前后分别打印堆的信息。

-XX:+PrintGCTimeStamps:会在每次GC发生时,额外输出GC发生的时间,该输出时间为虚拟机启动后的时间偏移量。

-XX:+PrintGCApplicationConcurrentTime:可以打印应用程序的执行时间

-XX:+PrintGCApplicationStoppedTime:可以打印应用程序由于GC而产生的停顿时间。

-XX:+PrintReferenceGC:用来跟踪系统内的软引用、弱引用、虚引用和Finallize队列。

1.2 类加载/卸载的跟踪

-XX:+TraceClassLoading:跟踪类的加载。

-XX:+TraceClassUnloading:跟踪类的卸载。

-XX:+PrintClassHistogram:打印、查看系统中类的分布情况。

1.3 系统参数查看

-XX:+PrintVMOptions:在运行时,打印虚拟机接收到命令行显示参数。

-XX:+PrintCommandLineFlags:打印传递给虚拟机的显式和隐式参数,隐式参数未必是通过命令行直接给出的,它可能是由虚拟机启动时自行设置的。

-XX:+PrintFlagsFinal:打印所有的系统参数的值。

2 堆参数配置

2.1 最大堆和初始堆的设置

-Xmx,-Xms:分别表示最大堆空间和初始堆空间大小。

在实际工作中,可以直接将初始堆和最大堆空间设置相等,这样做可以减少垃圾回收次数,提高程序性能。

2.2 新生代

-Xmn:可以用于设置新生代的大小。新生代的大小会直接影响到老年代的大小,这个参数堆系统性能以及GC行为由很大的影响。新生代的大小一般设置为整个堆空间的1/3到1/4左右。

-XX:SurvivorRatio:用来设置新生代中eden空间和from/to空间的比例关系。

2.3 堆溢出处理

在Java程序运行的过程中,如果堆空间不足,则有可能抛出内存溢出错误(out of memory)简称为OOM。

-XX:+HeapDumpOnOutOfMemoryError:在内存溢出时导出整个堆信息。

-XX:+HeapDumpPath:指定堆的存放路径。

3 非堆内存的参数配置

-XX:MaxMetaspaceSize:指定元空间的最大可用值。

-Xss:指定线程的栈大小。

-XX:MaxDirectMemorySize:最大可用直接内存,如不设置,默认值为最大堆空间。直接内存的溢出依然会引起系统的OOM。

4 虚拟机工作模式:Client和Server

-client和-server:分别指定虚拟机使用Client模式和Server模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值