IDEA修改idea64.exe.vmoptions文件以及解决coding卡顿问题

 更新时间:2023年04月26日 10:05:45   作者:Andya_net  
IDEA修改idea64.exe.vmoptions文件以及解决coding卡顿问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

IDEA修改idea64.exe.vmoptions文件及解决coding卡顿

用idea软件同时打开多个项目时,过个几天不关闭,就慢慢陷入卡顿的漩涡。

于是网上各种搜索解决方案,目前亲测有效的一个方案就是修改idea64.exe.vmoptions文件中的配置值。

介绍

idea64.exe.vmoptions是IntelljJ IDEA的可执行文件的VM(虚拟机)配置文件,我们可以理解为应用程序的虚拟机配置参数。

还有一个idea.exe.vmoptions是针对32位IDEA使用的。一般存放在JetBrains\IntelliJ IDEA 2018.1.2\bin路径中。

该文件有别于我们开发的Java项目的VM参数,Java项目一般是配置在启动脚本或者直接指定JVM运行参数,该文件对于使用IDEA开发的Java项目是无效的,只能对于IDEA本身有效哦。

配置详解

-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=512m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
参数说明
-Xms128m指定虚拟机堆内存初始值大小,最小Java Heap值,默认物理内存的1/64,一般设置为相同值较好,避免频繁对堆内存进行扩容和GC带来的系统开销
-Xmx750m指定虚拟机堆内存最大值大小,最大Java Heap值,默认物理内存的1/4
-XX:ReservedCodeCacheSize=512m预留保存代码缓存的内存空间大小
-XX:+UseConcMarkSweepGC老年代使用CMS垃圾回收策略,并发、标记、清理重置
-XX:SoftRefLRUPolicyMSPerMB=50每兆堆空间中最近最少使用的软引用存活时间为50秒,LRU(Least Recently Used)最近最少使用
-eaeq开启断言,-da表示禁止断言
-Dsun.io.useCanonCaches=false使用标准缓存
-Djava.net.preferIPv4Stack=true使用IPV4协议
-XX:+HeapDumpOnOutOfMemoryError当堆内存溢出时,启用堆Dump快照
-XX:-OmitStackTraceInFastThrow忽略异常栈信息,迅速抛出

关于IDEA的idea64.exe.vmoptions文件使用的误区

我电脑中安装的是IDEA 2017.2.5 64位版本的,在IDEA安装目录下的bin目录下有一个idea64.exe.vmoptions文件。

如下图:

该文件的内容如下:

我以为修改该文件中的-Xms和-Xmx参数可以改变程序运行时的堆内存大小。但是无论怎么修改都生效不了。

做过如下尝试

点击功能栏中Help->Edit Custom VM Options,是的在用户目录中产生一份idea64.exe.vmoptions,修改该文件的内容——失败。

在运行配置中新增环境变量:IDEA64_VM_OPTIONS=C:\Users\Administrator.IntelliJIdea2017.2\config\idea64.exe.vmoptions(如下图),指定idea64.exe.vmoptions文件的位置——失败

新增系统变量:IDEA64_VM_OPTIONS=C:\Users\Administrator.IntelliJIdea2017.2\config\idea64.exe.vmoptions(如下图),指定idea64.exe.vmoptions文件的位置——失败

通过以上三种方式都无济于事,查看程序运行时堆内存情况并没有改变

查阅相关资料才知道,idea64.exe.vmoptions针对的是idea环境,对通过Idea运行的java项目不起作用。

idea本身就是一个 Java 应用,所以也必须运行于 JVM 之上。

此处的 idea64.exe.vmoptions 文件就是用来配置64位的 idea 所使用的 JVM 参数。

是idea运行时用的配置,并不是项目运行的配置。

可以通过下面方式验证:

默认-Xmx750m

修改为-Xmx950m

idea64.exe.vmoptions确实生效了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring LDAP目录服务的使用示例

    Spring LDAP目录服务的使用示例

    本文主要介绍了Spring LDAP目录服务的使用示例
    2025-04-04
  • springboot创建文件夹失败的解决

    springboot创建文件夹失败的解决

    这篇文章主要介绍了springboot创建文件夹失败的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 将Java程序打包成EXE文件的实现方式

    将Java程序打包成EXE文件的实现方式

    这篇文章主要介绍了将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Java中常见的日期操作(取值、转换、加减、比较)

    Java中常见的日期操作(取值、转换、加减、比较)

    本文给大家介绍java中常见的日期操作,日期取值、日期转换、日期加减、日期比较,对java日期操作相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • SpringMVC上传文件的两种方法

    SpringMVC上传文件的两种方法

    这篇文章主要为大家详细介绍了SpringMVC上传文件的两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • jdk中keytool的使用以及如何提取jks文件中的公钥和私钥

    jdk中keytool的使用以及如何提取jks文件中的公钥和私钥

    JKS文件由公钥和密钥构成利用Java Keytool工具生成的文件,它是由公钥和密钥构成的,下面这篇文章主要给大家介绍了关于jdk中keytool的使用以及如何提取jks文件中公钥和私钥的相关资料,需要的朋友可以参考下
    2024-03-03
  • SpringBoot集成RabbitMQ和概念介绍

    SpringBoot集成RabbitMQ和概念介绍

    这篇文章主要介绍了SpringBoot集成RabbitMQ和概念介绍,RabbitMQ即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。更多相关内容需要的小伙伴可以参考一下下面文章内容
    2022-05-05
  • Java实现对一行英文进行单词提取功能示例

    Java实现对一行英文进行单词提取功能示例

    这篇文章主要介绍了Java实现对一行英文进行单词提取功能,结合实例形式分析了java基于StringTokenizer类进行字符串分割的相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • Java深入讲解Object类常用方法的使用

    Java深入讲解Object类常用方法的使用

    前面java继承中说到的Object类是java中一个特殊的类,所有的类都是直接或者间接的继承自Object类,即如果某个类没有使用extends关键字则默认是java.lang.Object类的子类,所以所有的类都可以使用Object类中定义的方法,下面介绍Object类的常用方法
    2022-04-04
  • 分享5个Java接口性能提升的通用技巧

    分享5个Java接口性能提升的通用技巧

    作为后端开发人员,我们总是在编写各种API。这些API在服务初期可能表现不错,但随着用户数量的增长,一开始响应很快的API越来越慢,这时候你就需要考虑如何优化你的API性能了。在这篇文章中,我总结了一些行之有效的API性能优化技巧,希望能给有需要的朋友一些帮助
    2023-01-01

最新评论