一、文件简介
idea64.exe.vmoptions
和idea.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文件为例:
参数 | 意义 |
---|---|
-Xms128m | Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值 |
-Xmx750m | Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定 |
-XX:ReservedCodeCacheSize=240m | 预留保存代码的内存空间大小 |
-XX:+UseConcMarkSweepGC | 老年代使用 CMS 垃圾回收策略(并发标记清除) |
-XX:SoftRefLRUPolicyMSPerMB=50 | 每兆堆空闲空间中SoftReference的存活时间LRU(Least Recently Used)最近最少使用。意思是最近最少被引用的软引用 将在50秒后被JVM清除。单位为秒。 |
-ea | ea 开启断言 -da 禁止断言 |
-Djava.net.preferIPv4Stack=true | 如果在使用ipv4的机器上运行启用了ipv6的系统,那么此参数设为true才能获取机器的完整机器名 |
-XX:+HeapDumpOnOutOfMemoryError | 当堆内存空间溢出时输出堆的内存快照 |