idea64.exe.vmoptions文件详解

本文详细介绍了IDEA的idea64.exe.vmoptions文件,这是用于配置IDEA运行时虚拟机参数的文件,不同于项目中的Java虚拟机参数。文件内容包括内存大小、垃圾回收策略等参数,并解析了各项参数的意义。同时,文章列举了在修改配置时常见的误区,如错误地以为修改此文件会影响Java程序,以及未正确保存导致IDEA无法启动等问题。
摘要由CSDN通过智能技术生成

实际开发中常用IDEA的小伙伴,遇到内存问题时可能会修改idea64.exe.vmoptions文件中的部分参数,那么这篇文章就用于详细介绍该文件。

一、文件简介

idea64.exe.vmoptionsidea.exe.vmoptions两个文件都是IntelliJ IDEA的可执行文件的VM(虚拟机)配置文件,简单来说就是IDEA配置虚拟机参数的位置,不过前者对应的时64位IDEA,后者对应的是32D位的IDEA。

注意:
  这跟项目中的虚拟机参数配置是有区别的,这两个文件针对的是IDEA环境,是IDEA运行时用的配置,并不是项目运行的配置,对通过IDEA运行的java项目不起作用,指定Java程序的VM参数配置需针对该Java程序进行设置。

二、文件内容

(1)idea64.exe.vmoptions

-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=512m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-ea
-Dsun.io.useCanonCaches=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off

(2)idea.exe.vmoptions

-server
-Xms128m
-Xmx512m
-XX:ReservedCodeCacheSize=384m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-ea
-Dsun.io.useCanonCaches=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off

三、参数解析

以idea64.exe.vmoptions文件为例:

参数意义
-Xms128mJava Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值
-Xmx750mJava Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定
-XX:ReservedCodeCacheSize=240m预留保存代码的内存空间大小
-XX:+UseConcMarkSweepGC老年代使用 CMS 垃圾回收策略(并发标记清除)
-XX:SoftRefLRUPolicyMSPerMB=50每兆堆空闲空间中SoftReference的存活时间,LRU(Least Recently Used)最近最少使用。意思是最近最少被引用的软引用 将在50秒后被JVM清除。单位为秒。
-eaea 开启断言 -da 禁止断言
-Dsun.io.useCanonCaches=false使用佳能内存???
-Djava.net.preferIPv4Stack=true如果在使用ipv4的机器上运行启用了ipv6的系统,那么此参数设为true才能获取机器的完整机器名
-Djdk.http.auth.tunneling.disabledSchemes=""根据域名自动下载https服务端发送过来的证书并保存成文件,可参考:https://blog.csdn.net/qq_31567335/article/details/78877509
-XX:+HeapDumpOnOutOfMemoryError当堆内存空间溢出时输出堆的内存快照
-XX:-OmitStackTraceInFastThrow可参考:https://www.jianshu.com/p/cc1bd35466cb

该部分内容参考自:《idea64.exe.vmoptions 参数意义》

四、使用误区总结

1.错认为修改该文件中参数就是作用就是对应Java程序。
(1)Help->Edit Custom VM Options,用户目录中产生一份idea64.exe.vmoptions文件(我这里目录是:C:\Users\Administrator\AppData\Roaming\JetBrains\IntelliJIdea2020.3\idea64.exe.vmoptions),修改这个文件的内容。
——失败,并且若未保存该文件的修改或还原,会导致IDEA无法打开,提示:“Error launching IDEA-If you already have a 64-bit JDK installed, define a JAVA_HOME variable in Computer>System Properties>System Settings>Environment Variables. Failed to create JVM. JVM Path:C\Program Files\JetBrains\IntelliJ IDEA 2020.3\jbr\”错误。
(2)在运行配置中新增环境变量(Environment variables):IDEA64_VM_OPTIONS=C:\Users\Administrator\AppData\Roaming\JetBrains\IntelliJIdea2020.3\idea64.exe.vmoptions,指定idea64.exe.vmoptions文件的位置。
——失败
(3)新增系统变量:IDEA64_VM_OPTIONS=C:\Users\Administrator\AppData\Roaming\JetBrains\IntelliJIdea2020.3\idea64.exe.vmoptions,指定idea64.exe.vmoptions文件的位置。
——失败

2.修改idea64.exe.vmoptions文件未保存出现IDEA无法启动问题。
具体问题出现-分析-尝试-解决都可查看我的另一篇文章:
《launching IDEA-If you already have a 64-bit JDK installed, define a JAVA_HOME…问题解析处理》

后续补充…

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值