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

2023-10-31

一、问题场景:

在使用 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

idea64.exe.vmoptions 配置说明,通用于jvm配置 的相关文章

  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • 插入最大日期(独立于数据库)

    在我的本地设置中 我使用一个简单的 H2 数据库 托管 解决方案将有另一个 类似但不相同 数据库 我需要将最大可能日期插入到日期时间列中 我尝试使用 Instant MAX 但是 这会导致列中出现 169104626 12 11 20 08
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 按第一列排序二维数组,然后按第二列排序

    int arrs 1 100 11 22 1 11 2 12 Arrays sort arrs a b gt a 0 b 0 上面的数组已排序为 1 100 1 11 2 12 11 22 我希望它们按以下方式排序a 0 b 0 首先 如果
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • 如何安全地解决这个 Java 上下文类加载器问题?

    我的数百名用户中只有一位在启动我的 Java 桌面应用程序时遇到问题 他只有大约三分之一的时间开始 另外三分之二的时间在启动时抛出 NullPointerException Exception in thread AWT EventQueu
  • 在 S3 中迭代对象时出现“ConnectionPoolTimeoutException”

    我已经使用 aws java API 一段时间了 没有遇到太多问题 目前我使用的是库 1 5 2 版本 当我使用以下代码迭代文件夹内的对象时 AmazonS3 s3 new AmazonS3Client new PropertiesCred
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • 如何使用 Maven 打包并运行具有依赖项的简单命令行应用程序?

    我对 java 和 Maven 都是全新的 所以这可能非常简单 如果我遵循maven2hello world此处的说明 http maven apache org guides getting started maven in Five m
  • 具有 java XSLT 扩展的数组

    我正在尝试使用 java 在 XSLT 扩展中使用数组 我收到以下错误 Caused by java lang ClassCastException org apache xpath objects XObject cannot be ca
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • Delphi 2009 IDE结构视图折叠功能

    现在有谁知道折叠 Delphi 2009 IDE 结构视图中的所有项目吗 我不知道折叠所有项目 这使我很难从视图中找到我的课程 Thanks 选择根节点 类 并按数字键盘上的 除号 那会让一切崩溃 然后按数字键盘上的 加号 键 第一级将展开
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • 在 Spring 中重构这个的最佳方法?

    private final ExecutorService executorParsers Executors newFixedThreadPool 10 public void parse List
  • Cucumber Java 与 Spring Boot 集成 - Spring @Autowired 抛出 NullPointer 异常

    我正在为 Spring boot 应用程序编写 cucumber java 单元测试来测试每个功能 当我与 Spring Boot 集成时 Autowired 类抛出 NullPointer 异常 Spring Boot应用程序类 Spri
  • spring中如何使用jackson代替JdkSerializationRedisSerializer

    我在我的一个 Java 应用程序中使用 Redis 并且正在序列化要存储在 Redis 中的对象列表 但是 我注意到使用 RedisTemplate 会使用 JdkSerializationRedisSerializer 相反 我想使用 J
  • 为什么这个作业不起作用?

    我有课Results which extends ArrayList
  • 调整添加的绘制组件的大小和奇怪的摆动行为

    这个问题困扰了我好几天 我正在制作一个特殊的绘画程序 我制作了一个 JPanel 并添加了使用 Paint 方法绘制的自定义 jComponent 问题是 每当我调整窗口大小时 所有添加的组件都会 消失 或者只是不绘制 因此我最终会得到一个

