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:\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…問題解析處理》

后續補充…
————————————————
版權聲明:本文為CSDN博主「啊荻~」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_16268979/article/details/118635094


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM