java的虚拟机参数_《实战Java虚拟机》学习笔记之常用Java虚拟机参数

跟踪垃圾回收

-XX:+PrintGC

例子日志样本:

[GC 4793K->377K(15872K), 0.0006926 secs]

表示当前使用了4793K,GC后,使用量变为377K,最大可用为15872K

-XX:+PrintGCDetails

格式: [名称:当前某区大小->GC后某区大小(一共可用某区大小)

GC时间跟踪

-XX:+PrintGCTimeStamps

例子:

0.185: [GC 66048K->53077K(251392K), 0.0977580 secs]

-XX:+PrintGCDateStamps

例子:

2014-01-03T12:08:38.102-0100: [GC 66048K->53077K(251392K), 0.0959470 secs]

指定GC日志到某路径

-Xloggc

默认情况下,GC日志是打印到控制台的,添加这个参数,可以将GC日志重定向到某文件.

例子:

-Xloggc:/home/gc.log

查看GC时详细堆信息

-XX:+PrintHeapAtGC

查看应用程序执行时间和停顿时间

-XX:+PrintGCApplicationConcurrentTime

打印应用程序的执行时间

-XX:+PrintGCApplicationStoppedTime

打印应用程序由于GC而产生的停顿时间

查看虚拟机引用信息

-XX:+PrintReferenceGC

类的加载和卸载跟踪

-XX:+TraceClassLoading

-XX:+TraceClassUnloading

-verbose:class: 这一个参数,相当于上两个一起。

查看虚拟机参数

-XX:+PrintVMOptions: 查看显式传递的参数

-XX:+PrintCommandLineFlags:查看显式和隐式参数

-XX:+PrintFlagsFinal:查看所有包括系统默认的参数

堆的配置

整个堆的大小,公式为:

总堆可用大小(-Xmx) = 老年代 + 新生代 = 老年代 + eden + from + to

新生代总大小,公式为:

新生代(-Xmn)= Eden + from + to

新生代可用大小,公式为:

新生代可用大小 = Eden + from = Eden + to

整个虚拟机最大大小,公式为:

总可用大小 = 持久代 + 年老代 + 新生代

最大堆和初始堆设置

-Xms:初始堆大小

例如:-Xms10m

-Xmx:最大堆设置

例如:-Xmx100m

新生代大小

-Xmn:一般设置为整个堆的 1/3到1/4

例如 -Xmn10m

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

例如 -XX:SurvivorRatio=2

-XX:SurvivorRatio = eden/from = eden/to

注意:新生代总可用的空间,只有 eden + from 或者 eden + to。即

新生代总可用空间 = eden + from = eden + to

-XX:NewRatio:设置新生代和老年代的比例

例如:-XX:NewRatio=2

-XX:NewRatio=老年代/新生代

堆溢出处理

-XX:+HeapDumpOnOutOfMemoryError:可堆溢出时,导出整个堆信息

-XX:HeapDumpPath:导出到指定的路径

例如 -XX:HeapDumpPath=/home/to/path

-XX:OnOutOfMemoryError=";":在发现溢出时,执行指定命令

例如:

-Xmx20

-XX:+HeapDumpOnOutOfMemoryError

”-XX:OnOutOfMemoryError=/path/to/commnd.sh %p”

注意:写法是双引号包括整个参数。%p 表示进程号

非堆区

codeCache 区

设置 codeCache 区的内存大小

-XX:ReservedCodeCacheSize=256M

方法区(永久代)[JDK 1.8前]

-XX:PermSize:初始永久区大小

例如:-XX:PermSize=64M

-XX:MaxPermSize:最大永久区大小

例如:-XX:MaxPermSize=128M

元数据区[JDK 1.8 及之后]

默认的情况下,该区只受系统可用内存的限制。但也可以使用参数

-XX:MetaspaceSize:指定初始时的元数据区大小

例如:-XX:MetaspaceSize=128M

-XX:MaxMetaspaceSize:指定元数据区的最大可用值。

例如: -XX:MaxMetaspaceSize=256M

直接堆内存配置

-XX:MaxDirectMemorySize: 最大可用直接内存。如果不设置,默认值为最大堆空间,即-Xmx的值。

更新

在网上看到一个图非常好, 这里引用一下:

365e61ffe12e44d56911bd9c3ff29f61.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值