idea64.exe.vmoptions 配置说明,通用于jvm配置

一、问题场景:

在使用 idea 时,经常卡顿,性能不足,且内存消耗大,在已经购买使用性能较大 酷睿12代标压 及以上,内存配置较大 32G 及以上时,为了全面释放 cpu 性能,提高 idea 性能,故对 idea 的 jvm 进行配置优化。

我的配置: i7 12700H    ddr5:32G

二、配置文件位置:

用户环境路径:

C:\Users\{user}\AppData\Roaming\JetBrains\IntelliJIdea2021.1\idea64.exe.vmoptions

三、配置信息:

## 这个参数会启动JVM的"server"模式,这种模式下JVM会进行更多的优化,但是启动速度会稍慢一些。
-server
## 设置JVM堆的初始大小				-Xms 和 -Xmx:-Xms 参数设置 JVM 初始堆大小,-Xmx 参数设置最大堆大小。一般推荐将这两个参数设置为相同的值,以避免 JVM 频繁调整堆大小,这样可以提高性能。
-Xms9g
## 设置JVM堆的最大大小	
-Xmx9g
## 设置年轻代大小 					一般推荐将 -Xmn 设置为堆大小(由 -Xmx 或 -Xms 设置)的 1/3 到 1/4。这样可以保证足够的空间进行对象分配,同时也有足够的空间进行老年代的垃圾收集。
-Xmn3g
## 设置新生代最小空间大小。
-XX:NewSize=3g
## 设置新生代最大空间大小。         -XX:NewSize 和 -XX:MaxNewSize 一般推荐将这两个参数设置为相同的值,并且与 -Xmn 的值相同。
-XX:MaxNewSize=3g
## 用于设置元空间的初始大小。		如果未指定此参数,元空间将根据运行时的应用需求动态地调整大小。
-XX:MetaspaceSize=1g
## 用于设置元空间的最大大小。即以前的永久代  如果你的应用有大量的类或者使用了大量的反射,你可能需要增加这个值。
-XX:MaxMetaspaceSize=1g
## 设置代码缓存的初始大小                    用来存储已编译方法生成的本地代码
-XX:InitialCodeCacheSize=256m
## 设置代码缓存的最大大小                    注意: 过大的编译缓存,有可能导致,本地的编译代码,不是 ”实时的“ 导致引用错误,需要 idea invalidate caches
-XX:ReservedCodeCacheSize=512m

## 启用并发标记清除(CMS)垃圾收集器。 是 HotSpot 虚拟机第一款真正意义上的并发收集器,它第一次实现了让垃圾收集线程与用户线程(基本上)同时工作
## CMS(并发标记清除)垃圾收集器的 JVM 参数。CMS 是一个以获取最小垃圾收集停顿时间为目标的收集器,适用于对响应时间有严格要求的系统。
## 但是,CMS 有一些缺点,例如无法处理浮动垃圾,可能导致内存碎片化,以及在并发阶段可能会与应用线程竞争 CPU 资源。
## -XX:+UseConcMarkSweepGC
## CMS垃圾收集器,设置CMS垃圾收集器在堆内存使用率达到70%时开始垃圾收集    当老年代达到62%时,触发CMS垃圾回收
## -XX:CMSInitiatingOccupancyFraction=70
## 与CMSInitiatingOccupancyFraction配合使用,只在堆内存使用率达到CMSInitiatingOccupancyFraction设置的值时开始CMS垃圾收集。   只使用设定的阈值进行回收,如果不指定后续JVM会自动调整
## -XX:+UseCMSInitiatingOccupancyOnly

