精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑

開發(fā) 前端
在前面整理了一篇關(guān)于JVM故障診斷和處理工具,考慮到大部分的Java程序員都使用的時(shí)IntelliJ Idea,本篇就使用工具來實(shí)戰(zhàn)演練對(duì)IntelliJ Idea運(yùn)行速度調(diào)優(yōu)

 前言

在前面整理了一篇關(guān)于JVM故障診斷和處理工具,考慮到大部分的Java程序員都使用的時(shí)IntelliJ Idea,本篇就使用工具來實(shí)戰(zhàn)演練對(duì)IntelliJ Idea運(yùn)行速度調(diào)優(yōu)

調(diào)優(yōu)前的運(yùn)行狀態(tài)

原始配置內(nèi)容

要查詢idea原始配置文件的路徑可以在VisualVM中的概述中查看

JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑

原始配置內(nèi)容:

  1. -XX:ReservedCodeCacheSize=240m 
  2. -XX:+UseCompressedOops 
  3. -Dfile.encoding=UTF-8 
  4. -XX:SoftRefLRUPolicyMSPerMB=50 
  5. -ea 
  6. -Dsun.io.useCanonCaches=false 
  7. -Djava.net.preferIPv4Stack=true 
  8. -Djdk.http.auth.tunneling.disabledSchemes="" 
  9. -XX:+HeapDumpOnOutOfMemoryError 
  10. -XX:-OmitStackTraceInFastThrow 
  11.  
  12. -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log 
  13. -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof 
  14.  
  15. -Xmx512m 

打印啟動(dòng)時(shí)間插件開發(fā)

需要直觀地看到優(yōu)化前和優(yōu)化后啟動(dòng)時(shí)間的變化,所以需要簡(jiǎn)單做一個(gè)Idea的插件開發(fā),關(guān)于Idea插件開發(fā)的流程建議參考我以前的文章《IDEA插件:多線程文件下載插件開發(fā) 》

