JVM常见参数

从Elasticsearch的jvm.options读懂JVM参数的生效核验、内存分账与诊断兜底 写进配置的JVM参数不一定生效,生效的参数也未必适合你的场景。本文以Elasticsearch的jvm.options为样板,结合JDK 8与JDK 17的可复现实验,先讲如何用PrintFlagsFinal、jcmd与进程内自检核实参数终值和来源,再讲堆怎么分:存储型服务把一半内存留给页缓存,堆不越过约31GB的压缩指针边界;计算型服务先用NMT量出堆外再定堆。随后梳理分代比例与晋升阈值、GC日志新旧写法、堆转储与OOM退出、异常栈保留及CMS到G1、ZGC的演进,最后给出模板与核验清单。 阅读详情

这些选项控制Java HotSpot虚拟机怎么进行垃圾回收。

- -XX:+AggressiveHeap

java堆最佳化设置。设置多个参数使长时间运行过的任务使用密集的内存分配。 默认这个选项时关闭的,也就是堆不是最佳化。

- -XX:+AlwaysPreTouch

在调用main函数之前,使用所有可用的内存分页。这个选项可以用来测试长时间运行的系统,所有的内存都已被分配。默认这个选项

是关闭的,也就是不会使用所有的内存分页。

- -XX:+CMSClassUnloadingEnabled

当使用CMS垃圾收集器时,允许类卸载。这个选项模式是开启的。为了禁止类卸载,那么可以使用: -XX:-CMSClassUnloadingEnabled

- -XX:CMSExpAvgFactor=percent

指定垃圾收集消耗的时间百分比。默认这个数是25%。下面的例子设置成15%:

-XX:CMSInitiatingOccupancyFraction=percent

设置CMS收集开始的百分比。默认值是-1,任何的负值表示会使用-XX:CMSTriggerRatio选项来定义这个百分比数。

下面的例子设置成了20%,表示老年代使用20%后开始垃圾收集;

-XX:+CMSScavengeBeforeRemark

在CMS重新标记之前执行清除操作,默认这个选项是关闭的。

-XX:CMSTriggerRatio=percent

设置由-XX:MinHeapFreeRatio指定值的百分比的值。默认是80%。

下面的例子设置成了75%:

-XX:ConcGCThreads=threads

并发GC的线程数量。默认值根据cpu的数量而定。下面的例子把这个值设置为2

-XX:+DisableExplicitGC

这个选项控制显式GC,也就是调用System.gc(),默认在调用这个方法的时候就会发生gc,如果不允许显式gc,那么调用这个方法的时候,就不会发生gc行为。

-XX:+ExplicitGCInvokesConcurrent

当调用System.gc()的时候, 执行并行gc。默认是不开启的,只有使用-XX:+UseConcMarkSweepGC选项的时候才能开启这个选项。

-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses

当调用System.gc()的时候, 执行并行gc。并在垃圾回收的周期内卸载类。 只有使用-XX:+UseConcMarkSweepGC选项的时候才能开启这个选项。

-XX:G1HeapRegionSize=size

当使用G1收集器时,设置java堆被分割的大小。这个大小范围在1M到32M之间。下面的例子把这个值设置成了16M。

-XX:+G1PrintHeapRegions

打印G1收集器收集的区域。默认这个选项是关闭的。

-XX:G1ReservePercent=percent

使用g1收集器时,设置保留java堆大小,防止晋升失败。范围是0到50.默认设置是10%。下面的例子把这个值设置成20%。

-XX:InitialHeapSize=size

初始化堆大小。

-XX:InitialSurvivorRatio=ratio

设置幸存区的比例。

-XX:InitiatingHeapOccupancyPercent=percent

设置进行垃圾回收的堆占用的百分比。

-XX:MaxGCPauseMillis=time

设置GC最大暂停时间。默认没有最大暂停时间。下面的例子设置最大暂停时间为500毫秒。

-XX:MaxHeapSize=size

最大堆大小。

-XX:MaxHeapFreeRatio=percent

设置堆垃圾回收后最大空闲空间比例。默认是70%。下面的例子把这个值设置成75.

-XX:MaxMetaspaceSize=size

设置最大的本地内存类员工间可用于垃圾回收。默认没有限制。下面的例子把这个值设置成256m

-XX:MaxNewSize=size

新生代最大大小。

-XX:MaxTenuringThreshold=threshold

在新生代中对象存活次数(经过Minor GC的次数)后仍然存活,就会晋升到旧生代。

-XX:MetaspaceSize=size

设置类元空间大小。

