【JVM】参数设置

idea在哪里设置JVM参数

Run——》
在这里插入图片描述

Trace跟踪参数

打印GC简要信息
-verbose:gc
-XX:+PrintGC

打印详细信息
-XX:+PrintGCDetails

打印CG发生的时间戳
-XX:+PrintGCTimeStamps

指定GC log的位置,以文件输出帮助开发人员分析问题
-Xloggc:log/gc.log //这里是你的日志路径,可以是相对的也可以是绝对路径

每次一次GC后,都打印堆信息
-XX:+PrintHeapAtGC //类加载信息不会打印到日志文件中

按下Ctrl+Break后,打印类的信息:
-XX:+PrintClassHistogram

监控类的加载
-XX:+TraceClassLoading

堆分配参数

-Xmx –Xms
指定最大堆和最小堆 eg:-Xmx20m -Xms5m 
// 获取:Runtime.getRuntime().maxMemory()/1024.0/1024+"M"

-Xmn
设置新生代大小
-XX:NewRatio
新生代(eden+2*s)和老年代(不包含永久区)的比值
4 表示 新生代:老年代=1:4,即年轻代占堆的1/5
-XX:SurvivorRatio
设置两个Survivor区和eden的比
8表示 两个Survivor :eden=2:8,即一个Survivor占年轻代的1/10

-XX:+HeapDumpOnOutOfMemoryError
OOM时导出堆到文件
-XX:+HeapDumpPath //如果文件存在则不会创建也就找不到报错信息了,但是导出文件有乱码问题,暂时还没解决
导出OOM的路径

-XX:OnOutOfMemoryError
在OOM时,执行一个脚本
// "-XX:OnOutOfMemoryError=D:/tools/jdk1.7_40/bin/printstack.bat %p“
 当程序OOM时,在D:/a.txt中将会生成线程的dump
可以在OOM时,发送邮件,甚至是重启程序

根据实际事情调整新生代和幸存代的大小
官方推荐新生代占堆的3/8
幸存代占新生代的1/10
在OOM时,记得Dump出堆,确保可以排查现场问题

永久区分配参数

-XX:PermSize  -XX:MaxPermSize
设置永久区的初始空间和最大空间
他们表示,一个系统可以容纳多少个类型

堆空间实际占用并不多,但是永久区溢出一样抛出OOM

栈的分配参数

-Xss
通常只有几百K
决定了函数调用的深度
每个线程都有独立的栈空间
局部变量、参数 分配在栈上

当程序中的递归调用比较多的时候,栈应该设置大一些

Jboss JVM参数配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值