JVM的啟動(dòng)時(shí)間到所有組件初始化完成后的時(shí)間就看做是IDEA的啟動(dòng)時(shí)間,代碼如下

  1. public class MyApplicationInitializedListener implements ApplicationInitializedListener { 
  2.     @Override 
  3.     public void componentsInitialized() { 
  4.         RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean(); 
  5.         long startTime = bean.getStartTime(); 
  6.         long costTime = System.currentTimeMillis() - startTime; 
  7.  
  8.         Messages.showMessageDialog("毫秒:" + costTime, "啟動(dòng)耗時(shí)", Messages.getInformationIcon()); 
  9.     } 

plugin.xml中添加如下代碼:

  1. <extensions defaultExtensionNs="com.intellij"
  2.     <applicationInitializedListener id="MyApplicationInitializedListener" 
  3.                                     implementation="cn.silently9527.MyApplicationInitializedListener"/> 
  4. </extensions> 

優(yōu)化前的啟動(dòng)信息與時(shí)間消耗

JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑
JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑

根據(jù)VisualGC和IDEA啟動(dòng)插件收集到的信息:

  • IDEA啟動(dòng)耗時(shí) 15s
  • 總共垃圾收集22次,耗時(shí)1.2s,其中新生代GC 17次,耗時(shí)324ms; 老年代GC 5次,耗時(shí)953ms
  • 加載類27526個(gè),耗時(shí) 21s

按照這個(gè)數(shù)據(jù)來看也算是正常,15s 其實(shí)也在接受范圍內(nèi),由于本文主要演示性能調(diào)優(yōu),所以需要測(cè)試能否再快一些

開始嘗試優(yōu)化

調(diào)整內(nèi)存來控制垃圾回收頻率

圖上我們可以看出,啟動(dòng)參數(shù)指定的512m的內(nèi)存被分配到新生代的只有169m,由于IDEA是我們開發(fā)常用的工具,平時(shí)的編譯過程也需要足夠的內(nèi)存,所以我們需要先把總的內(nèi)存擴(kuò)大,這里我設(shè)置最大的內(nèi)存-Xmx1024m,為了讓JVM在GC期間不需要再浪費(fèi)時(shí)間再動(dòng)態(tài)計(jì)算擴(kuò)容大小,同時(shí)也設(shè)置了-Xms1024m;

在啟動(dòng)的過程中Eden共發(fā)生了17次GC,為了減少新生代gc次數(shù),我把新生代的內(nèi)存大小設(shè)置成-Xmn256m;

重新啟動(dòng)之后查看VisualGC,新生代gc次數(shù)從 17次 降低到了 7次,耗時(shí)從 324ms 降低到了 152ms。

JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑

在調(diào)整內(nèi)存前發(fā)生了5次Full GC,調(diào)整內(nèi)存后的依然還是有4次Full GC,但是從兩張圖我們可以看出,老年代的空間還有很多剩余,是不應(yīng)該發(fā)生Full GC的;考慮是否是代碼中有地方手動(dòng)調(diào)用System.gc()觸發(fā)了Full GC,所以添加了參數(shù)-XX:+DisableExplicitGC,再次重新啟動(dòng)IDEA,結(jié)果很失望,依然還有4次Full GC;

再次仔細(xì)觀察優(yōu)化前的圖,注意看 Last Cause: Metadata GC Threshold , 最后一次gc是應(yīng)該Metaspace區(qū)域內(nèi)存不夠發(fā)生的GC,為了驗(yàn)證我們的猜想,打印出GC日志來看看。在idea.vmoptions中添加打印日志相關(guān)的參數(shù):

  1. -XX:+PrintGCDetails 
  2. -XX:+PrintGCDateStamps 
  3. -Xloggc:../gc.log 

JVM的GC日志的主要參數(shù)包括如下幾個(gè):

-XX:+PrintGC 輸出GC日志

-XX:+PrintGCDetails 輸出GC的詳細(xì)日志

-XX:+PrintGCTimeStamps 輸出GC的時(shí)間戳(以基準(zhǔn)時(shí)間的形式)

-XX:+PrintGCDateStamps 輸出GC的時(shí)間戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)

-XX:+PrintHeapAtGC 在進(jìn)行GC的前后打印出堆的信息

-Xloggc:../logs/gc.log 日志文件的輸出路徑

重新啟動(dòng)idea,查看gc.log

JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑

其中PSYoungGen:表示新生代使用的ParallelScavenge垃圾收集器,31416K->0K(181248K)表示 gc前已使用的內(nèi)存大小 -> gc后已使用內(nèi)存大小(該區(qū)域的總內(nèi)存大小)

從日志中我們看出每次Full GC都是因?yàn)镸etadata GC Threshold,而Metaspace每次gc回收的內(nèi)存幾乎沒有,僅僅是擴(kuò)大了該區(qū)域的容量;找到了原因那就好辦了,添加如下的參數(shù)調(diào)整Metaspace的大小:

  1. -XX:MetaspaceSize=256m 

再次重啟Idea之后,發(fā)現(xiàn)Full GC沒有了,心情很爽

JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑

測(cè)試打開大項(xiàng)目點(diǎn)擊編譯代碼,發(fā)現(xiàn)自己的idea卡死了,查看VisualGC之后發(fā)現(xiàn)堆內(nèi)存都還有空閑,只有Metaspace被全部占滿了,所以是自己給的最大空間設(shè)置太小,所以直接去掉了-XX:MaxMetaspaceSize=256m

選擇垃圾收集器

從剛才的gc日志中,我們可以發(fā)現(xiàn)默認(rèn)使用的是ParallelScavenge + Parallel Old垃圾收集器,這個(gè)組合注重的是吞吐量,這里我們嘗試換一個(gè)注重低延時(shí)的垃圾收集器試一試

  • ParNew + CMS 在idea.vmoptions中添加如下配置:
  1. -XX:+UseConcMarkSweepGC 
  2. -XX:+UseParNewGC 

