欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

idea啟動(dòng)后CPU飆升的問題解決

 更新時(shí)間:2023年05月30日 11:15:50   作者:Ricoh.  
IDEA運(yùn)行大型項(xiàng)目,項(xiàng)目啟動(dòng)卡頓,CPU使用率占用過高,下面這篇文章主要給大家介紹了關(guān)于idea啟動(dòng)后CPU飆升的問題解決,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

解決idea 啟動(dòng)后CPU飆升的問題

CPU飆升是因?yàn)閕dea產(chǎn)生了某種瘋狂消耗CPU資源,可以通過idea自帶的監(jiān)控來來觀察到底是什么進(jìn)程占用了CPU的資源

iead監(jiān)控所在地

Iead監(jiān)控

其實(shí)網(wǎng)上大部分講的都是因?yàn)镴IT(just in time,即時(shí)編譯技術(shù))導(dǎo)致CPU飆升,但是經(jīng)過我的檢測發(fā)現(xiàn),JIT也僅僅是我的idea卡頓的一部分原因。

配置前:

不配置JIT參數(shù)前

配置后:

可以觀測到idea CPU還是會飆升,但是JIT所占用的CPU大幅度下降,說明還是很有效果的。

# JIT 參數(shù)

# 設(shè)置用于編譯的編譯器線程數(shù)
-XX:CICompilerCount=2
# 開啟分層編譯
-XX:TieredStopAtLevel=1
# 控制最大數(shù)量嵌套調(diào)用內(nèi)聯(lián)
-XX:MaxInlineLevel=3
-XX:Tier4MinInvocationThreshold=100000
-XX:Tier4InvocationThreshold=110000
-XX:Tier4CompileThreshold=120000

后續(xù)又發(fā)現(xiàn)是因?yàn)椴粩嗟卦谶M(jìn)行GC導(dǎo)致CPU飆升,因?yàn)槊看蜧C都會消耗99%的CPU資源,于是想著修改JVM參數(shù)來解決這個(gè)問題。

因?yàn)槲业膇dea是新裝的,他的堆大小參數(shù)為:

-Xms128m
-Xmx2048m

然后查閱資料得知,當(dāng)Xms設(shè)置值比較小時(shí),會頻繁的觸發(fā)GC,而GC又會出現(xiàn)STW的情況,所以idea一直GC,那你的idea也必然是一卡一卡的,同時(shí)大部分都推薦相同值,這是為什么呢?

這是為了避免在由于heap內(nèi)存擴(kuò)大或縮小導(dǎo)致應(yīng)用停頓,降低延遲,同時(shí)避免每次垃圾回收完成后JVM 重新分配內(nèi)存。

所以修改后的堆的大小為:

-Xms2048m
-Xmx2048m

然后又發(fā)現(xiàn)自己的GC收集器使用的是CMS,那么讀過JVM這本書的都知道,CMS采用 標(biāo)記-清理 的算法,標(biāo)記出垃圾對象,清除垃圾對象。算法是基于老年代執(zhí)行的,因?yàn)樾律a(chǎn)生無法接受該算法產(chǎn)生的碎片垃圾。他的缺點(diǎn)是:

  • 無法清理浮動(dòng)垃圾,并發(fā)收集會造成內(nèi)存碎片過多
  • 由于并發(fā)標(biāo)記和并發(fā)清理階段都是并發(fā)執(zhí)行,所以會額外消耗CPU資源

基于此,我將垃圾收集器也替換為了G1,G1的優(yōu)勢是:

  • 可控制回收垃圾的時(shí)間
  • 和CMS一樣采用標(biāo)記-清理的算法,但是G1不會產(chǎn)生空間碎片(G1從整體來講是基于標(biāo)記-整理來實(shí)現(xiàn)垃圾回收
    從局部來講,又是把整個(gè)堆,切割為大小均勻的多個(gè)region,region與region之間采用標(biāo)記-復(fù)制算法實(shí)現(xiàn)),這樣就有效的使用了連續(xù)空間,不會導(dǎo)致連續(xù)空間不足提前造成GC的觸發(fā)。

最后貼出完整的JVM參數(shù):