-XX:MinHeapFreeRatio=percent

堆最小空间百分比。

XX:NewRatio=ratio

设置新生代和老年代的比例。

-XX:NewSize=size

设置年轻代的大小

-XX:ParallelGCThreads=threads

并行收集线程数量。

-XX:+ParallelRefProcEnabled

如果应用有很多的Reference or finalizable objects,那么可以使用-XX:+ParallelRefProcEnabled来减少duration。

-XX:+PrintAdaptiveSizePolicy

打印自适应收集的大小。默认关闭。

-XX:+PrintGC

打印GC信息。

-XX:+PrintGCApplicationConcurrentTime

打印自从上次gc停顿到现在过去了多少时间。

-XX:+PrintGCApplicationStoppedTime

打印gc一共停顿了多长时间。

-XX:+PrintGCDateStamps

打印gc时间戳

-XX:+PrintGCDetails

打印gc详细信息

-XX:+PrintGCTaskTimeStamps

为每个独立的gc线程打印时间戳。

-XX:+PrintGCTimeStamps

打印gc时间戳

-XX:+PrintStringDeduplicationStatistics

打印字符串去重统计信息。

-XX:+PrintTenuringDistribution

打印对各代信息。

-XX:+ScavengeBeforeFullGC

在进行fullGC时先进行YGC。

-XX:StringDeduplicationAgeThreshold=threshold

字符串存活的最小年龄 ,默认是3.

-XX:SurvivorRatio=ratio

幸存代的比例。

-XX:TargetSurvivorRatio=percent

年轻代收集后,幸存代期望的比例值。

-XX:TLABSize=size

设置本地线程收集缓冲区的初始化大小。

-XX:+UseAdaptiveSizePolicy

使用自适应分代大小。

-XX:+UseConcMarkSweepGC

使用cms垃圾回收器。

-XX:+UseG1GC

使用G1垃圾回收器

-XX:+UseGCOverheadLimit

限制GC的运行时间

-XX:+UseParallelGC

使用 Parallel收集器。

-XX:+UseParallelOldGC

使用 ParallelOld垃圾回收器。

-XX:+UseParNewGC

使用ParNew垃圾回收器

-XX:+UseSerialGC

使用 Serial垃圾回收器。

-XX:+UseStringDeduplication

使用字符串去重机制。

-XX:+UseTLAB

年轻代中使用本地线程收集块

高效敏感词检测API平台对比与选型指南 本文为开发者提供了高效敏感词检测API平台的选型指南。文章对比了专业API平台、头部云厂商、新兴AI服务商及开源方案,从检测能力、集成易用性、成本、稳定性及扩展性五大维度进行分析,并给出实战选型建议,帮助团队根据业务场景快速选择最合适的敏感词检测服务。 阅读详情

相关推荐

六维力传感器选型指南:电阻式vs电容式,哪个更适合你的工业场景?

本文深入解析六维力传感器在工业自动化中的选型要点,重点对比电阻式与电容式传感器的核心原理、环境适应性及成本结构。针对不同工业场景(如高精度装配、重载机器人等),提供专业选型建议,帮助工程师优化系统性能与经济效益。

weixin_42525005的博客 395

JVM常用调优参数 ——JVM篇

JVM常用性能调优参数详解 ​ 在学习完整个JVM内容后,其实目标不仅是学习了解整个JVM的基础知识,而是为了进行JVM性能调优做准备,所以以下的内容就是来说说JVM性能调优的知识。 一、性能调优 ​ 性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等等。 ​ 架构调优和代码调优是JVM调优的基础,其中架构调优是对系统影响最大的。 性能调优基本上按照以下步骤进行: 明确优化目标 发现性能瓶颈 性能调优 通过监控及数据统计工具获得数据 确认是否达到目标 二、何时进

YING—country的博客 2万+

OpenHarmony实战开发-如何实现文件分布式同步编辑

在分布式文件场景中,分布式设备管理包含了分布式设备搜索、分布式设备列表弹窗、远端设备拉起三部分。首先在分布式组网内搜索设备,然后把设备展示到分布式设备列表弹窗中,最后根据用户的选择拉起远端设备。两台设备组网的分布式场景是工作中常常需要的。这样的分布式场景有助于加快工作效率,减少工作中的冗余,本例将为大家介绍如何实现上述功能。​ (2)订阅分布式数据变化:通过this.distributedObject.on(‘status’, this.statusCallback)监听分布式数据对象的变更。

2401_82546228的博客 751

JVM参数详细配置说明

