最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

最新IDEA?2022基于JVM極致優(yōu)化?IDEA啟動(dòng)速度的方法

 更新時(shí)間:2022年08月05日 14:37:28   作者:Resourceful!  
這篇文章主要介紹了IDEA?2022最新版?基于?JVM極致優(yōu)化?IDEA?啟動(dòng)速度,需要的朋友可以參考下

IDEA 2022最新版基于 JVM極致優(yōu)化 IDEA 啟動(dòng)速度

1. 引言

相信做 Java 開發(fā)的同學(xué),對(duì) IDEA 這個(gè)工具應(yīng)該都不陌生,即使不使用 IDEA 做開發(fā),那么對(duì) Eclipse 這個(gè)工具應(yīng)該也不會(huì)陌生,如果這兩個(gè)都不用的同學(xué),我就想弱弱問一句,您不會(huì)是在使用記事本吧?

上面除了那個(gè)記事本,我相信所有的同學(xué)都對(duì) IDEA 或者說 Eclipse 這兩個(gè)工具的打開速度深有印象吧。

只要你沒自己改過啟動(dòng)參數(shù),不管電腦多高的配置,我相信這個(gè)打開速度應(yīng)該都快不到哪去。

前面寫了這么多篇的 JVM 相關(guān)內(nèi)容,今天我嘗試優(yōu)化一下 IDEA 的啟動(dòng)速度(手頭沒有 Eclipse ),這算是小試牛刀,希望最后不要翻車。

2. 開始

我使用的是 JDK 自帶的 VisualVM 可視化工具,主要使用的是它的那個(gè) GC 插件。

首先第一次打開 IDEA ,加載時(shí)長按照 IDEA 所有組件加載完成進(jìn)行人工卡點(diǎn)(本來想找個(gè)插件的,結(jié)果 IDEA 這方面的插件還真沒找到)。

IDEA 在打開的過程中,右下角會(huì)有一個(gè)進(jìn)度條在一直讀條,我就大約等那個(gè)條讀完了進(jìn)行計(jì)時(shí)。

后續(xù)操作的過程中發(fā)現(xiàn)其實(shí)完全沒必要,因?yàn)椴罹嗪喼碧黠@了。

首先在默認(rèn)配置的情況下第一次打開 IDEA ,然后看下 VisualVM 的數(shù)據(jù)圖:

GC 情況:

概覽情況:

我直接被這個(gè) Class Loader 加載速度驚呆了,活活消耗了 3m 34s 的時(shí)間,由于其他操作都是并行的,這一項(xiàng)的耗時(shí)直接撐破天了。

不過同時(shí)可以看到 GC 的消耗,好像并不是很大, Minor GC 發(fā)生了 147 次,但是 Full GC 一次都沒有發(fā)生過,共計(jì)耗時(shí) 712ms 。

但是看到下面的概覽圖還是能發(fā)現(xiàn)一些端倪的,就比如當(dāng)前堆大小在一直不停的擴(kuò)容。

先找到 IDEA 的配置文件,看下默認(rèn)配置,我本地的路徑是 D:\Program Files\JetBrains\apps\IDEA-U\ch-0 ,這個(gè)路徑每個(gè)人都不一樣,大家自己找自己的,找到以后打開 idea64.exe.vmoptions 這個(gè)文件:

-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

可以看到最小堆是設(shè)置 128MB ,而最大堆是 750MB ,使用的是 CMS 收集器,我使用的電腦硬件內(nèi)存是 16GB ,這么大的內(nèi)存空間,果斷直接把最小堆改成 1G ,最大堆改成 2G ,關(guān)掉 IDEA 再重啟看下效果。

修改后的配置如下:

-Xms1g
-Xmx2g
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50

GC 情況:

概覽情況:

可以看到,Class Loader 時(shí)長瞬間就下來了,從 3m 變成了 24s ,并且 Minor GC 的時(shí)長整整縮短了一半,從 712ms 下降到了 342ms ,次數(shù)也由之前的 147 次下降到了現(xiàn)在的 9 次,依然沒有 Full GC 產(chǎn)生(廢話,內(nèi)存開了這么大又填不滿)。

