zoukankan      html  css  js  c++  java
  • idea64.exe.vmoptions文件详解

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

    一、文件简介
    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 禁止断言
    -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:UsersAdministratorAppDataRoamingJetBrainsIntelliJIdea2020.3idea64.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:CProgram FilesJetBrainsIntelliJ IDEA 2020.3jbr”错误。
    (2)在运行配置中新增环境变量(Environment variables):IDEA64_VM_OPTIONS=C:UsersAdministratorAppDataRoamingJetBrainsIntelliJIdea2020.3idea64.exe.vmoptions,指定idea64.exe.vmoptions文件的位置。
    ——失败
    (3)新增系统变量:IDEA64_VM_OPTIONS=C:UsersAdministratorAppDataRoamingJetBrainsIntelliJIdea2020.3idea64.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…问题解析处理》

    后续补充…
    ————————————————
    版权声明:本文为CSDN博主「啊荻~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_16268979/article/details/118635094

  • 相关阅读:
    springmvcIntercept(拦截器)
    springmvc多文件上传
    websphere8 从安装到部署 测试集群应用程序 安装j2ee程序(非常详细)
    WebSphere集群环境修改IHS端口号的方法
    WAS缓存问题
    websphere部署中文乱码问题
    WAS8.5安装和部署
    MQ7.5以后的权限问题解决
    IBM websphere MQ远程队列的简单配置
    MQ--API总结
  • 原文地址:https://www.cnblogs.com/chang09/p/15502713.html
Copyright © 2011-2022 走看看