-server
-XX:MetaspaceSize=128M
-XX:MaxMetaspaceSize=512M
-XX:+AlwaysPreTouch
-Xms2048m
-Xmx2048m
-XX:ReservedCodeCacheSize=512m
-XX:+UseG1GC
-XX:+UseStringDeduplication
-XX:AutoBoxCacheMax=20000
-ea
-Dsun.io.useCanonCaches=false
-Dsun.awt.keepWorkingSetOnMinimize=true
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djsse.enablesSNIExtension=false
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Dfile.encoding=UTF-8

# JIT 參數(shù)

# 設(shè)置用于編譯的編譯器線程數(shù)
-XX:CICompilerCount=2
# 開啟分層編譯
-XX:TieredStopAtLevel=1
# 控制最大數(shù)量嵌套調(diào)用內(nèi)聯(lián)
-XX:MaxInlineLevel=3
-XX:Tier4MinInvocationThreshold=100000
-XX:Tier4InvocationThreshold=110000
-XX:Tier4CompileThreshold=120000

如果以上操作還是不能解決CPU過高的話,還可以打開

1、打開idea設(shè)置 File–>Settings–> Build,Execution,Deployment --> Compiler
2、調(diào)整 Shared build process heap size(Mbytes) 大小,默認(rèn)值700,可修改至 1024(或者自定義數(shù)值)

至于網(wǎng)上還有提出的插件,或者代碼檢查我們也可以去嘗試一下,通過修改里面的配置結(jié)合idea自帶的監(jiān)控來快速準(zhǔn)確定位問題,但是也告訴我們,要對癥下藥,有自帶的工具去幫你,何樂而不為呢?

總結(jié)

到此這篇關(guān)于idea啟動(dòng)后CPU飆升的問題解決的文章就介紹到這了,更多相關(guān)idea啟動(dòng)后CPU飆升內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用postman操作ElasticSearch的方法

    使用postman操作ElasticSearch的方法

    這篇文章主要介紹了使用postman操作ElasticSearch的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • uniapp引入支付寶原生掃碼插件步驟詳解

    uniapp引入支付寶原生掃碼插件步驟詳解

    這篇文章主要為大家介紹了uniapp引入支付寶原生掃碼插件步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 輕量級思維導(dǎo)圖XMind?2023免費(fèi)激活教程

    輕量級思維導(dǎo)圖XMind?2023免費(fèi)激活教程

    這篇文章主要介紹了輕量級思維導(dǎo)圖XMind?2023免費(fèi)激活教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Security安裝 Elastic SIEM 和 EDR的超詳細(xì)教程

    Security安裝 Elastic SIEM 和 EDR的超詳細(xì)教程

    這篇文章主要介紹了Security安裝 Elastic SIEM 和 EDR的超詳細(xì)教程,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 消息隊(duì)列應(yīng)用場景介紹

    消息隊(duì)列應(yīng)用場景介紹

    這篇文章介紹了消息隊(duì)列的應(yīng)用場景,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 使用版本控制原因及Git與Subversion介紹

    使用版本控制原因及Git與Subversion介紹

    這篇文章主要為大家介紹了使用版本控制優(yōu)點(diǎn)原因介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • 詳情解析TCP與UDP傳輸協(xié)議

    詳情解析TCP與UDP傳輸協(xié)議

    本文通過講解TCP與UDP傳輸協(xié)議傳輸數(shù)據(jù)是的過程及詳細(xì)介紹什么是 socket及現(xiàn)在我么們和大家一起來學(xué)習(xí)吧
    2021-08-08
  • 一個(gè)30多年編程經(jīng)驗(yàn)的程序員總結(jié)

    一個(gè)30多年編程經(jīng)驗(yàn)的程序員總結(jié)

    這篇文章主要介紹了一個(gè)30多年編程經(jīng)驗(yàn)的程序員總結(jié),在我30多年的程序員生涯里,我學(xué)到了不少有用的東西,下面是我這些年積累的經(jīng)驗(yàn)精華,需要的朋友可以參考下
    2014-09-09
  • 死鎖問題詳解

    死鎖問題詳解

    本文詳細(xì)介紹了死鎖,例如死鎖的概念、產(chǎn)生死鎖的條件、如何預(yù)防死鎖等等,有需要的朋友可以自行參考本篇文章,希望對你有所幫助
    2021-08-08
  • kali虛擬機(jī)破解root密碼的步驟

    kali虛擬機(jī)破解root密碼的步驟

    這篇文章主要介紹了kali虛擬機(jī)破解root密碼的步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-04-04

最新評論