IDEA修改idea64.exe.vmoptions文件以及解決coding卡頓問題
IDEA修改idea64.exe.vmoptions文件及解決coding卡頓
用idea軟件同時打開多個項目時,過個幾天不關(guān)閉,就慢慢陷入卡頓的漩渦。
于是網(wǎng)上各種搜索解決方案,目前親測有效的一個方案就是修改idea64.exe.vmoptions文件中的配置值。
介紹
idea64.exe.vmoptions是IntelljJ IDEA的可執(zhí)行文件的VM(虛擬機(jī))配置文件,我們可以理解為應(yīng)用程序的虛擬機(jī)配置參數(shù)。
還有一個idea.exe.vmoptions是針對32位IDEA使用的。一般存放在JetBrains\IntelliJ IDEA 2018.1.2\bin路徑中。
該文件有別于我們開發(fā)的Java項目的VM參數(shù),Java項目一般是配置在啟動腳本或者直接指定JVM運(yùn)行參數(shù),該文件對于使用IDEA開發(fā)的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
| 參數(shù) | 說明 |
|---|---|
| -Xms128m | 指定虛擬機(jī)堆內(nèi)存初始值大小,最小Java Heap值,默認(rèn)物理內(nèi)存的1/64,一般設(shè)置為相同值較好,避免頻繁對堆內(nèi)存進(jìn)行擴(kuò)容和GC帶來的系統(tǒng)開銷 |
| -Xmx750m | 指定虛擬機(jī)堆內(nèi)存最大值大小,最大Java Heap值,默認(rèn)物理內(nèi)存的1/4 |
| -XX:ReservedCodeCacheSize=512m | 預(yù)留保存代碼緩存的內(nèi)存空間大小 |
| -XX:+UseConcMarkSweepGC | 老年代使用CMS垃圾回收策略,并發(fā)、標(biāo)記、清理重置 |
| -XX:SoftRefLRUPolicyMSPerMB=50 | 每兆堆空間中最近最少使用的軟引用存活時間為50秒,LRU(Least Recently Used)最近最少使用 |
| -ea | eq開啟斷言,-da表示禁止斷言 |
| -Dsun.io.useCanonCaches=false | 使用標(biāo)準(zhǔn)緩存 |
| -Djava.net.preferIPv4Stack=true | 使用IPV4協(xié)議 |
| -XX:+HeapDumpOnOutOfMemoryError | 當(dāng)堆內(nèi)存溢出時,啟用堆Dump快照 |
| -XX:-OmitStackTraceInFastThrow | 忽略異常棧信息,迅速拋出 |
關(guān)于IDEA的idea64.exe.vmoptions文件使用的誤區(qū)
我電腦中安裝的是IDEA 2017.2.5 64位版本的,在IDEA安裝目錄下的bin目錄下有一個idea64.exe.vmoptions文件。
如下圖:

該文件的內(nèi)容如下:

我以為修改該文件中的-Xms和-Xmx參數(shù)可以改變程序運(yùn)行時的堆內(nèi)存大小。但是無論怎么修改都生效不了。
做過如下嘗試
點擊功能欄中Help->Edit Custom VM Options,是的在用戶目錄中產(chǎn)生一份idea64.exe.vmoptions,修改該文件的內(nèi)容——失敗。
在運(yùn)行配置中新增環(huán)境變量:IDEA64_VM_OPTIONS=C:\Users\Administrator.IntelliJIdea2017.2\config\idea64.exe.vmoptions(如下圖),指定idea64.exe.vmoptions文件的位置——失敗

新增系統(tǒng)變量:IDEA64_VM_OPTIONS=C:\Users\Administrator.IntelliJIdea2017.2\config\idea64.exe.vmoptions(如下圖),指定idea64.exe.vmoptions文件的位置——失敗

通過以上三種方式都無濟(jì)于事,查看程序運(yùn)行時堆內(nèi)存情況并沒有改變

查閱相關(guān)資料才知道,idea64.exe.vmoptions針對的是idea環(huán)境,對通過Idea運(yùn)行的java項目不起作用。
idea本身就是一個 Java 應(yīng)用,所以也必須運(yùn)行于 JVM 之上。
此處的 idea64.exe.vmoptions 文件就是用來配置64位的 idea 所使用的 JVM 參數(shù)。
是idea運(yùn)行時用的配置,并不是項目運(yùn)行的配置。
可以通過下面方式驗證:

默認(rèn)-Xmx750m

修改為-Xmx950m

idea64.exe.vmoptions確實生效了。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
為什么Spring官方推薦的@Transational還能導(dǎo)致生產(chǎn)事故
在Spring中進(jìn)行事務(wù)管理非常簡單,只需要在方法上加上注解@Transactional,那么為什么Spring官方推薦的@Transational還能導(dǎo)致生產(chǎn)事故,本文就詳細(xì)的介紹一下2021-11-11
使用springboot跳轉(zhuǎn)到指定頁面和(重定向,請求轉(zhuǎn)發(fā)的實例)
這篇文章主要介紹了使用springboot跳轉(zhuǎn)到指定頁面和(重定向,請求轉(zhuǎn)發(fā)的實例),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
淺談Java當(dāng)作數(shù)組的幾個應(yīng)用場景
數(shù)組可以存放多個同一類型的數(shù)據(jù),可以存儲基本數(shù)據(jù)類型,引用數(shù)據(jù)類型(對象),下面這篇文章主要給大家介紹了關(guān)于Java當(dāng)作數(shù)組的幾個應(yīng)用場景,需要的朋友可以參考下2022-11-11
java中BigDecimal的介紹及使用教程BigDecimal格式化及BigDecimal常見問題
BigDecimal是Java在java.math包中提供的線程安全的API類,用來對超過16位有效位的數(shù)進(jìn)行精確的運(yùn)算,這篇文章主要介紹了java中BigDecimal的介紹及使用,BigDecimal格式化,BigDecimal常見問題,需要的朋友可以參考下2023-08-08