## 高性能,高并发和大内存,推荐使用以下垃圾收集器垃圾收集器:
## -XX:+UseG1GC                                    G1垃圾收集器(G1 GC):G1 GC 是一个面向服务器的垃圾收集器,适用于多核处理器和大内存的系统。它可以处理大量的堆内存,并且可以预测垃圾收集的停顿时间。
## -XX:+UnlockExperimentalVMOptions -XX:+UseZGC    Z垃圾收集器(ZGC):ZGC 是一个可扩展的低延迟垃圾收集器。ZGC 可以处理大量的堆内存,同时保持低延迟。但是,ZGC 在 JDK 11 中仍然是实验性的。
## -XX:+UseParallelGC                              并行垃圾收集器(Parallel GC):Parallel GC 是一个多线程的垃圾收集器,适用于多核处理器的系统。它在吞吐量上表现优秀,但可能会导致较长的垃圾收集停顿。

## 使用G1垃圾收集器,它在处理大内存时表现更好。
-XX:+UseG1GC
## 这些是G1垃圾收集器的参数,用于控制垃圾收集的行为。
## 用于设置 G1 垃圾收集器的堆区域大小。      G1 垃圾收集器将堆内存分割成多个相同大小的区域,每个区域都可以是 Eden、Survivor 或 Old 区域。-XX:G1HeapRegionSize 参数用于设置这些区域的大小。
## 这个参数的值可以是 1MB、2MB、4MB、8MB、16MB 或 32MB。默认值由 JVM 根据你的硬件配置自动选择。
## 请注意,这个参数的设置可能会影响到 G1 垃圾收集器的性能。如果区域太大,可能会导致垃圾收集的效率降低;如果区域太小,可能会导致堆内存的利用率降低。
-XX:G1HeapRegionSize=32M
## 用于设置垃圾收集器的目标停顿时间。单位是毫秒。主要目的是控制垃圾收集器的停顿时间,以减少应用程序的停顿时间。垃圾收集器会尽力保证停顿时间不超过设置的值,但这并不是一个硬性的限制,实际的停顿时间可能会超过这个值。
## =200,那么垃圾收集器会尽力保证每次垃圾收集的停顿时间不超过200毫秒。这个参数对于需要控制垃圾收集停顿时间的应用程序非常有用,例如实时系统或者具有严格响应时间要求的系统。
-XX:MaxGCPauseMillis=200
## 用于设置 G1 垃圾收集器在进行并行阶段(如初始标记和全局并行清除阶段)时的线程数。
-XX:ParallelGCThreads=12
## 用于设置 G1 垃圾收集器在进行并发阶段(如并发标记和并发清除阶段)时的线程数。
-XX:ConcGCThreads=12
## 编译器线程的总数 设置并行编译线程的数量,在使用分层编译时,JVM会自动分配这些线程给C1和C2编译器。
-XX:CICompilerCount=12
## 控制最大数量嵌套调用内联  默认值为9,控制最大数量嵌套调用内联。 内联越多也将导致生成的机器码越长,越容易填满 ReservedCodeCacheSize , C2 不支持内联超过 9 层的调用
## 增加了方法内联的最大深度,以提高性能。
-XX:MaxInlineLevel=15

## 这个参数设置了软引用对象的清理策略。每MB的空闲堆内存会保留50ms的软引用对象。  默认值是1000   
## 这个参数只在使用并行垃圾收集器(-XX:+UseParallelGC)或者串行垃圾收集器(-XX:+UseSerialGC)的情况下有效。
## 如果这个值设置得过大,可能会导致软引用对象占用过多的内存,从而增加垃圾收集的压力,降低性能。反之,如果这个值设置得过小,可能会导致软引用对象过早被回收,从而增加对象创建和初始化的开销,也可能降低性能。
-XX:SoftRefLRUPolicyMSPerMB=500

