首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

运行JVM的GC参数是什么?

在Java虚拟机(JVM)中,垃圾回收(GC)参数是用于控制内存管理和优化性能的关键参数。以下是一些常见的JVM GC参数:

  1. -XX:+UseSerialGC:启用Serial垃圾回收器。这是一个单线程的垃圾回收器,适用于小型应用程序和客户端桌面应用程序。
  2. -XX:+UseParallelGC:启用Parallel垃圾回收器。这是一个多线程的垃圾回收器,适用于具有多个处理器的中等规模应用程序。
  3. -XX:+UseConcMarkSweepGC:启用Concurrent Mark Sweep(CMS)垃圾回收器。这是一个适用于响应时间敏感的大型应用程序的垃圾回收器,它可以在应用程序运行过程中并发地进行垃圾回收。
  4. -XX:+UseG1GC:启用G1(Garbage First)垃圾回收器。这是一个面向服务器端应用程序的垃圾回收器,可以处理大量内存。
  5. -XX:+UseShenandoahGC:启用Shenandoah垃圾回收器。这是一个低暂停时间的垃圾回收器,适用于需要高吞吐量和低延迟的应用程序。
  6. -XX:+UseZGC:启用Z垃圾回收器。这是一个实验性的垃圾回收器,旨在提供低暂停时间和并发性能。
  7. -Xms:指定JVM堆的初始大小。例如,-Xms256m表示初始堆大小为256MB。
  8. -Xmx:指定JVM堆的最大大小。例如,-Xmx1024m表示最大堆大小为1GB。
  9. -Xmn:指定JVM的年轻代大小。例如,-Xmn256m表示年轻代大小为256MB。
  10. -XX:MaxGCPauseMillis:指定垃圾回收暂停时间的最大值。例如,-XX:MaxGCPauseMillis=100表示垃圾回收暂停时间不超过100毫秒。
  11. -XX:ParallelGCThreads:指定Parallel垃圾回收器使用的线程数。例如,-XX:ParallelGCThreads=4表示使用4个线程进行垃圾回收。
  12. -XX:ConcGCThreads:指定CMS垃圾回收器使用的线程数。例如,-XX:ConcGCThreads=4表示使用4个线程进行垃圾回收。
  13. -XX:G1HeapRegionSize:指定G1垃圾回收器的堆区域大小。例如,-XX:G1HeapRegionSize=4m表示堆区域大小为4MB。
  14. -XX:G1ReservePercent:指定G1垃圾回收器为Eden和Survivor空间预留的内存百分比。例如,-XX:G1ReservePercent=10表示预留10%的内存。
  15. -XX:G1MixedGCLiveThresholdPercent:指定G1垃圾回收器进行混合垃圾回收的阈值。例如,-XX:G1MixedGCLiveThresholdPercent=60表示当Eden和Survivor空间中的存活对象超过60%时进行混合垃圾回收。
  16. -XX:+UseLargePages:启用大页内存。这可以提高性能,但可能需要特殊的操作系统和硬件配置。
  17. -XX:+UseNUMA:启用Non-Uniform Memory Access(NUMA)优化。这可以提高多节点系统的性能。
  18. -XX:+UseStringDeduplication:启用字符串去重优化。这可以减少内存使用,但可能会增加CPU使用。
  19. -XX:+UseCompressedOops:启用压缩的对象指针(OOPs)。这可以减少内存使用,但可能会增加CPU使用。
  20. -XX:+UseCodeCacheFlushing:启用代码缓存刷新。这可以减少内存使用,但可能会增加CPU使用。

这些参数可以根据应用程序的需求进行调整,以优化性能和资源使用。在实际应用中,可能需要根据具体情况进行调整和测试以获得最佳结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【GC系列】JVM的常用GC参数及GC日志解析

jdk11默认的GC是G1 JVM常用命令参数 JVM命令可从如下网站查阅: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html...「HotSpot参数分类」 标准 -开头,所有的HotSpot都支持,比如java -version 保证Java虚拟机(JVM)的所有实现都支持标准选项。...也不能保证所有JVM实现都支持它们,并且它们可能会发生变化。 下面我们用一段程序,通过调JVM参数,使用JVM命令用不同的GC,看一下运行情况。 开始之前,先普及一下内存泄漏和内存溢出。...如果我们想知道他的内存分配过程,可以在运行的时候添加相应的JVM参数,下面来找几个常用的参数分别实验一下。...信息的参数还有: 「-XX:+PrintGCTimeStamps」:在每个GC上打印时间戳。

