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确实生效了。

总结

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

相关文章

  • Java如何通过反射获取Constructor、Field、Method对象

    Java如何通过反射获取Constructor、Field、Method对象

    反射指的是对象的反向处理操作,根据对象取得对象的来源信息,在反射的世界里面,看重的不再是一个对象,而是对象身后的组成,下面这篇文章主要给大家介绍了关于Java如何通过反射获取Constructor、Field、Method对象的相关资料,需要的朋友可以参考下
    2022-06-06
  • Java入门教程--带包的类如何编译与运行

    Java入门教程--带包的类如何编译与运行

    我们一般都是通过IDE(如Eclipse、Intellij Idea,STS等)来开发,调试java项目。在不借助IDE的情况下,如何编译、运行Java程序。打包编译时,会自动创建包目录,不需要自己新建包名文件夹。
    2022-12-12
  • dubbo服务整合zipkin详解

    dubbo服务整合zipkin详解

    这篇文章主要介绍了dubbo服务整合zipkin,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 通过java反射机制动态调用某方法的总结(推荐)

    通过java反射机制动态调用某方法的总结(推荐)

    下面小编就为大家带来一篇通过java反射机制动态调用某方法的总结(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • Spring boot搭建邮件服务的完整步骤

    Spring boot搭建邮件服务的完整步骤

    这篇文章主要给大家介绍了关于Spring boot搭建邮件服务的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 一文读懂Java多线程背后的故事

    一文读懂Java多线程背后的故事

    Java是一种广泛使用的编程语言,而多线程是Java程序员必不可少的一部分,Java的多线程支持具有确保数据同步、最大化利用CPU资源、并行处理任务等众多优点,本文从实际应用场景出发,为您详细介绍 Java 多线程的各个方面的实际应用及背景
    2023-06-06
  • java设计模式之简单工厂模式简述

    java设计模式之简单工厂模式简述

    这篇文章主要为大家详细介绍了java设计模式之简单工厂模式,简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类的实例,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • Hibernate Validator实现更简洁的参数校验及一个util

    Hibernate Validator实现更简洁的参数校验及一个util

    这篇文章主要介绍了Hibernate Validator实现更简洁的参数校验及一个util,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Java使用JDBC连接数据库的实现方法

    Java使用JDBC连接数据库的实现方法

    这篇文章主要介绍了Java使用JDBC连接数据库的实现方法,包括了详细的加载步骤以及完整实现示例,需要的朋友可以参考下
    2014-09-09
  • 使用MyBatisPlus自动生成代码后tomcat运行报错的问题及解决方法

    使用MyBatisPlus自动生成代码后tomcat运行报错的问题及解决方法

    这篇文章主要介绍了使用MyBatisPlus自动生成代码后tomcat运行报错的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论