## 开启分层编译
-XX:+TieredCompilation
## Java8默认开启了「分层编译」
## 在开发环境中,为了加快应用启动速度,可以设置 -XX:TieredStopAtLevel=1。在生产环境中,为了获取最高的运行性能,通常不应设置这个参数,让JVM使用所有可用的优化级别。
## 请注意,这个参数只在开启了分层编译(-XX:+TieredCompilation)的情况下有效。 
### 参数的值从0到4,每个值的含义如下:
## - 0:解释执行,不进行任何编译优化。
## - 1:使用C1编译器进行简单优化。
## - 2:使用C1编译器进行有限的优化。
## - 3:使用C1编译器进行全优化。
## - 4:使用C2编译器进行全优化。      让 JVM 在启动时尽可能将所有代码编译为最高的 C4 级别(也就是 C2 编译器的编译级别),以提高程序运行时的效率。可能会增加 JVM 启动时的编译开销,因此可能会导致程序启动时间变长。
## 
## 从启动速度和执行效率的角度对比排序如下:
## 
## - 启动速度:0 > 1 > 2 > 3 > 4     级别越高,启动时,越消耗 cpu,启动时间越长
## - 执行效率:4 > 3 > 2 > 1 > 0     级别越高,运行时,效率越高
## 用于设置Java的多层编译系统的最高优化级别。
-XX:TieredStopAtLevel=4

## 即时编译 C4 第4层(最高级)  ## 如果你的应用有一些热点方法,这些方法在应用启动后很快就会被频繁调用,那么可以考虑降低这些值,让这些方法更早地被编译到最高优化级别。
## 用于设置方法被调用多少次后才会被编译到第4级别。   =10000(默认) 表示一个方法被调用10000次后,JVM会尝试将其编译到第4级别。 
-XX:Tier4MinInvocationThreshold=100
## 设置方法被解释执行多少次后才会被编译到第4级别。    =2000(默认) 表示一个方法被解释执行2000次后,JVM会尝试将其编译到第4级别。
-XX:Tier4InvocationThreshold=100
## 设置方法被编译执行多少次后才会被编译到第4级别。    =15000(默认) 表示一个方法被编译执行15000次后,JVM会尝试将其编译到第4级别。
-XX:Tier4CompileThreshold=100

