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

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

我以為修改該文件中的-Xms和-Xmx參數(shù)可以改變程序運(yùn)行時(shí)的堆內(nèi)存大小。但是無(wú)論怎么修改都生效不了。
做過(guò)如下嘗試
點(diǎn)擊功能欄中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文件的位置——失敗

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

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

默認(rèn)-Xmx750m

修改為-Xmx950m

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