随机推荐

  • varying是vs和Ps之间的shader传递变量

    正如uniform是shader和应用程序之间传递的变量 varying是shader之间传递的变量 比如 vs的输出 也就是Ps的输入
  • 简单理解css中的垂直居中和水平居中,即vertical-align和text-align属性

    前言 在很多情况下 我们要使用到内容的居中 这里的居中包括了垂直居中和水平居中 下面来浅谈一下 对于水平居中的属性text align和垂直居中属性vertical align的理解 1 text align 如果要实现水平居中 比如我们要
  • STM32菜鸟成长记录---系统滴答定时器(systick)应用

    1 systick介绍 Systick就是一个定时器而已 只是它放在了NVIC中 主要的目的是为了给操作系统提供一个硬件上的中断 号称滴答中断 滴答中断 这里来简单地解释一下 操作系统进行运转的时候 也会有 心跳 它会根据 心跳 的节拍来工
  • java线程间如何通信

    Java线程之间可以通过以下方式进行通信 使用 wait 和 notify 方法 这需要使用同步代码块或同步方法 在同步代码块或同步方法中 线程可以调用 wait 方法阻塞 并在其他线程调用 notify 方法后恢复执行 使用 CountD
  • Altium Designer之图片logo导入笔记

    图片logo导入分为两种 丝印类型 露铜 1 在PCB页面 文件 运行脚本 弹出运行条目对话框 浏览 选择 PRJSCR文件 点击运行脚本 确定 弹出对话框 图1 1 选择导入文件 图1 2 导入对话框 2 点击加载 选择 bmp格式图片
  • [论文解读]Attention is all you need

    论文地址 http papers nips cc paper 7181 attention is all you need pdf 发表会议 NIPS2017 文章目录 动机 背景 思考 细节 网络结构 总结 参考 最早提出self att
  • windows cd ~/.ssh报错

    这里提供一个你之前可能有这个文件 打开这个在进入
  • 虚拟化服务器安全性,服务器虚拟化安全性

    服务器虚拟化安全性 内容精选 换一换 裸金属服务器与周边服务的依赖关系如图1所示 企业主机安全 Host Security Service HSS 是提升服务器整体安全性的服务 通过主机管理 风险防御 入侵检测 安全运营 网页防篡改功能 可
  • Kaldi安装与编译报错

    Environment Rule number 1 use Linux Although it is possible to use Kaldi on Windows most people I find trustworthy convi
  • 【数据结构】单链表的应用——有序多项式合并化简

    写在前面的话 本人是学生 水平有限 测试用例较少 如果有纰漏还请见谅 有如下俩个多项式 利用链表将他们合并成一个并且化简 结点结构 typedef struct node float coef 系数 int exp 指数 struct no
  • 缺陷检测公开数据集大全

    一 弱监督学习下的工业光学检测 DAGM 2007 数据下载链接 https hci iwr uni heidelberg de node 3616 数据集简介 主要针对纹理背景上的杂项缺陷 较弱监督的训练数据 包含十个数据集 前六个为训练
  • 学习太极创客 — MQTT 第二章(二)ESP8266 QoS 应用

    因此 这里将仅介绍如何使用 ESP8266 来接收 QoS 1 的 MQTT 消息 这里的程序与 学习太极创客 MQTT 八 ESP8266订阅MQTT主题 这一小节中的内容基本一致 只不过这里的示例是 QoS 1 项目名称 Project
  • 控制listview大图标之间的间距

    DllImport user32 dll CharSet CharSet Auto public static extern IntPtr SendMessage IntPtr hWnd int msg int wParam int lPa
  • tinyxml开发入门

    概述 tinyxml和xercesc一样 提供了完整的dom操作api tinyxml相对比较简单好用 编译连接也不容易出问题 xercesc比较麻烦 非常完整庞大 编译有点麻烦 有内存泄漏 我认为在一般需求完全可以使用tinyxml ti
  • 八数码深度优先搜索_数据结构与算法之美26——广度优先搜索与深度优先搜索...

    什么是搜索算法 上一节介绍了图的基本概念 这一节介绍图的搜索算法 图的搜索算法 最直观的理解就是从一个顶点到另一个顶点的路径 最简单的是广度优先搜索和深度优先搜索 这也是这一节介绍的内容 另外还有A IDA 等启发式搜索算法 本节内容以无向
  • windows10和CentOS 7安装nginx作文件管理器

    目录 一 windows10 系统配置nginx文件服务器 1 到nginx官网上下载windows版本的nginx 地址http nginx org en download html 2 把下载的包放在电脑磁盘里解压 注意解压的包的路径不
  • 哈工大2020机器学习实验一:多项式拟合正弦曲线

    源代码请参考 实验一 GitHub 仓库 运行效果请参考 主程序 哈尔滨工业大学计算学部 实验报告 机器学习 实验一 多项式拟合正弦函数 学号 1183710109 姓名 郭茁宁 文章目录 一 实验目的 二 实验要求及实验环境 实验要求 实
  • 8.3-无监督学习-词嵌入

    文章目录 1 of N Encoding 词嵌入 基于计数的词嵌入 基于预测的词嵌入 具体步骤 共享参数 训练 Various Architectures 多语言嵌入 多域嵌入 文档嵌入 语义嵌入 Beyond Bag of Word 1
  • 微软云计算技术Windows Azure专题(一):如何利用Service Bus向Windows商店应用推送消息...

    本文介绍了如何使用Windows Azure的Service Bus通知中心发送推送通知Windows商店应用程序 先来明确一下大体上要做哪些步骤 1 申请一个Windows应用商店的应用 每个应用都有自己的身份识别标识 不然Windows
  • idea64.exe.vmoptions 配置说明,通用于jvm配置

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