## 这个参数让JVM在出现内存溢出错误时生成堆转储文件。
-XX:+HeapDumpOnOutOfMemoryError
## 这个参数禁止了快速抛出异常时省略堆栈跟踪,可以帮助调试。 
-XX:-OmitStackTraceInFastThrow
## 这个参数启用了Java断言功能。
-ea
## 这个参数禁用了规范化路径缓存,可以避免在某些情况下出现文件锁定问题。
-Dsun.io.useCanonPrefixCache=false
## 这个参数让JVM优先使用IPv4网络栈。
-Djava.net.preferIPv4Stack=true
## 这个参数用于设置JDK HTTP认证中禁用的隧道协议。设置为空字符串""表示没有禁用任何协议。
-Djdk.http.auth.tunneling.disabledSchemes=""
## 这个参数允许JVM自我附加。这通常用于某些类型的监控和管理操作。
-Djdk.attach.allowAttachSelf=true
## 这个参数用于控制Kotlin协程的调试模式。设置为"off"表示关闭调试模式。
-Dkotlinx.coroutines.debug=off
## 用于控制Java 9及以上版本中的模块系统对非法访问的处理。在Java 9中,引入了模块系统,它对类的可见性进行了更严格的控制。默认情况下,如果一个类试图访问它不应该访问的另一个模块中的类,JVM会在控制台输出一个警告。
## 设置为 true JVM将不会输出这些警告。这可以使控制台输出更加清晰,但是可能会隐藏一些潜在的问题。 
-Djdk.module.illegalAccess.silent=true

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: IntelliJ IDEA配置文件 idea64.exe.vmoptions 包含了 Java 虚拟机 (JVM) 的启动参数,它影响着 IntelliJ IDEA 的性能和行为。 你可以修改 idea64.exe.vmoptions 文件来调整 IntelliJ IDEA配置,比如: - 增加 JVM 的内存分配量,以提高 IntelliJ IDEA 的性能。 - 修改 GC 策略,以提高垃圾回收的效率。 请注意,在修改 idea64.exe.vmoptions 文件之前,请备份原始文件,以防止出现意外错误。 ### 回答2: idea64.exe.vmoptions配置文件是IntelliJ IDEA(以下简称IDEA)的启动参数配置文件,其作用是指定IDEA运行时的虚拟机参数。用户可以根据自己的需求对该文件进行修改来调整IDEA的运行性能。 首先,找到idea64.exe.vmoptions配置文件,一般位于IDEA的安装目录下的bin文件夹中。使用文本编辑器打开该文件。 在打开的配置文件中,我们可以看到一些以"-"开头的参数,每个参数对应一项IDEA的功能或特性。根据自己的需求进行相应的修改即可。 例如,我们可以通过修改-Xmx参数来调整IDEA的最大堆内存。默认情况下,IDEA的最大堆内存为1G(-Xmx1g),可以根据项目的复杂程度和机器的配置适当增大或减小该值。如果项目较大且机器配置较好,可以将该值增大至2G或以上,以提升IDEA的性能;反之,如果机器配置较低或项目较小,可以将该值减小至512M或更低以节省内存。 除了-Xmx参数外,还有一些其他参数也是常见的配置项,如-Xms参数用于指定IDEA的初始堆内存大小,可以在启动IDEA时分配更多的内存以提升启动速度。另外,-XX:+UseConcMarkSweepGC参数用于指定垃圾回收器类型,-ea参数用于开启断言等等。 修改完配置后,保存文件并重新启动IDEA即可生效。在修改配置文件时,建议备份原有文件,以防意外情况发生时可以恢复到原始状态。 总之,通过修改idea64.exe.vmoptions配置文件,可以根据个人需求来调整IDEA的运行性能,提升开发效率。但是在修改配置文件时,需要谨慎,避免错误的配置导致不必要的问题。 ### 回答3: idea64.exe.vmoptions是IntelliJ IDEA的一个配置文件,用于设置JVM的相关参数,可以优化IntelliJ IDEA的性能和内存使用。 首先,找到idea64.exe.vmoptions文件的位置。通常在IntelliJ IDEA的安装目录的\bin文件夹下。注意:idea64.exe.vmoptions64位系统的配置文件,如果是32位系统,应使用idea.exe.vmoptions。 打开idea64.exe.vmoptions文件,可以看到一些默认的配置参数,每行一个参数。这些参数可以根据自己的需求进行修改。 常见的配置参数包括: - -Xms: 设置初始堆内存大小。可以根据项目的复杂度和需要分配的内存大小进行调整。例如:-Xms2G表示初始堆内存为2GB。 - -Xmx: 设置最大堆内存大小。同样根据项目的需求进行调整,一般不宜超过计算机的物理内存。例如:-Xmx4G表示最大堆内存为4GB。 - -XX:MetaspaceSize: 设置元空间大小。元空间用于存放类的元数据,一般在大规模项目中会占用较多的内存。例如:-XX:MetaspaceSize=256M表示元空间大小为256MB。 - -XX:MaxMetaspaceSize: 设置最大元空间大小。与上述参数类似,根据项目的需求进行调整。例如:-XX:MaxMetaspaceSize=512M表示最大元空间大小为512MB。 - -XX:+UseConcMarkSweepGC: 使用并发标记清除垃圾收集器。可以提高垃圾回收的效率。 - -Dfile.encoding=UTF-8: 设置文件编码为UTF-8,可以避免乱码等问题。 修改这些参数时,可以根据自己的需求和电脑的硬件配置进行调整,但是要注意不要将堆内存设置得过大,以免导致内存溢出的问题。 修改完成后,保存文件,并重新启动IntelliJ IDEA即可生效。 总之,通过修改idea64.exe.vmoptions文件中的配置参数,可以优化IntelliJ IDEA的性能,并使其更好地适应项目的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值