婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > IntelliJ IDEA卡死,如何優化內存

IntelliJ IDEA卡死,如何優化內存

熱門標簽:鶴壁外呼系統公司 suitecrm 地圖標注 臨沂ai電銷機器人招商 銀川語音外呼系統中心 高德地圖標注常顯 揭陽電腦外呼系統公司 承德地圖標注公司收費 外呼系統號顯示星號怎么看 華創e路航彩票銷售點地圖標注

本文作者在和同事的一次討論中發現,對 IntelliJ IDEA 內存采用不同的設置方案,會對 IDE 的速度和響應能力產生不同的影響。

Don't be a Scrooge and give your IDE some more memory

不要做守財奴,給IDE多留點內存吧。

昨天,大家就是否自定義 IntelliJ IDEA 的內存設置進行了討論,有些人選擇默認設置,有些人會對默認的設置進行簡單的變更,還有一些開發者會基于他們的需求進行全面復雜的設置。筆者目前的工作是處理幾個微服務項目和一個老項目,而客戶的核心業務需求非常大。對 IntelliJ IDEA 內存進行簡單設置以后,筆者明顯感受到了該 IDE 在速度和響應方面的改善。但當時筆者并未進行具體的測量,所以這只是主觀感受而已。

不過,參與討論的一位開發者給筆者發了一份他的設置,雖然是針對同個項目,該設置卻極其復雜。筆者對自己的設置并無不滿,但非常好奇,這些完全不同的設置對比 JetBrains 提供的默認設置,會有怎樣的不同。

目標

筆者的計劃是,在一個接近日常開發項目的場景下(加載一個大項目、加載2、3個微服務、git pull 后刷新大項目),測試各個設置帶來的效果,并選出內存消耗和速度都達到最優時的最佳設置。

測試機器和項目

筆記本電腦:MacBook Pro Retina, 2.3GHz Intel Core i7, 16GB 1600Mhz DDR3,SSD Disc, OS X Yosemite

項目

大項目—— Monolith ,70萬行代碼( Java 8 和 Groovy ),303個Gradle模塊

兩個微服務——約有10000——20000行代碼( Java 8 和 Groovy )的小項目,各有一個Gradle模塊

測試場景

  • 在 Idea 中關閉所有項目
  • 基于測試文件 idea.vmoptions 進行設置
  • 重啟電腦
  • 啟動后關閉所有不相關的項目( communicators 等等)
  • 打開 Idea(測試時間)
  • 打開大項目(測試時間)
  • 檢查 jstat -gcutil
  • 打開兩個微服務項目(測試時間)
  • 檢查 jstat -gcutil
  • 返回大項目然后點擊“刷新 Gradle 項目”按鈕(測試時間)
  • 檢查 jstat -gcutil

jstat -gcutil

jstat 是 JDK 自帶的工具,主要利用 JVM 內建的指令對 Java 應用程序的資源和性能進行實時的命令行監控,還包括對 Heap size 和垃圾回收狀況的監控。

jstat 完整的文檔:

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html

它有許多選項來收集各種數據,但這里只會用到:-gcutil :

-gcutil - Summary of garbage collection statistics.
S0: Survivor space 0 utilization as a percentage of the space's current capacity. 
S1: Survivor space 1 utilization as a percentage of the space's current capacity. 
E: Eden space utilization as a percentage of the space's current capacity. 
O: Old space utilization as a percentage of the space's current capacity. 
M: Metaspace utilization as a percentage of the space's current capacity. 
CCS: Compressed class space utilization as a percentage. 
YGC: Number of young generation GC events. 
YGCT: Young generation garbage collection time. 
FGC: Number of full GC events. 
FGCT: Full garbage collection time. 
GCT: Total garbage collection time. 

這個命令的輸出結果如下:

S0   S1  E   O   M  CCS YGC YGCT FGC FGCT  GCT 
89.70 0.00 81.26 74.27 95.68 91.76 40 2.444 14 0.715 3.159 

在本文中,最重要的參數是 GC 事件( YGC 和 FGC )次數和收集時間( YGCT 和 FGCT )。

測試設置

筆者設置了四種不同的設置,為了好記,給它們起了不同的名字。

默認(灰色標識)

JetBrains 提供的默認設置:

-Xms128m
-Xmx750m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops

Big(大)(紅色標識)

給 Xmx 配 4096MB, ReservedCodeCacheSize 設置 1024MB,這已經是相當多的內存了:

-Xms1024m
-Xmx4096m
-XX:ReservedCodeCacheSize=1024m
-XX:+UseCompressedOops

Balanced(平衡的)(藍色標識)

Xmx 和 Xms 都分配 2GB ,這是相當平衡的內存消耗:

-Xms2g
-Xmx2g
-XX:ReservedCodeCacheSize=1024m
-XX:+UseCompressedOops

Sophisticated(復雜的)(橘色標識)

和上面一樣, Xmx 和 Xms 都分配2GB,但是給 GC 和內存管理指定不同的垃圾回收器和許多不同的標志:

-server
-Xms2g
-Xmx2g
-XX:NewRatio=3
-Xss16m
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:ConcGCThreads=4
-XX:ReservedCodeCacheSize=240m
-XX:+AlwaysPreTouch
-XX:+TieredCompilation
-XX:+UseCompressedOops
-XX:SoftRefLRUPolicyMSPerMB=50
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-ea

以上便是筆者的測試設置,為了執行該測試用例,還需要在~/Library/Preferences/IntelliJIdea15/下創建一個idea.vmoptions文件(這是 Mac OS 系統下的路徑設置,基于你的操作系統進行設置,關注公眾號:Java面試那些事兒,回復關鍵字idea,獲取最新的idea教程)

現在,執行測試用例并比較結果。

結果

Idea啟動時間

正如上圖所示,啟動時間并不依賴于內存設置。Idea 在所有場景下的測試時間都是10秒,無論內存分配有多少。這并不足為奇,因為在此早期階段,這些設置并不會影響到應用的行為。更多IDEA內容:IntelliJ IDEA 2020.1 已正式發布

加載大項目花費的時間

現在加載 Monolith 項目及其70萬行代碼。終于,出現了一些的差異。默認設置所花費的時間幾乎是其它的3倍。很明顯,如此龐大的代碼庫需要更多的內存。如果我們執行:

jstat -gcutil IDEA_PID> 

會發現,對比其它設置, GC 在默認設置下會變得異常忙碌。

不僅 GC 釋放內存的總時間非常高(幾乎達到了50倍),而且 Full GC 的平均執行時間也非常非常長。大量的時間都花在了 Full GC 上面,這是 IDE 響應速度低的主要原因。

在IDEA中打開兩個微服務

現在加載這兩個微服務項目,在 IDEA 中打開并且對比他們所消耗的時間。

在這個測試用例下,差異還是非常明顯的,復雜設置表現最佳,而默認設置仍舊輸給了其他兩種設置。

再次使用jstat –gcutil

加載完兩個微服務項目后,來檢查一下同時打開3個項目的情況下, GC 的表現情況。經測試發現,3個不同的自定義設置表現幾乎差不多,而默認設置簡直弱爆了。

最后的角逐:重新加載Monolith

現在,筆者需要從倉庫中獲得 Monolith 項目的最新版本,并且刷新 Gradle 模塊,這樣, IDEA 能看到所有的新類。

重要提示:代表默認設置的灰色條形柱非常高,因為 IDEA 在刷新過程中崩潰了,筆者無法測量實際時間。顯然,默認分配的內存不足以執行該操作。

但從三個自定義例子中可以發現,大內存配置花費的時間是最短的。所以,內存分配還是起到了作用。

最后一次使用jstat-gcutil

因為 IDEA 在默認設置下無法刷新項目,所以,這次測試默認設置就不包括在里面。

從上圖可以看出,三者之間的差異不大,但是 Big 配置下的 Full GC 執行時間最快。此外, Xmx 內存大些對響應能力提升的幫助非常明顯。

總結

在這次簡短的實驗中,大家可以發現,即使對 IntelliJ IDEA 內存進行微調,都可以大大提升 IDE 性能。當然,內存分配越多,執行效果就越好。但是,你也會發現, IDE 之外許多其他應用程序也需要消耗內存,所以,大家的目標應該是在提高性能和內存消耗之間找到一個平衡。

筆者認為,在大多數情況下,把 Xmx 值設置在 2G 和 3G 之間是最佳的。如果你有更多的時間可以用 jstat 和 jvisualm 檢查用不同的 JVM 設置如何影響性能和內存占用。

