<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
相信做 Java 開發的同學,對 IDEA 這個工具應該都不陌生,即使不使用 IDEA 做開發,那麼對 Eclipse 這個工具應該也不會陌生,如果這兩個都不用的同學,我就想弱弱問一句,您不會是在使用記事本吧?
上面除了那個記事本,我相信所有的同學都對 IDEA 或者說 Eclipse 這兩個工具的開啟速度深有印象吧。
只要你沒自己改過啟動引數,不管電腦多高的設定,我相信這個開啟速度應該都快不到哪去。
前面寫了這麼多篇的 JVM 相關內容,今天我嘗試優化一下 IDEA 的啟動速度(手頭沒有 Eclipse ),這算是小試牛刀,希望最後不要翻車。
我使用的是 JDK 自帶的 VisualVM 視覺化工具,主要使用的是它的那個 GC 外掛。
首先第一次開啟 IDEA ,載入時長按照 IDEA 所有元件載入完成進行人工卡點(本來想找個外掛的,結果 IDEA 這方面的外掛還真沒找到)。
IDEA 在開啟的過程中,右下角會有一個進度條在一直讀條,我就大約等那個條讀完了進行計時。
後續操作的過程中發現其實完全沒必要,因為差距簡直太明顯了。
首先在預設設定的情況下第一次開啟 IDEA ,然後看下 VisualVM 的資料圖:
GC 情況:
概覽情況:
我直接被這個 Class Loader 載入速度驚呆了,活活消耗了 3m 34s 的時間,由於其他操作都是並行的,這一項的耗時直接撐破天了。
不過同時可以看到 GC 的消耗,好像並不是很大, Minor GC 發生了 147 次,但是 Full GC 一次都沒有發生過,共計耗時 712ms 。
但是看到下面的概覽圖還是能發現一些端倪的,就比如當前堆大小在一直不停的擴容。
先找到 IDEA 的組態檔,看下預設設定,我原生的路徑是 D:Program FilesJetBrainsappsIDEA-Uch-0
,這個路徑每個人都不一樣,大家自己找自己的,找到以後開啟 idea64.exe.vmoptions
這個檔案:
-Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Djdk.attach.allowAttachSelf=true -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true
可以看到最小堆是設定 128MB ,而最大堆是 750MB ,使用的是 CMS 收集器,我使用的電腦硬體記憶體是 16GB ,這麼大的記憶體空間,果斷直接把最小堆改成 1G ,最大堆改成 2G ,關掉 IDEA 再重啟看下效果。
修改後的設定如下:
-Xms1g -Xmx2g -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50
GC 情況:
概覽情況:
可以看到,Class Loader 時長瞬間就下來了,從 3m 變成了 24s ,並且 Minor GC 的時長整整縮短了一半,從 712ms 下降到了 342ms ,次數也由之前的 147 次下降到了現在的 9 次,依然沒有 Full GC 產生(廢話,記憶體開了這麼大又填不滿)。
並且看概覽圖的時候可以看到,堆記憶體擴容只擴容了一次。
那麼還能不能再短點呢?看下整個圖,感覺 ClassLoader 還有空間嘛,我們還可以把載入時的驗證給關掉,使用 -Xverify:none
,這樣應該還能再降低一些載入的耗時。
修改後的設定如下:
-Xms1g -Xmx2g -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -Xverify:none
GC 情況:
概覽情況:
果然,載入時長從之前的 24s 繼續下降到了 19s ,差不多減少了有 1/4 左右,還是卓有成效的。
接著我想如果直接把最小堆也設定成 2G ,那麼堆大小就無需擴容,會不會有更加正向的影響?
修改後的設定如下:
-Xms2g -Xmx2g -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -Xverify:none
GC 情況:
概覽情況:
實際上並沒有什麼太大成效。
從概覽中可以看到,我當前版本的 IDEA 使用的是自帶的 JDK11 :
JDK11 中是有 G1 收集器的,我要麼開啟 G1 試一下:
-Xms1g -Xmx2g -XX:ReservedCodeCacheSize=240m -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=50 -Xverify:none
GC 情況:
概覽情況:
看起來好像 Minor GC 的耗時還略有上漲,並且 GC 的次數從 9 次變成了 19 次。
不過看到概覽圖發現了一個更神奇的事情,當使用 G1 的時候,整個使用堆大小竟然沒有突破 1G ,看來電腦記憶體不夠大的同學更加推薦使用 G1 回收器,雖然 GC 的耗時稍有增加,不過能減少記憶體的使用,而 G1 的 GC 機制又是大量並行的,這點根本無傷大雅。
最後我放一下我修改後的整體的設定:
-Dide.no.platform.update=true -Dtoolbox.notification.token=ZATtXMyB3ZsNhTvmYivkW7tYp5ZT4GlqKFIx3Bp4_Ik= -Dtoolbox.notification.portFile=D:IDEAappsIDEA-Uch-0222.3345.118.vmoptions.port -Didea.plugins.path=D:\IDEA\apps\IDEA-U\ch-0\222.3345.118.plugins # 上面部分為最新版本IDEA 預設設定,保留即可,新增下面這些設定即可 -Xms6g -Xmx8g -XX:ReservedCodeCacheSize=2048m -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=50 -Xverify:none -ea -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true -Dide.no.platform.update=true -Djdk.attach.allowAttachSelf=true -Dfile.encoding=UTF-8
當然,如果不用 IDEA 的同學,只要是用 Jetbrain 全家桶套件,例如寫 Python 最常用的 Pycharm ,同樣也可以按照本文的方式進行設定,我自己又給 Pycharm 修改了一下設定,啟動速度絕對大幅提升,肉眼可見的那種。
到此這篇關於最新IDEA 2022基於JVM極致優化 IDEA啟動速度的文章就介紹到這了,更多相關idea200優化 IDEA啟動速度內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45