3.4K31

JVM垃圾回收器GC的常用参数

GC 常用参数 # 年轻代 最小堆 最大堆 栈空间 -Xmn -Xms -Xmx -Xss # System.gc()不管用 ,避免因System.gc()调用导致的FGC,生产环境建议 -XX:+DisableExplictGC.../dir/gc-%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCCause 其他参数 ## TLAB的参数,一般不需要调整...,设置JVM吞吐量要达到的目标值, GC时间占用程序运行时间的百分比的差值,默认是 99 # 也就应用程序线程应该运行至少99%的总执行时间,GC占 1% -XX:GCTimeRatio=99 # 并行收集器...这是一个软性指标(soft goal) # JVM 会尽力去达成这个目标....# 吞吐量优先,设置JVM吞吐量要达到的目标值, GC时间占用程序运行时间的百分比的差值,默认是 99 # 也就应用程序线程应该运行至少99%的总执行时间,GC占 1% -XX:GCTimeRatio

2.4K10
  • 性能优化-jvm的运行参数

    2、jvm的运行参数 在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能够高效的运行。绝大部分的参数保持默认即可。...2.2.2、-server与-client参数 可以通过-server或-client设置jvm的运行参数。...示例: [root@node01 test]# java ‐Xms512m ‐Xmx2048m TestJVM itcast 2.6、查看jvm的运行参数 有些时候我们需要查看jvm的运行参数,这个需求可能会存在...2种情况: 第一,运行java命令时打印出运行参数; 第二,查看正在运行的java进程的参数 2.6.1、运行java命令时打印参数 运行java命令时打印参数,需要添加-XX:+PrintFlagsFinal...2.6.2、查看正在运行的jvm参数 如果想要查看正在运行的jvm就需要借助于jinfo命令查看。 首先,启动一个tomcat用于测试,来观察下运行的jvm参数。 ? 访问成功: ?

    68141

    JVM的GC

    Table of Contents GC如何判断对象死活 堆分配策略 垃圾回收算法 jvm监控工具 jvm调优 GC如何判断对象死活 引用计数法 对象被引用一次, 引用计数器+1, 引用失效时, 引用计数器...-1, 当引用计数器为0时,就会通知GC来回收 不能处理循环引用的对象, 所以主流的jvm厂商不会选择这用算法 GC roots可达性分析 从gc roots对象出发, 不可达将被通知GC去回收 gc...jvm监控工具 https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr025.html jconsole...java-rmi.cgi jcmd jcontrol jdeps jinfo jmap jmc.ini jrunscript jstack jstatd jvm...堆设置java物理内存的1/4 官方推荐新生代栈对的3/8 Xms与Xmx 设置一样值, 能够避免jvm因为频繁的GC导致大起大落

    42100

    JVM GC 那些事(一)- JVM 运行时内存划分

    对于经常使用 Spark 的人来说,如何设置 driver 或 executor 的内存大小,如何尽量减少 GC 相信不会陌生。...要做好这两点,除了 Spark 知识的掌握外,还需要对 JVM 内存及 GC 机制有一定了解。...本着能写出更好的 Spark Application 代码及让 Spark Application 更好的运行的目的,最近我进行了相应的学习,并希望以博客的形式记录,这是第一篇,来说明 JVM 运行时内存是如何划分的...JVM 运行时内存划分如上图所示,其中橙色区域为线程私有的,包括:虚拟机栈、本地方法栈、程序计数器;蓝色区域为线程共享的,包括:堆区、方法区。...的区域 每个线程都需要一个程序计数器用来记录执行哪行字节码,所以程序计数器是线程私有的 虚拟机栈 每个方法调用时,线程都要为该方法创建一个栈帧,主要用来保存该函数的返回值、局部变量表(用于存放方法参数和方法内部定义的局部变量

    26710

    JVM运行参数之-X和-XX参数

    -X参数 JVM的-X参数是非标准参数,在不同版本的jvm中,参数可能会有所不同,可以通过java -X查看非标准参数。...运行模式-Xint、-Xcomp、-Xmixed 在解释模式(interpreted mode)下,-Xint标记会强制JVM执行所有的字节码,当然这会降低运行速度,通常低10倍或更多。...-Xcomp参数与它(-Xint)正好相反,JVM在第一次使用时会把所有的字节码编译成本地代码,从而带来最大程度的优化。...示例:强制设置运行模式 #强制设置为解释模式 E:\jvm>java -showversion -Xint TestJVM java version "1.8.0_171" Java(TM) SE Runtime...-XX参数的使用有2种方式,一种是boolean类型,一种是非boolean类型: boolean类型 格式:-XX:[±] 如:-XX:+DisableExplicitGC 表示禁用手动调用gc操作

    67210

    JVM运行时数据区域及GC

    这里存放的对象被自动管理,也就是俗称的GC(GarbageCollector)所管理。Java堆的容量可以通过-Xmx和-Xms参数调整空间大小。...如果采用固定大小的JVM Stack设计,那么每一条线程的JVM Stack容量应该在线程创建时独立地选定。...JVM实现应该提供调节JVMStack初始容量的手段;如果采用动态扩展和收缩的JVM Stack方式,应该提供调节最大、最小容量的手段。...Xss参数可设置栈大小。...服务器管理员配置虚拟机参数时,一般会根据实际内存设置-Xmx等参数信息,但经常会忽略掉直接内存,使得各个内存区域的总和大于物理内存限制(包括物理上的和操作系统级的限制),从而导致动态扩展时出现OutOfMemoryError

    38220

    查看JVM运行参数jinfo命令

    jinfo 是 JDK 自带的命令,可以用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。...当系统崩溃时,jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息 查看jvm所有参数默认值 > java -XX:+PrintFlagsInitial -version 查看jvm所有的参数...> java -XX:+PrintFlagsFinal -version 查看当前JVM运行的参数 用法: > jinfo -flags pid 查看系统所有的Java进程 > jcmd 24386...> jinfo -flag InitialHeapSize 18378 开启/关闭某个JVM参数 使用 jinfo 可以在不重启虚拟机的情况下,可以动态的修改 jvm 的参数。...进程的值 jinfo虽然可以在java程序运行时动态地修改虚拟机参数,但并不是所有的参数都支持动态修改jinfo -flag name=value pid 输出当前JVM进程所有的系统属性 > jinfo

    6.1K00

    为什么需要对jvm进行优化,jvm运行参数之标准参数

    文章目录 我们为什么要对jvm做优化? jvm的运行参数 三种参数类型 标准参数 实战 -server与-client参数 我们为什么要对jvm做优化?...…… 说明:使用的jdk版本为1.8。 jvm的运行参数 在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能够高效的运行。绝大部分的参数保持默认即可。...三种参数类型 jvm的参数类型分为三类,分别是: 标准参数 -help -version -X参数(非标准参数,相对变化较少的) -Xint -Xcomp -XX参数(使用率较高,JVM调优的主要部分...) -XX:newSize -XX:+UseSerialGC 标准参数 jvm的标准参数,一般都是很稳定的,在未来的JVM版本中不会改变,可以使用java -help 检索出所有的标准参数。...TestJVM hello-D -server与-client参数 可以通过-server或-client设置jvm的运行参数。

    45210

    GC及JVM参数

    =程序运行时间/(JVM执行回收的时间+程序运行时间),假设程序运行了100分钟,JVM的垃圾回收占用1分钟,那么吞吐量就是99%。...可以通过参数来打开自适应调节策略,虚拟机会根据当前系统的运行情况收集性能监控信息,动态调整这些参数以提供最合适的停顿时间或最大的吞吐量;也可以通过参数控制GC的时间不大于多少毫秒或者比例 新生代复制算法...然而,在实际情况中X参数和XX参数并没有什么不同。X参数的功能是十分稳定的,然而很多XX参数仍在实验当中(主要是JVM的开发者用于debugging和调优JVM自身的实现)。...这是真的,并且我认为这个建议同样适用于X参数(同样一些标准参数也是)。不管类别是什么,在使用参数之前应该先了解它可能产生的影响。 用一句话来说明XX参数的语法。...,gc情况 优化 选择合适的GC collector 整个JVM heap的大小 young generation在整个JVM heap中所占的比重 参数实例 public static void main

    99430

    JVM的运行参数

    在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能够高效的运行。绝大部分的参数保持默认即可。...-server与-client参数 可以通过 -server 或 -client 设置jvm的运行参数。...表示禁用手动调用gc操作,也就是说调用System.gc()无效 非boolean类型 格式:-XX:= 表示属性的值为 如:-XX:NewRatio...java -Xms64m -Xmx128m TestJVM 查看jvm的运行参数 当们需要查看jvm的运行参数,这个需求可能会存在2种情况: 第一,运行java命令时打印出运行参数; 第二,查看正在运行的...查看正在运行的jvm参数 如果想要查看正在运行的jvm就需要借助于 jinfo 命令查看。 启动一个 tomcat 用于测试,用以观察运行的 jvm 参数。 cd bin/ .

    1.4K20

    IDEA设置JVM运行参数

    前言 有时候我们需要在程序运行的时候对程序设置环境变量,恰巧我也遇到了这个问题,所以在此记录一下IDEA是如何设置环境变量的。...作用 -Dproperty=Value 该参数通常用于设置系统级全局变量值,如配置文件路径,保证该属性在程序中任何地方都可访问。...2、如果配置了-Dproperty=value参数,又在程序中使用了System.setProperty对同一个变量进行设置,那么以程序中的设置为准。...针对某个Application设置 1、Run–>Edit Configurations 2、选中要添加JVM参数的Application,然后在Configuration里面的...VM options中输入想要添加的系统参数 针对所有的Application设置 1、找到IDEA安装目录中的bin目录 2、找到idea.exe.vmoptions文件 3

    4.6K40

    JVM - 列出JVM默认参数及运行时生效参数

    ---- Pre 有的时候,想看下自己没有设置的JVM参数的值, 或者有的时候想看下JVM某个参数的默认值 ,亦或想看下用户或者JVM修改的JVM参数 ? 咋办 ?...列出JVM参数的默认值 Java诞生了25年+, N多个参数 ,鬼记得住~ 我们只需要直到常用的,会找就可以了。...第一列表示参数的数据类型 第二列是名称 第三列”=”表示第四列是参数的默认值,如果是”:=” 表明了参数被用户或者JVM赋值了 第四列为值 第五列是参数的类别 ---- -XX:+PrintFlagsFinal...列出运行程序时生效的值 ?...解锁实验参数 -XX:+UnlockInternalVMOptions 解锁内部参数 这个就是隐藏副本了 ,愿君多留意~ ---- jinfo 查看正在运行的Java应用程序的扩展参数 当然了 还有其他参数

    5K20

    JVM系列第14讲:JVM参数之GC日志配置

    今天就让我们来学习一下 Java 虚拟机中所有与 GC 日志有关的参数。相信掌握了这些参数之后,对于大家线上打印 GC 日志是有不少帮助的。...为了认为制造 GC,我们启动时的 JVM 参数固定加上下面几个参数: -XX:+UseSerialGC -Xms20M -Xmx20M -Xmn10M -XX:SurvivorRatio=8 -XX:+...下面就让我们来看看油管 GC 的参数有哪些吧。 打印GC日志 在 GC 日志参数中,最简单的一个参数就是打印 GC 日志:-XX:PrintGC。...通过这个参数,我们可以详细了解每次 GC 时堆空间的详细信息。 打印GC发生的时间 -XX:+PrintGCTimeStamps 这个参数非常简单,就是在每次 GC 日志的前面加上一个时间戳。...这个时间戳表示 JVM 启动后到现在所逝去的时间。

    81630

    IntelliJ IDEA 设置JVM运行参数

    IntelliJ IDEA设置JVM运行参数【面试+工作】 ?...在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配): -vmargs -Xms40m -Xmx256m -vmargs表示以下为虚拟机设置参数...上面表格中黑体的三个参数代表着jvm中GC执行的三种方式,即串行、并行、并发; 串行(SerialGC)是jvm的默认GC方式,一般适用于小型应用和单处理器,算法比较简单,GC效率也较高,但可能会给应用带来停顿...; 并行(ParallelGC)是指GC运行时,对应用程序运行没有影响,GC和app两者的线程在并发执行,这样可以最大限度不影响app的运行; 并发(ConcMarkSweepGC)是指多个线程并发执行...GC,一般适用于多处理器系统中,可以提高GC的效率,但算法复杂,系统消耗较大; 性能调优参数列表: ?

    8.2K30
    领券