并且看概覽圖的時(shí)候可以看到,堆內(nèi)存擴(kuò)容只擴(kuò)容了一次。

那么還能不能再短點(diǎn)呢?看下整個(gè)圖,感覺 ClassLoader 還有空間嘛,我們還可以把加載時(shí)的驗(yàn)證給關(guān)掉,使用 -Xverify:none ,這樣應(yīng)該還能再降低一些加載的耗時(shí)。

修改后的配置如下:

-Xms1g
-Xmx2g
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-Xverify:none

GC 情況:

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-TbJhzwT7-1659670388731)(https://c1.lmlphp.com/user/master/2020/10/15/b70f015221dc66e421548ed45ae44ce0.jpg)]

概覽情況:

果然,加載時(shí)長從之前的 24s 繼續(xù)下降到了 19s ,差不多減少了有 1/4 左右,還是卓有成效的。

接著我想如果直接把最小堆也設(shè)置成 2G ,那么堆大小就無需擴(kuò)容,會(huì)不會(huì)有更加正向的影響?

修改后的配置如下:

-Xms2g
-Xmx2g
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-Xverify:none

GC 情況:

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-1o44sy8W-1659670388732)(https://c1.lmlphp.com/user/master/2020/10/15/d9d2d0aa8157c552c568e077c769c88f.jpg)]

概覽情況:

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-flkIWGKA-1659670388733)(https://c1.lmlphp.com/user/master/2020/10/15/0726bcc652721803625ce34f90346e4a.jpg)]

實(shí)際上并沒有什么太大成效。

從概覽中可以看到,我當(dāng)前版本的 IDEA 使用的是自帶的 JDK11 :

JDK11 中是有 G1 收集器的,我要么開啟 G1 試一下:

-Xms1g
-Xmx2g
-XX:ReservedCodeCacheSize=240m
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-Xverify:none

GC 情況:

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Mpjef1SR-1659670388733)(https://c1.lmlphp.com/user/master/2020/10/15/45124de759ef88e3050d9456c82abc14.jpg)]

概覽情況:

看起來好像 Minor GC 的耗時(shí)還略有上漲,并且 GC 的次數(shù)從 9 次變成了 19 次。

不過看到概覽圖發(fā)現(xiàn)了一個(gè)更神奇的事情,當(dāng)使用 G1 的時(shí)候,整個(gè)使用堆大小竟然沒有突破 1G ,看來電腦內(nèi)存不夠大的同學(xué)更加推薦使用 G1 回收器,雖然 GC 的耗時(shí)稍有增加,不過能減少內(nèi)存的使用,而 G1 的 GC 機(jī)制又是大量并行的,這點(diǎn)根本無傷大雅。

最后我放一下我修改后的整體的配置:

 -Dide.no.platform.update=true
-Dtoolbox.notification.token=ZATtXMyB3ZsNhTvmYivkW7tYp5ZT4GlqKFIx3Bp4_Ik=
-Dtoolbox.notification.portFile=D:\IDEA\apps\IDEA-U\ch-0\222.3345.118.vmoptions.port
-Didea.plugins.path=D:\\IDEA\\apps\\IDEA-U\\ch-0\\222.3345.118.plugins

# 上面部分為最新版本IDEA 默認(rèn)配置,保留即可,新增下面這些配置即可
-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

當(dāng)然,如果不用 IDEA 的同學(xué),只要是用 Jetbrain 全家桶套件,例如寫 Python 最常用的 Pycharm ,同樣也可以按照本文的方式進(jìn)行配置,我自己又給 Pycharm 修改了一下配置,啟動(dòng)速度絕對(duì)大幅提升,肉眼可見的那種。

結(jié)語

到此這篇關(guān)于最新IDEA 2022基于JVM極致優(yōu)化 IDEA啟動(dòng)速度的文章就介紹到這了,更多相關(guān)idea200優(yōu)化 IDEA啟動(dòng)速度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java公眾平臺(tái)通用接口工具類HttpConnectUtil實(shí)例代碼

    java公眾平臺(tái)通用接口工具類HttpConnectUtil實(shí)例代碼

    下面小編就為大家分享一篇java公眾平臺(tái)通用接口工具類HttpConnectUtil實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Java基礎(chǔ)入門篇之邏輯控制練習(xí)題與猜數(shù)字游戲

    Java基礎(chǔ)入門篇之邏輯控制練習(xí)題與猜數(shù)字游戲

    猜數(shù)字游戲是一款經(jīng)典的游戲,該游戲說簡單也很簡單,說不簡單確實(shí)也很難,這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)入門篇之邏輯控制練習(xí)題與猜數(shù)字游戲的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Java基于面向?qū)ο髮?shí)現(xiàn)一個(gè)戰(zhàn)士小游戲

    Java基于面向?qū)ο髮?shí)現(xiàn)一個(gè)戰(zhàn)士小游戲

    這篇文章主要為大家詳細(xì)介紹了Java如何基于面向?qū)ο髮?shí)現(xiàn)一個(gè)戰(zhàn)士小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-07-07
  • Java后端實(shí)現(xiàn)生成驗(yàn)證碼圖片的示例代碼

    Java后端實(shí)現(xiàn)生成驗(yàn)證碼圖片的示例代碼

    驗(yàn)證碼是一種用于驗(yàn)證用戶身份或確保用戶操作安全的技術(shù)手段,通常以圖形、聲音或文字的形式出現(xiàn),本文主要介紹了如何通過java實(shí)現(xiàn)生成驗(yàn)證碼圖片,需要的可以參考下
    2023-12-12
  • Installij IDEA install或clean項(xiàng)目的使用

    Installij IDEA install或clean項(xiàng)目的使用

    這篇文章主要介紹了Installij IDEA install或clean項(xiàng)目的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Spring事務(wù)失效的原因及解決方案

    Spring事務(wù)失效的原因及解決方案

    本文主要介紹了Spring事務(wù)失效的原因及解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • IntelliJ IDEA2019 安裝lombok的實(shí)現(xiàn)

    IntelliJ IDEA2019 安裝lombok的實(shí)現(xiàn)

    這篇文章主要介紹了IntelliJ IDEA2019 安裝lombok的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 如何解決java中遇到的for input string:

    如何解決java中遇到的for input string: "" 報(bào)錯(cuò)問題

    在本篇文章里小編給大家整理的是一篇關(guān)于如何解決java中遇到的(for input string: "")報(bào)錯(cuò)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • 在JAVA?Web項(xiàng)目中動(dòng)態(tài)加載DLL/SO文件的方法

    在JAVA?Web項(xiàng)目中動(dòng)態(tài)加載DLL/SO文件的方法

    在JAVA?Web項(xiàng)目中,我們經(jīng)常需要調(diào)用一些第三方庫或者實(shí)現(xiàn)一些JAVA本身不支持的功能,這時(shí),我們可能會(huì)考慮使用JNI來調(diào)用DLL或SO文件,然而,因此,本文將介紹如何在JAVA?Web項(xiàng)目中動(dòng)態(tài)加載DLL/SO文件,需要的朋友可以參考下
    2024-12-12
  • mybatis?一對(duì)多映射?column屬性的注意事項(xiàng)說明

    mybatis?一對(duì)多映射?column屬性的注意事項(xiàng)說明

    這篇文章主要介紹了mybatis?一對(duì)多映射?column屬性的注意事項(xiàng)說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
    2022-01-01

最新評(píng)論

从江县| 静安区| 吕梁市| 江孜县| 武邑县| 永泰县| 灌南县| 利津县| 岱山县| 靖安县| 凭祥市| 琼海市| 汶川县| 安阳市| 新乡县| 安乡县| 资兴市| 咸宁市| 原阳县| 沛县| 湘西| 山东| 宾川县| 竹溪县| 绥滨县| 独山县| 上杭县| 策勒县| 上饶县| 剑阁县| 凉城县| 枝江市| 大石桥市| 西城区| 慈利县| 阜康市| 尤溪县| 凭祥市| 富宁县| 昌黎县| 灯塔市|