重啟IDEA之后查看VisualGC

JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑

很尷尬,同樣發(fā)生了6次gc,ParallelScavenge + Parallel Old的組合耗時(shí)197ms,而ParNew + CMS的組合耗時(shí)379ms;雖然是這個(gè)結(jié)果,但是我們需要考慮當(dāng)前只發(fā)生了MinorGC,如果發(fā)生FullGC了結(jié)果又會(huì)如何了,大家可以自己測(cè)試一下

  • G1 我們?cè)贀Q一個(gè)最新的G1垃圾回收器試試,在idea.vmoptions中添加如下配置:
  1. -XX:+UseG1GC 
JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑

這個(gè)結(jié)果好像也還是要慢一點(diǎn)點(diǎn),自己多次測(cè)試過這兩個(gè)垃圾回收器,雖然每次結(jié)果都不一樣,相差不遠(yuǎn),所以垃圾回收器可以自己選擇,這里我們選擇的是G1

類加載時(shí)間優(yōu)化

根據(jù)之前的分析,idea啟動(dòng)加載類27526個(gè),耗時(shí) 21s,這個(gè)我們有辦法能優(yōu)化一下嗎?因?yàn)閕dea是常用的開發(fā)工具,經(jīng)常很多人的使用,我們可以認(rèn)為它的代碼是安全的,是否符合當(dāng)前虛擬機(jī)的要求,不會(huì)危害虛擬機(jī)的安全,所以我們使用參數(shù)-Xverify:none來禁用字節(jié)碼的驗(yàn)證過程

重啟IDEA

JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑

耗時(shí)下降到了11s,效果還是比較明顯的

總結(jié)

做完了所有優(yōu)化之后,經(jīng)過多次重啟測(cè)試,平均的啟動(dòng)時(shí)間下降到了11s,為了安慰我本次操作沒有白辛苦,搞一張11s以下的圖

JVM性能調(diào)優(yōu)實(shí)戰(zhàn):讓你的IntelliJ Idea縱享絲滑

 

責(zé)任編輯:張燕妮 來源: 今日頭條
相關(guān)推薦

2024-03-26 10:30:37

Mybatis擴(kuò)展庫API

2024-12-04 15:49:29

2022-03-18 13:59:46

緩存RedisCaffeine

2022-12-20 09:09:27

ViteWebpack

2017-07-21 08:55:13

TomcatJVM容器

2020-11-09 07:34:49

JVM性能監(jiān)控

2023-06-26 08:01:42

debugger技巧代碼

2023-09-07 07:35:59

JS操作網(wǎng)頁

2023-11-30 18:03:55

IDEA工具

2009-09-04 17:57:15

Glassfish性能Java EE

2019-02-19 10:25:28

JVM性能工具

2023-04-24 14:54:09

JVM性能調(diào)優(yōu)

2021-11-17 08:16:03

內(nèi)存控制Go

2012-01-10 14:35:08

JavaJVM

2022-08-28 10:08:53

前端代碼前端

2023-03-15 15:54:36

Java代碼

2021-12-06 11:03:57

JVM性能調(diào)優(yōu)

2019-11-01 08:49:07

JVM監(jiān)控性能

2023-09-27 07:49:23

2022-09-14 22:58:58

Push 推薦Java 開發(fā)vivo
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