对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。 1. JVM内存结构 由上图可以清楚的看到JVM的内存空间分为3大部分: 堆内存 方法区 栈内存 其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为新生代和老年代,新生代中还可以再次划分为Eden区...

傅红雪的专栏 1万+

【STM32G474实战】RS485通信的DMA优化策略与性能对比

本文深入探讨了在STM32G474微控制器上优化RS485通信的DMA策略。通过对比轮询、中断和DMA三种数据传输方式的代码实现与性能,揭示了DMA在解放CPU、降低占用率方面的巨大优势。文章提供了详细的DMA配置指南、高级应用技巧(如结合空闲中断)以及一个高可靠通信框架的实战思路,旨在帮助开发者构建高效、实时的工业控制系统。

weixin_29268331的博客 303

BQ40Z50R2循环学习实战:量产文件生成与关键状态位解析

本文详细解析了TI BQ40Z50R2电量计循环学习(Golden Learning)的实战流程与量产文件生成方法。重点剖析了updateStatus状态位在充放电静置阶段的常见异常(如卡在0x04或跳至0x0E)及其根本原因,并提供了从环境控制、命令顺序到文件处理的完整避坑指南,帮助工程师高效完成量产配置。

weixin_29170327的博客 214

JVM虚拟机默认参数

前言 我们都知道jvm有一个堆内存的概念,我们可以通过-Xmx:最大堆内存,-Xms初始化堆内存来进行设置。 那么当我们不设置时默认是多少呢 堆内存 这里直接贴上官网jdk1.8的链接https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#default_heap_size 翻译如下: 默认堆大小 除非在命令行上指定了初始堆大小和最大堆大小,否则它们将根据计算机上的内存量进行计算。 最大物理内存大小不超

weixin_42324471的博客 1859

在 SAP 世界里拥抱非 SAP 技术:一名 ABAP 开发者的成长路径与实战方法论

那段时间非常煎熬,但它带来的回报也很真实:你会更尊重“可观测性”的价值,也会更愿意在 SAP 场景里把日志、追踪、断言、隔离测试做扎实。解决这类问题,靠的并不是某个神奇的 SAP 函数,而是跨栈的工程设计:接口要有业务幂等键,SAP 侧要有落库与锁策略,返回要有可识别的状态码,异常要能回放,补偿要有可追踪的工单或队列。这套体系吸引我的地方,在于它更贴近真实业务:客户要的往往不是“能打印”,而是“能规范地输出”,包括版式、字体、条码、二维码、电子签章位置、分页规则、多语言、合规水印、可回写的交互字段等。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 167

JVM启动参数大全及默认值

Java启动参数共分为三类; 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用; 一、JVM标准参数(-) JVM的标准参数都是以”-“开头,通过输入”java -help”或者”java -?”,可以查看JVM标准参数列表。如 以下是JVM标准参数的详细

街头看日出的博客 485

YOLOv8改进 | 融合篇,YOLOv8主干改进融合网络之MobileNetV3+CA注意机制,助力涨点

MobileNetV3通过结合硬件感知网络架构搜索(NAS)和NetAdapt算法,通过新颖的架构改进进一步提升了性能。YOLOv8中的主干网络替换成MobileNetV3+引入CA注意机制

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1881

Far planner 代码系列(14)

MatchContourWithNavGraph(3) this->EnclosePolygonsCheck(); //可能有些ctnode的is_contour_necessary属性变成了true // 这说明我的contour_graph是一个local层级的 才会从这里面 get new vertices new_convex_vertices.clear(); //! 把contour_graph_里符

博客 899

JVM参数及默认值