討論

你的 idea.vmoptions 是如何配置的呢?你還有其它提高 InteliJ IDEA 性能的方法嗎?不妨一起討論討論吧。

譯者:OneAPM

譯文:blog.oneapm.com/apm-tech/426.html

原文:dzone.com/articles/the-one-and-only-reason-to-customize-intellij-idea

到此這篇關于IntelliJ IDEA卡死,如何優化內存的文章就介紹到這了,更多相關IntelliJ IDEA 優化內存內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解IDEA中便捷內存數據庫H2的最簡使用方式
  • windows java.exe內存暴漲解決、idea跑java\ tomcat內存無限增長
  • IDEA設置JVM可分配內存大小和其他參數的教程
  • idea插件篇之java內存分析工具(JProfiler)的使用
  • IDEA 設置顯示內存的使用情況和內存回收的方法
  • IntelliJ IDEA設置顯示內存指示器和設置內存大小的方法
  • IntelliJ IDEA修改內存大小,使得idea運行更流暢
  • IDEA內存調試插件(好用)
  • Java基礎之反射詳解

標簽:許昌 忻州 汕尾 三沙 萊蕪 七臺河 棗莊 咸寧

巨人網絡通訊聲明:本文標題《IntelliJ IDEA卡死,如何優化內存》,本文關鍵詞  IntelliJ,IDEA,卡死,如何,優化,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《IntelliJ IDEA卡死,如何優化內存》相關的同類信息!
  • 本頁收集關于IntelliJ IDEA卡死,如何優化內存的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日韩久久一区二区| 成人av资源网站| 在线观看国产一区二区| 欧美成人性福生活免费看| 亚洲国产aⅴ天堂久久| 国产.精品.日韩.另类.中文.在线.播放| 欧美调教femdomvk| 天天影视网天天综合色在线播放| 欧美午夜精品电影| 美女一区二区视频| 国产欧美1区2区3区| 99九九99九九九视频精品| 亚洲色图色小说| 欧美日韩亚洲丝袜制服| 蜜臀a∨国产成人精品| 精品乱人伦一区二区三区| 精品伊人久久久久7777人| 国产日韩欧美精品电影三级在线| 成人综合在线网站| k8久久久一区二区三区| 欧美一区二区三区四区在线观看| 亚洲v精品v日韩v欧美v专区| 欧美色精品在线视频| 天天做天天摸天天爽国产一区 | 国产精品国产三级国产普通话三级| 久久99久久99小草精品免视看| 日韩精品一区二区三区中文精品 | 成人黄色在线看| 中文字幕欧美三区| 欧美中文字幕亚洲一区二区va在线 | 欧美一区二区视频免费观看| 国产真实乱对白精彩久久| 亚洲欧美在线观看| 欧美人妖巨大在线| 国产白丝精品91爽爽久久| 一区二区三区在线免费视频 | 久久久亚洲精品石原莉奈| 91亚洲国产成人精品一区二三 | 精彩视频一区二区三区| 亚洲欧美怡红院| 91精品国产乱| 91视频.com| 国产毛片精品视频| 丝袜诱惑亚洲看片| 一级精品视频在线观看宜春院| 日韩美女天天操| 91视频一区二区三区| 狠狠狠色丁香婷婷综合激情| 亚洲精品中文在线| 国产日韩欧美高清在线| 欧美日韩在线观看一区二区| 成人激情免费视频| 韩国欧美国产1区| 奇米影视7777精品一区二区| 亚洲美女在线国产| 亚洲视频小说图片| 亚洲国产精品国自产拍av| 久久品道一品道久久精品| 日韩一区二区三区电影| 欧美久久婷婷综合色| 色综合色综合色综合色综合色综合| 国产精品99久久久久久久女警| 日韩专区一卡二卡| 五月婷婷综合激情| 亚洲欧洲日韩一区二区三区| 中文字幕av一区二区三区| 国产日本亚洲高清| 国产欧美一区二区三区在线老狼| 精品久久久久久久久久久久久久久久久 | 爽爽淫人综合网网站| 亚洲柠檬福利资源导航| 亚洲视频精选在线| 亚洲一卡二卡三卡四卡无卡久久| 亚洲一区在线观看视频| 亚洲成人在线观看视频| 婷婷国产v国产偷v亚洲高清| 日本午夜精品视频在线观看| 日韩电影网1区2区| 国产自产v一区二区三区c| 国产精品一级黄| 99精品久久只有精品| 色国产精品一区在线观看| 欧美日韩一区二区欧美激情| 欧美一区二区三区公司| 精品免费国产二区三区| 国产精品久久久久久久久免费相片| 中文子幕无线码一区tr| 亚洲精品自拍动漫在线| 青娱乐精品视频| 国产精品羞羞答答xxdd| 99久久久久久| 欧美色倩网站大全免费| www成人在线观看| 依依成人精品视频| 老司机免费视频一区二区| 国产精品一区二区久激情瑜伽| bt7086福利一区国产| 在线播放中文一区| 国产片一区二区| 丝袜美腿一区二区三区| 国产91露脸合集magnet | 欧美一区二区三区视频免费播放| 日韩欧美中文字幕制服| 最新国产精品久久精品| 日韩av一区二区三区四区| 成人免费高清视频在线观看| 欧美日韩亚洲另类| 中文字幕成人在线观看| 日本欧美一区二区三区乱码| 91麻豆国产精品久久| 亚洲精品一区二区三区蜜桃下载| 《视频一区视频二区| 激情综合色播激情啊| 欧美午夜精品久久久久久超碰| 国产三级欧美三级日产三级99| 日韩精品福利网| 一本大道综合伊人精品热热| 欧美极品xxx| 国内外成人在线视频| 欧美美女视频在线观看| 一区二区三区在线免费观看| 粉嫩在线一区二区三区视频| 欧美成人免费网站| 亚洲v日本v欧美v久久精品| 91免费看片在线观看| 久久精品视频网| 久久国产精品免费| 欧美久久久影院| 亚洲国产成人av| 色激情天天射综合网| 一区在线播放视频| 懂色av噜噜一区二区三区av| 2022国产精品视频| 国产一区二区网址| 久久久久久久久岛国免费| 麻豆精品视频在线观看视频| 欧美日韩精品一区二区在线播放| 免费xxxx性欧美18vr| 在线电影院国产精品| 性感美女极品91精品| 欧美精三区欧美精三区| 亚洲a一区二区| 欧美久久久久久久久| 免费成人你懂的| 精品福利一区二区三区| 精品一区二区三区免费视频| 欧美v国产在线一区二区三区| 免费欧美在线视频| 久久久久久亚洲综合影院红桃| 国产成人精品亚洲777人妖| 国产免费久久精品| 色偷偷一区二区三区| 一区二区三区久久久| 欧美一区二区三区精品| 国产一区二区三区黄视频| 中文字幕的久久| 欧美性色黄大片| 另类小说视频一区二区| 国产女人aaa级久久久级| 不卡高清视频专区| 亚洲国产你懂的| 欧美一级日韩不卡播放免费| 国产经典欧美精品| 亚洲女同女同女同女同女同69| 欧美乱熟臀69xxxxxx| 国产精品综合一区二区| 一区二区三区美女| 久久女同精品一区二区| 99re热视频这里只精品| 日日骚欧美日韩| 国产精品污污网站在线观看 | 99国产精品久久久久久久久久| 亚洲一卡二卡三卡四卡五卡| 日韩精品中文字幕在线一区| 高清视频一区二区| 日日骚欧美日韩| 国产日韩欧美激情| 欧美一区二区私人影院日本| 成人a区在线观看| 男女男精品视频| 国产精品盗摄一区二区三区| 欧美精品乱码久久久久久| 风间由美中文字幕在线看视频国产欧美| 亚洲综合免费观看高清完整版| 久久久国产精品不卡| 欧美高清性hdvideosex| www.一区二区| 国产高清精品网站| 奇米在线7777在线精品 | 日韩高清欧美激情| 中文字幕五月欧美| 国产欧美一区二区精品秋霞影院| 欧美精选在线播放| 欧美视频在线一区| 91蜜桃在线免费视频| 国产精品综合在线视频| 精品一区二区三区香蕉蜜桃| 天天av天天翘天天综合网| 亚洲精品第1页| 中文字幕在线一区免费|