久久久久久久爱| 日韩一区国产二区欧美三区| 欧美一区二区视频在线| 波多野结衣视频在线观看| 99视频精品全国免费| 日韩三级视频在线观看| 欧美性大战久久久久xxx| av每日在线更新| 国产91精品免费| 51精品在线观看| 国产色无码精品视频国产| 凹凸av导航大全精品| 日本丶国产丶欧美色综合| 天天操天天干天天玩| 头脑特工队2在线播放| 久久国产精品区| 性色av一区二区三区在线观看| 成人在线手机视频| 欧美一级全黄| 欧美一级黄色录像| 免费裸体美女网站| 丰满诱人av在线播放| 国产精品视频一二三区| 精品麻豆av| 不卡的日韩av| 精品写真视频在线观看| 亲子乱一区二区三区电影 | 色噜噜国产精品视频一区二区| 性一交一黄一片| 国精品产品一区| 狠狠躁夜夜躁人人爽天天天天97| 天天干天天色天天爽| 成人网视频在线观看| 成人91在线观看| 3d蒂法精品啪啪一区二区免费| 青青艹在线观看| 国产精品尤物| 久久久久久综合网天天| 免费成年人视频在线观看| 精品午夜久久| 亚洲欧美999| v天堂中文在线| 亚洲开心激情| 日韩一级黄色大片| 在线免费黄色小视频| 日韩一级视频| 欧美群妇大交群的观看方式| wwwxxx黄色片| 国产高清不卡| 91久久一区二区| 欧美 日韩精品| 少妇淫片在线影院| 黑人巨大精品欧美一区免费视频 | 免费观看日韩av| 秋霞成人午夜鲁丝一区二区三区| 日韩成人一区二区三区| 激情婷婷久久| 国模精品系列视频| 麻豆久久久久久久久久| 一区二区91| 2018日韩中文字幕| 中文字幕精品三级久久久| 一区二区三区精品视频在线观看| 97超级碰碰碰| 国产性生活视频| 日韩黄色免费电影| 国产精品视频网址| 91丨九色丨丰满| 国产一区二区三区国产| 97se亚洲综合在线| 欧洲成人一区二区三区| 91美女精品福利| 欧美日韩国产精品一区二区| 黄色国产在线| 国产精品初高中害羞小美女文| 亚洲小说欧美另类激情| 调教一区二区| 欧美日韩在线视频首页| 久久久久久久久久久免费视频| 91福利精品在线观看| 在线成人av网站| 黄色av电影网站| 亚洲深夜福利在线观看| 曰本色欧美视频在线| 精品国产国产综合精品| 黄色另类av| 日韩av电影国产| 国产又粗又猛视频免费| 国产精品18久久久久久久久久久久| 国产精品免费一区二区三区| 青青草在线播放| 国产精品国产a| www.好吊操| 欧美精品高清| 日韩欧美一区二区不卡| 人妻少妇一区二区| 午夜精品视频一区二区三区在线看| 欧美精品久久一区二区| 亚洲中文字幕无码爆乳av| 国产一区二区三区四| 欧美极品日韩| gogogogo高清视频在线| 色哟哟国产精品| 日韩欧美中文在线视频| 九九在线精品| 久久99久久99精品中文字幕| 中文字幕一区二区人妻电影| 韩国精品一区二区| 欧美日韩一区二区三| 亚洲图区一区| 欧美丝袜丝nylons| 国产又黄又粗又猛又爽的视频| 日韩欧美电影| 69精品小视频| 精品国产乱码一区二区三| 国产亚洲精久久久久久| 成年人免费观看的视频| 美女18一级毛片一品久道久久综合| 欧美一区二区三级| 在线免费观看视频| 一道本一区二区| av色综合网| 国产在线激情视频| 日本高清不卡aⅴ免费网站| fc2成人免费视频| 羞羞答答成人影院www| 国产精品福利在线| 免费一级在线观看| 婷婷成人激情在线网| 日韩a一级欧美一级| 欧美一区2区| 欧美专区在线视频| 色欲久久久天天天综合网| 亚洲欧美日韩一区二区| 亚洲va在线va天堂va偷拍| 国产91精品对白在线播放| 97视频在线看| 人妻丰满熟妇av无码区hd| 一区二区激情视频| 男人午夜视频在线观看| 四虎国产精品免费观看| 国产精品嫩草影院一区二区 | 日韩中文字幕网址| 这里只有精品国产| 国产欧美一区二区精品仙草咪| 国产精品免费入口| 香蕉人人精品| 欧美一区二区视频97| 午夜视频福利在线| 亚洲第一久久影院| 亚洲欧美日韩偷拍| 中日韩视频在线观看| 精品一区二区三区国产| 欧美一级鲁丝片| 亚洲精品日韩久久久| 亚洲高清毛片一区二区| 国产午夜久久久久| 国产九九在线视频| 日韩精品第一区| 91精品国产综合久久久久久久久 | 五月国产精品| 欧洲亚洲免费在线| 国产黄在线播放| 欧美日韩卡一卡二| www青青草原| 成人黄页毛片网站| 精品人妻一区二区三区四区在线| 最新国产精品视频| 国产精品日韩专区| 中文字幕中文字幕在线十八区 | 波多野结衣福利| 久久久久久婷| 亚洲午夜精品久久久中文影院av| 日韩电影精品| 欧美激情第三页| 四虎精品在线| 欧美视频一区二区三区四区 | 国产欧美一区二区| 成a人片在线观看| 亚洲国产欧美久久| 黄色片视频免费| 日韩毛片一二三区| 一区二区三区四区影院| 久久精品麻豆| 亚洲第一综合网站| 1204国产成人精品视频| 欧美在线性视频| 精精国产xxxx视频在线| 亚洲国产精品久久91精品| 国产99久久久久久免费看| 中文字幕亚洲一区二区va在线| 岛国大片在线免费观看| 奶水喷射视频一区| 国产树林野战在线播放| 日韩高清三区| 亚洲一区二区久久久久久久| 色老头在线一区二区三区| 综合av色偷偷网| 黄色片网站免费在线观看| 欧美在线你懂的| 国产亚洲精品久久久久久打不开 | 欧美一区二区综合| 中文字幕日韩亚洲| 538国产精品视频一区二区| 国产盗摄在线观看| 亚洲美女喷白浆| 国产肥老妇视频| 色视频成人在线观看免| 久草国产在线视频| 中文字幕在线不卡视频| 免费看黄色aaaaaa 片| 国产在线不卡一区| 免费在线观看的毛片| 99在线热播精品免费99热| 中文字幕av导航| 国产99久久| 国产精品福利视频| 成年永久一区二区三区免费视频| 欧美一区二三区| 大黄网站在线观看| 欧美成人免费网| 日韩伦理在线观看| 亚洲色图综合网| av女名字大全列表| 亚洲成年人在线播放| 国产片高清在线观看| 欧美亚洲综合在线| 欧美一级淫片免费视频黄| 午夜精品福利一区二区三区蜜桃| 午夜少妇久久久久久久久| 亚洲欧美在线另类| 欧美a级片免费看| 国产欧美一区二区精品性| 亚洲午夜久久久久久久久红桃| 国产大陆精品国产| 日本77777| 老司机精品视频导航| 成年人在线观看视频免费| 久久国产欧美| 日本中文字幕片| 亚洲欧美网站| 国产亚洲精品网站| 日韩亚洲精品在线| 无码 制服 丝袜 国产 另类| 国产精品黄色| 日韩欧美精品免费| 亚洲成色精品| 欧美三级在线观看视频| 一区二区高清| 国产麻花豆剧传媒精品mv在线| 免费在线播放第一区高清av| 999香蕉视频| 久久资源在线| 日本人视频jizz页码69| 秋霞午夜av一区二区三区| 久久婷婷国产91天堂综合精品| 日韩国产高清影视| 男操女免费网站| 精品亚洲国内自在自线福利| 一二三av在线| 国产成人免费视频| 亚洲一区二区三区四区五区六区| www.性欧美| 受虐m奴xxx在线观看| 中文字幕高清一区| 卡通动漫亚洲综合| 亚洲图片欧美综合| 亚洲另类欧美日韩| 欧美在线制服丝袜| 国产精品视频第一页| 欧美va亚洲va在线观看蝴蝶网| 黄色av网址在线| 亚洲欧洲国产精品| 午夜在线视频播放| 欧美肥婆姓交大片| 色是在线视频| 国产一区深夜福利| 9l视频自拍蝌蚪9l视频成人| 欧美成人综合一区| 日韩国产欧美一区二区| www.欧美黄色| 久久久夜精品| 成人av毛片在线观看| 成人精品一区二区三区四区| 精品人妻无码一区二区三区| 国产精品久久二区二区| 国产亚洲精品av| 欧美性猛交一区二区三区精品| 国产免费一区二区三区免费视频| 亚洲精品99999| 99视频在线观看地址| 久久久久久网站| 性欧美freehd18| 国产精品区一区二区三在线播放 | 99久久99久久免费精品蜜臀| 欧美xxxx精品| 午夜亚洲国产au精品一区二区 | 亚洲成人av片在线观看| 国产在线观看免费| 欧美丰满片xxx777| 91超碰碰碰碰久久久久久综合| 国产精品日韩一区二区免费视频| 欧美色女视频| 玩弄中年熟妇正在播放| 久久99国产精品免费网站| 在线观看国产三级| 亚洲精选免费视频| 久草热在线观看| 亚洲国产精彩中文乱码av| 巨大荫蒂视频欧美大片| 人人爽久久涩噜噜噜网站| 青草伊人久久| 一区二区视频在线免费| 久久综合亚州| 波多野结衣有码| 亚洲精品成人少妇| 在线视频免费观看一区| 精品亚洲一区二区三区四区五区| 国产精品实拍| 国产精品一区二区三区成人| 色天天色综合| 人人干视频在线| 国产乱人伦偷精品视频不卡| 国产欧美一区二区三区在线观看视频| 亚洲成年人网站在线观看| 国产黄色小视频在线观看| 在线播放精品一区二区三区| 伊人网在线播放| 国外成人在线视频网站| 欧美69视频| 亚洲精品乱码久久久久久动漫| 久久精品视频免费| 韩国av中文字幕| 日韩精品亚洲视频| 极品av在线| 精品国产乱码久久久久软件 | 国产高清视频免费观看| 日韩中文字幕在线看| 国产成人亚洲一区二区三区| 亚洲精品无人区| 青青草国产成人99久久| 天天干天天舔天天操| 91福利社在线观看| 精品视频二区| 国产精品wwww| 精品九九在线| 久久这里只精品| 国产精品高潮呻吟| 国产又大又长又粗| www国产精品视频| 一级欧美视频| 今天免费高清在线观看国语| 国产美女av一区二区三区| 国精品无码一区二区三区| 日韩无一区二区| 国产乱妇乱子在线播视频播放网站| 动漫美女被爆操久久久| 亚洲网址在线| 亚洲人人夜夜澡人人爽| 欧美日韩中文字幕| 91短视频版在线观看www免费| 国产精品一区二区3区| 亚洲精品va| 在线观看一区二区三区四区| 欧美日韩国产精品一区二区三区四区 | 日韩二区三区在线| 久久久一本精品| 一本色道久久99精品综合| 国产呦精品一区二区三区网站| 久久久久久久久久99| 日韩电影中文字幕| 91九色综合| 色呦呦网站入口| 成人亚洲一区二区一| 欧美精品韩国精品| 中文字幕亚洲综合久久| 一区二区三区国产好| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 国产亚洲美州欧州综合国| 国产精品一级视频| 97精品国产aⅴ7777| 清纯唯美日韩| 国内自拍偷拍视频| 日本道精品一区二区三区| av网址在线| 久久久久久久久久码影片| 美女视频黄免费的久久 | 成人看片人aa| 亚洲高清av| 欧美福利在线视频| 亚洲成色999久久网站| 成人在线视频观看| www.射射射| 国产精品高潮呻吟| 天堂av电影在线观看| 成人性教育视频在线观看| 国产欧美大片| 日韩在线中文字幕视频| 亚洲欧洲黄色网| 粉嫩一区二区三区四区公司1|