1 标准参数 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 通过命令java即可查看 用法: java [-options] class [args...] (执行类) 或 java [-options] -jar jarfile [args...] (执行 jar 文件) 其中选项包括: -d32 使用 32 位数据模型 (如果可用) -d64 使用 64 位数据模型 (如...

zhangjunli的博客 1653

从零实现深度学习框架——理解正则化(一)

本文介绍解决过拟合与欠拟合的方法——正则化,主要介绍L1和L2正则化。

日积月累,天道酬勤 3394

JVM 调优常见参数

本文对JVM涉及的常见的调优参数和垃圾回收参数进行阐述。

埃泽漫笔 915

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JVM虚拟机----JVM 常见参数

JVM 常见参数 4.2.7 简单总结

Miracle_Gaaral的博客 212

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

常见JVM参数汇总

常见配置举例: 设置:-Xmx3550m -Xms3550m -Xmn2g -Xss128k 设置:-Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0 吞吐量优先的并行收集器,并行收集器主要以到达一定的吞吐量为目标,适用于科学技术...

wangsweetkid的专栏 1334

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

掌握JVM参数优化配置与常见JVM异常分析

JVM参数类型与设置 安装JDK,配置系统环境参数后,输入java -help,红框标记的就是我们设置 JVM参数的区域。 [-options]意思是不强制要求设置,java命令支持各种参数设置,这些参数可以分为以下类别 标准参数:JVM的所有实现所支持的最常用的参数 (在jdk各版本之间稳定,不会有较大变化)。 非标准参数(-X):是特定于Java HotSpot虚拟机的通用选项(了解就行)。 高级运行时参数(-XX):控制Java HotSpot VM的运行时行为(重点)。 这里我们重点讲高级运行

bao_taotao的博客 1481

关于JVM调优的工具及JVM 常见调优参数

六个命令行排查工具 我们一般使用 JDK 自带的 6 个命令行工具来排查JVM。它们分别是:jps、jstat、jinfo、jmap、jhat 和 jstack,它们都位于 JDK 的 bin 目录下,可以使用命令行工具直接运行。 jps(虚拟机进程状况工具) jps(JVM Process Status tool,虚拟机进程状况工具),用于列出正在运行的 JVM 的 LVMID(Local Virtual Machine IDentifier,本地虚拟机唯一 ID),以及 JVM 的执行主类、JVM 启动

Gebo的博客 1229

JAVA常见的 JVM 参数及其典型默认值

JVM 参数及其典型默认值

xiaowangbadan0_0的博客 987

常见JVM参数笔记

本文记录了工作和学习中常用到的一些jvm参数,后期会更新增加G1和ZGC的使用参数。

Henry_ss的博客 437

JVM-常见JVM参数、如何查看JVM参数、如何动态设置JVM参数

1 JVM参数 1.1 标准参数 // 查看java版本 -version // help命令就不用了说了吧 -help // -server // 指定类运行所依赖其他类的路径,通常是类库和jar包,需要全路径到jar包,多个jar包之间连接符, // window上分号“;”.Linux下使用“:” -cp 1.2 -x参数 非标准参数,也就是在JDK各个版本中可能会变动 -Xi...

抠脚的汉子 2607

idea中设置JVM参数,简单理解JVM常见参数,JVM调优简单入门

学习了几个常用JVM参数,总结如下OutOfMemoryError简称OOM,学习了几个基本的内存溢出后,对以后才能有更好的帮助。工作中遇到了内存溢出时,能根据异常信息来判断是那个区域的内存溢出,也知道什么样的代码可能会造成这些区域会出现内存溢出,并且知道一些处理手段。Java程序员日常学习笔记,如理解有误欢迎各位交流讨论!

m0_67402125的博客 4383

Jvm 常见配置参数

java虚拟机配置参数

u010046451的博客 545

JVM 常见的启动参数

JVM 常见的启动参数 -Xms: 设置堆的最小值。 -Xmx: 设置堆的最大值。 -Xmn: 设置新生代的大小。 -Xss: 设置每个线程的栈大小。 -XX:NewSize: 设置新生代的初始值。 -XX:MaxNewSize : 设置新生代的最大值。 -XX:PermSize: 设置永久代的初始值。 -XX:MaxPermSize: 设置永久代的最大值。 -XX:Surviv...

jcsyl_mshot的博客 564

JAVA中常见的JVM配置以及参数释义

垃圾回收相关的JVM参数:-Xms / -Xmx — 堆的初始大小 / 堆的最大大小-Xmn — 堆中年轻代的大小-XX:-DisableExplicitGC — 让System.gc()不产生任何作用-XX:+PrintGCDetails — 打印GC的细节-XX:+PrintGCDateStamps — 打印GC操作的时间戳-XX:NewSize / XX:MaxNewSize — 设置新生代...

weixin_30411239的博客 87

JVM内存参数设置及常见错误总结

一、JVM规范 JVM规范对Java运行时的内存划定了几块区域(详见这里),有:JVM栈(Java Virtual Machine Stacks)、堆(Heap)、方法区(Method Area)、常量池(Runtime Constant Pool)、本地方法栈(Native Method Stacks),但对各块区域的内存布局和地址空间却没有明确规定,而留给各JVM厂商发挥的空间。 ...

hellozhxy的博客 1397
上一篇: SOA 微服务 RPC WebService Soap关系详解
下一篇: newFixedThreadPool(1)和newSingleThreadExecutor()的区别
暗夜荆棘鸟
博客等级 码龄12年 9粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值