JVM常用启动参数

本文详细介绍了JVM的各种启动参数,包括系统属性参数、运行模式(如-server、-client)、堆内存设置(如-Xmx、-Xms、-Xmn)、GC设置(垃圾收集器选择、GC日志记录)、分析诊断参数(如-XX:+HeapDumpOnOutOfMemoryError)以及JavaAgent参数。通过调整这些参数,可以优化JVM的性能和内存管理,尤其强调了堆内存和新生代内存的设置对性能的影响。
摘要由CSDN通过智能技术生成

文章放置于:https://github.com/zgkaii/CS-Study-Notes,欢迎批评指正!

JVM常用启动参数

JVM启动参数的前缀主要有--D-X-XX+/-:

  • -开头为标准参数,所以的JVM都要实现这些参数,并且向后兼容。例如-server

  • -D设置系统属性。例如-Dfile.encoding=UTF-8

  • -X开头为非标准参数,基本都传给JVM,默认 JVM 实现这些参数的功能,但是并不保证所 有 JVM 实现都满足,且不保证向后兼容。 可以使 用 java -X 命令来查看当前 JVM 支持的非标准参数。例如-Xmx8g

  • -XX开头的为非稳定参数,专门用于控制JVM的行为,跟具体的JVM实现有关,随时可能在下一个版本中取消。

  • -XX:+/-Flags 形式,+/-是对布尔值进行开关。例如-XX:+UseG1GC

  • -XX:key=value形式, 指定某个选项的值。例如-XX:MaxPermSize=256m

根据JVM启动参数的的特点与作用来分类,大致如下几种:

  • 系统属性参数
  • 运行模式参数
  • 堆内存设置参数
  • GC设置参数
  • 分析诊断参数
  • JavaAgent参数

系统属性参数

-Dfile.encoding=UTF-8
-Duser.timezone=GMT+08
-Dmaven.test.skip=true
-Dio.netty.eventLoopThreads=8
... ...

JVM里配置的环境变量只影响当前一个进程。

运行模式参数

  • -server:设置 JVM 使用 server 模式,特点是启动速度比较慢,但运行时性能和内存管理效率 很高,适用于生产环境。在具有 64 位能力的 JDK 环境下将默认启用该模式,而忽略 -client 参 数。
  • -client :JDK1.7 之前在32位的 x86 机器上的默认值是 -client 选项。设置 JVM 使用 client 模 式,特点是启动速度比较快,但运行时性能和内存管理效率不高,通常用于客户端应用程序或 者 PC 应用开发和调试。此外,我们知道 JVM 加载字节码后,可以解释执行,也可以编译成本 地代码再执行,所以可以配置 JVM 对字节码的处理模式。
  • -Xint:在解释模式(interpreted mode)下运行,-Xint 标记会强制 JVM 解释执行所有的字节 码,这当然会降低运行速度,通常低10倍或更多。
  • -Xcomp-Xcomp 参数与-Xint 正好相反,JVM 在第一次使用时会把所有的字节码编译成本地 代码,从而带来最大程度的优化。【注意预热】
  • -Xmixed-Xmixed 是混合模式,将解释模式和编译模式进行混合使用,有 JVM 自己决定,这 是 JVM 的默认模式,也是推荐模式。 我们使用 java -version 可以看到 mixed mode 等信息。

堆内存设置参数

显式指定堆内存–Xms-Xmx

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值