当前位置: 首页 > news >正文

【jvm】主要参数

Java 虚拟机(JVM)有许多参数用于控制其行为和性能,下面是一些 主要的 JVM 启动参数,这些参数通常分为以下几类:

  1. 内存管理相关参数
    这些参数主要用来配置 JVM 的内存分配策略、堆内存、栈内存等。

-Xms
设置 JVM 启动时堆的初始内存大小(单位:字节、KB、MB、GB)。例如 -Xms512m 表示堆的初始大小为 512MB。

-Xmx
设置堆的最大内存大小(单位:字节、KB、MB、GB)。例如 -Xmx1024m 表示堆的最大大小为 1024MB。

java -XX:+PrintFlagsFinal -version | grep HeapSize

-Xmn
设置年轻代(Young Generation)的大小。年轻代内存用于存储新创建的对象。这个参数通常与 -Xmx 和 -Xms 配合使用。

-XX:NewSize= 和 -XX:MaxNewSize=
分别设置新生代(Young Generation)的初始大小和最大大小。

-XX:SurvivorRatio=
设置年轻代中 Eden 区和 Survivor 区的大小比率。默认是 8,意味着 Eden 区是 Survivor 区的 8 倍大小。

-XX:PermSize= 和 -XX:MaxPermSize=
设置永久代(PermGen)的初始大小和最大大小(JDK 8 后被 Metaspace 取代)。例如 -XX:MaxPermSize=256m。

-XX:MetaspaceSize= 和 -XX:MaxMetaspaceSize=
设置 Metaspace 的初始大小和最大大小(在 JDK 8 中,PermGen 被 Metaspace 替代)。

-XX:+UseG1GC
启用 G1 垃圾回收器。G1 是一种低延迟的垃圾回收器,适用于需要大堆并且需要低延迟的应用程序。

  1. 垃圾回收相关参数
    这些参数用于控制 JVM 中垃圾回收的行为。

-XX:+UseSerialGC
启用串行垃圾回收器(适合单线程环境)。

-XX:+UseParallelGC
启用并行垃圾回收器(适合多线程环境,提升吞吐量)。

-XX:+UseConcMarkSweepGC
启用并发标记清除垃圾回收器(CMS)。适用于对延迟敏感的应用。

-XX:+UseG1GC
启用 G1 垃圾回收器,适用于大堆内存和低延迟要求的应用。

-XX:MaxGCPauseMillis=

  1. 性能优化相关参数
    这些参数用于控制 JVM 性能优化策略。

-XX:+AggressiveOpts
启用一些潜在的性能优化(例如,启用 JIT 编译器的高级优化)。

-XX:CompileThreshold=
设置 JIT 编译器编译方法的调用次数阈值,超过此次数后将进行方法的即时编译。

-XX:+UseCompressedOops
启用压缩对象指针(Object Pointers)。对于 64 位 JVM,开启该选项可以节省内存。

-XX:MaxInlineLevel=
设置 JIT 编译器最大内联方法的深度,影响方法内联的优化。

  1. 调试与日志参数
    这些参数主要用于启用调试模式或记录 JVM 的运行日志。

-Xdebug
启用 JVM 调试。

-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
启用远程调试,address=5005 表示调试端口,suspend=n 表示不在启动时暂停。

-XX:+PrintGCDetails
打印垃圾回收的详细信息。

-XX:+PrintGCDateStamps
打印垃圾回收时的时间戳。

-XX:+PrintHeapAtGC
打印每次垃圾回收时堆内存的详细信息。

  1. JVM 其他常用参数
    -server
    启动服务器模式的 JVM,通常用于生产环境,优化了运行性能。

-client
启动客户端模式的 JVM,通常用于开发和测试环境,优化了启动时间。

-XX:+DisableExplicitGC
禁用 System.gc() 显式垃圾回收调用。

-XX:CICompilerCount=
设置 JIT 编译器的线程数。

  1. Java 版本相关参数
    -version
    输出当前 JVM 的版本信息。

-classpath 或 -cp
设置类路径。该参数指定 Java 程序查找类的路径。

-D=
设置 Java 系统属性。例如 -Dfile.encoding=UTF-8 设置文件编码为 UTF-8。

总结:
这些 JVM 启动参数允许开发人员根据应用程序的需求调整内存分配、垃圾回收策略、性能优化、调试选项等。适当的配置可以显著提高应用程序的性能和稳定性。

http://www.lryc.cn/news/507842.html

相关文章:

  • 【优选算法】—移动零(双指针算法)
  • PostgreSQL标识符长度限制不能超过63字节
  • 嵌入式硬件面试题
  • 深度解析 OneCode 混合编译:创新驱动的开发变革
  • [文献阅读] Unsupervised Deep Embedding for Clustering Analysis (无监督的深度嵌入式聚类)
  • ajax中get和post的区别,datatype返回的数据类型有哪些?web开发中数据提交的几种方式,有什么区别。
  • 网络七层杀伤链
  • GAN网络详解及涨点大全总结(源码)
  • 【自动化】Python SeleniumUtil 工具 开启开发者模式 自动安装油猴用户脚本等
  • 【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
  • android:sharedUserId 应用进程声明介绍
  • 解锁ApplicationContext vs BeanFactory: 谁更具选择性?
  • 一篇梳理清楚http请求知识点
  • Kotlin - 协程结构化并发Structured Concurrency
  • 新版国标GB28181设备端Android版EasyGBD支持国标GB28181-2022,支持语音对讲,支持位置上报,开源在Github
  • 豆包MarsCode测评:编程效率再提升
  • 二叉树 -- 堆(详解)
  • 【Apache Paimon】-- 11 -- Flink 消费 kakfa 写 S3 File
  • SQL MID()
  • jsp | servlet | spring forEach读取不了对象List
  • 【ArcGIS Pro微课1000例】0063:处理无人机数据(空三、生成DOM、DSM、DTM)
  • 【pytorch】深度学习计算
  • 详解磁盘IO、网络IO、零拷贝IO、BIO、NIO、AIO、IO多路复用(select、poll、epoll)
  • VPN技术-GRE隧道的配置
  • 【spring-cloud-gateway总结】
  • 数组相关简单算法
  • 在VBA中结合正则表达式和查找功能给文档添加交叉连接
  • 动手学深度学习-多层感知机-7前向传播、反向传播和计算图
  • 【Python】基于Python的CI/CD工具链:实现自动化构建与发布
  • FPGA-PS端编程1: