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

Java reservedcodecachesize虛擬機(jī)參數(shù)案例詳解

 更新時(shí)間:2021年08月20日 09:28:06   作者:晴天  
這篇文章主要介紹了Java reservedcodecachesize虛擬機(jī)參數(shù)案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

一、reservedcodecachesize參數(shù)介紹

該參數(shù)是JvM虛擬機(jī)調(diào)優(yōu)中調(diào)整內(nèi)存大小的一個(gè)設(shè)置參數(shù),值得大小設(shè)置直接影響到Code Cache的大小,而jvm編譯的代碼有常常存放在Code Cache中,而Code Cache的空間內(nèi)存又支撐著jvm的正常運(yùn)行,如果該空間不足jvm虛擬機(jī)將會(huì)發(fā)生問(wèn)題,并且性能持續(xù)降低。

Code Cache就是所謂的代碼緩存,由于JVM虛擬機(jī)的內(nèi)存默認(rèn)是有大小限制的,因此代碼緩存區(qū)域肯定也是有一定大小限制,一般的Windows電腦上64位系統(tǒng)下它的默認(rèn)大小應(yīng)該是48M,如果代碼緩存已滿則jvm在編譯代碼時(shí)的優(yōu)化設(shè)置就會(huì)被禁用,這也就是為什么jvm性能會(huì)持續(xù)降低的原因。

jvm調(diào)優(yōu)內(nèi)存結(jié)構(gòu)詳圖

合理的調(diào)整該reservedcodecachesize值設(shè)置的大小就可以達(dá)到令JVM虛擬機(jī)不斷調(diào)優(yōu)不斷進(jìn)行優(yōu)化而達(dá)到高性能執(zhí)行的目的。

二、該參數(shù)如何設(shè)置與調(diào)優(yōu)

1)reservedcodecachesize調(diào)優(yōu)說(shuō)明

在學(xué)會(huì)如何設(shè)置該參數(shù)值得大小與如何調(diào)用之前,我們首先要明白一個(gè)問(wèn)題,就是jvm虛擬機(jī)本身默認(rèn)的配置已經(jīng)是非常合理的了,若非遇到性能瓶頸的情況下,是不需要進(jìn)行調(diào)整該值的大小的。

即便設(shè)置該值的大小也是需要根據(jù)本機(jī)本地電腦系統(tǒng)內(nèi)存的總大小作為參考指導(dǎo),也就是說(shuō)該值調(diào)整需要根據(jù)電腦系統(tǒng)的內(nèi)存來(lái)做出判斷的,并沒(méi)有固定的值。

我們的項(xiàng)目在生產(chǎn)環(huán)境中平時(shí)運(yùn)行的很好,然而經(jīng)常會(huì)遇到性能問(wèn)題的時(shí)候,我們才會(huì)考慮配置jvm的參數(shù),調(diào)整虛擬機(jī)性能的最大化。

2)如何判斷reservedcodecachesize的大小導(dǎo)致的性能降低

那么問(wèn)題來(lái)了,我們?cè)撊绾闻袛嗍怯捎谠搮?shù)默認(rèn)值太小導(dǎo)致代碼緩存已滿而造成的性能有問(wèn)題呢?這時(shí)我們可以查看JVM的運(yùn)行日志,它的日志中會(huì)顯示出下面截圖中的警告信息,警告我們代碼緩存已滿。此時(shí)jvm的編譯器就會(huì)被禁止使用,因此代碼編譯停止直接導(dǎo)致jvm運(yùn)行速度迅速下降。

jvm虛擬機(jī)日志警告詳細(xì)信息一覽

如果發(fā)現(xiàn)上圖中的警告消息,說(shuō)明我們就該設(shè)置該參數(shù)的值調(diào)整其大小。

3)調(diào)整該參數(shù)值得大小進(jìn)行調(diào)優(yōu)

接下來(lái)就是reservedcodecachesize參數(shù)值調(diào)整其大小進(jìn)行性能調(diào)優(yōu)的重中之重了,我們上文中也提到過(guò)了調(diào)整該值的大小是根據(jù)本地內(nèi)存的做參考依據(jù)的,這里的設(shè)置只能有一定的參考意義,并不適用每一臺(tái)機(jī)器。

只要報(bào)上圖中的警告信息就說(shuō)明代碼緩存空間太小不夠用,因此需要將值調(diào)大,其次jvm的垃圾回收期是不會(huì)回收代碼緩存空間的,隨著jvm運(yùn)行時(shí)間不斷的增加,該值得空間可用緩存也會(huì)越來(lái)越少。

因此解決辦法有兩個(gè),我們可以從下面這兩方面進(jìn)行,根據(jù)工作經(jīng)驗(yàn)以及生產(chǎn)經(jīng)驗(yàn)來(lái)看,一般將該值的大小調(diào)整為256兆,具體代碼如下:

XX:ReservedCodeCacheSize=256m

另一個(gè)方面我們就可以配置jvm的垃圾回收機(jī)制去回收代碼緩存空間,開(kāi)啟代碼如下:

XX:+UseCodeCacheFlushing

三、jvm虛擬機(jī)其它參數(shù)詳解

1)-Xms -Xmx參數(shù)詳解

-Xms和-XMx兩個(gè)參數(shù)分別指代jvm初始分配的內(nèi)存大小和JVM能夠分配到堆內(nèi)存上限的最大值,常用的標(biāo)記單位一般是M或者g。

我們?cè)趈vm啟動(dòng)時(shí)可以設(shè)置合理的這兩個(gè)參數(shù)的值的大小,其實(shí)jvm也會(huì)自動(dòng)調(diào)整堆內(nèi)存的大小,所以當(dāng)看到實(shí)際的值與我們?cè)O(shè)定的值不一致的時(shí)候,不要驚慌,那是因?yàn)閖vm在動(dòng)態(tài)的調(diào)整。

2)-XX:PermSize and -XX:MaxPermSize參數(shù)詳解

上面的兩個(gè)參數(shù)分別指代非堆內(nèi)存的初始化最小值以及非堆內(nèi)存的上限最大值,當(dāng)jvm中堆空間的大小過(guò)小,或者是小于50%時(shí)就會(huì)發(fā)出警告,報(bào)堆內(nèi)存太小的警告信息,此時(shí)一般就是指的PermSize的值太小,我們可以適當(dāng)?shù)貙?duì)其進(jìn)行調(diào)整,不過(guò)還是要根據(jù)本地機(jī)器的內(nèi)存大小來(lái)設(shè)置。

此外,這兩個(gè)值還直接影響到永久代的大小,如果Java中引入了大量的第三方類庫(kù),而jvm在編譯時(shí)需要將這些大量類庫(kù)加載到內(nèi)存中,需要加載到永久代中,這時(shí)可以適當(dāng)調(diào)大來(lái)增加永久帶的大小。

3)-XX:OnOutOfMemoryError參數(shù)詳解

OnOutOfMemoryError參數(shù)就是告訴我們當(dāng)我們的jvm發(fā)生內(nèi)存溢出或者是內(nèi)存泄漏時(shí),我們可以設(shè)置一些指令來(lái)告訴我們的程序管理者。

該參數(shù)就可以完美的設(shè)置,比如說(shuō)發(fā)郵件告訴我們做一些內(nèi)存清理和內(nèi)存設(shè)置的工作。

OnOutOfMemoryError參數(shù)設(shè)置代碼案例

上圖中的例子就是設(shè)置了一下該參數(shù),然后將內(nèi)存溢出的詳細(xì)信息打包成一個(gè)文件運(yùn)行在jvm的腳本中。

到此這篇關(guān)于Java reservedcodecachesize虛擬機(jī)參數(shù)案例詳解的文章就介紹到這了,更多相關(guān)Java reservedcodecachesize虛擬機(jī)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用spring的websocket創(chuàng)建通信服務(wù)的示例代碼

    使用spring的websocket創(chuàng)建通信服務(wù)的示例代碼

    這篇文章主要介紹了使用spring的websocket創(chuàng)建通信服務(wù)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Java處理科學(xué)計(jì)數(shù)法數(shù)字方式

    Java處理科學(xué)計(jì)數(shù)法數(shù)字方式

    這篇文章主要介紹了Java處理科學(xué)計(jì)數(shù)法數(shù)字方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • JavaMailSender實(shí)現(xiàn)郵箱驗(yàn)證功能

    JavaMailSender實(shí)現(xiàn)郵箱驗(yàn)證功能

    本篇文章主要給大家介紹了JavaMailSender實(shí)現(xiàn)郵箱注冊(cè)驗(yàn)證的功能實(shí)現(xiàn)原理以及其中遇到的問(wèn)題,一起跟著學(xué)習(xí)探討下吧。
    2017-12-12
  • Spring @Primary和@Qualifier注解原理解析

    Spring @Primary和@Qualifier注解原理解析

    這篇文章主要介紹了Spring @Primary和@Qualifier注解原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Spring注解驅(qū)動(dòng)之AOP功能測(cè)試

    Spring注解驅(qū)動(dòng)之AOP功能測(cè)試

    這篇文章主要介紹了Spring注解驅(qū)動(dòng)之AOP功能測(cè)試,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • springboot與dubbo的版本匹配問(wèn)題

    springboot與dubbo的版本匹配問(wèn)題

    這篇文章主要介紹了springboot與dubbo的版本匹配問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • springboot實(shí)現(xiàn)增加黑名單和白名單功能

    springboot實(shí)現(xiàn)增加黑名單和白名單功能

    本文主要介紹了springboot實(shí)現(xiàn)增加黑名單和白名單功能,就是單純的實(shí)現(xiàn)filter,然后注冊(cè)到springboot里面,在filter里面進(jìn)行黑白名單的篩選,感興趣的可以了解一下
    2024-05-05
  • 用Java設(shè)計(jì)實(shí)現(xiàn)多實(shí)例多庫(kù)查詢方式

    用Java設(shè)計(jì)實(shí)現(xiàn)多實(shí)例多庫(kù)查詢方式

    這篇文章主要介紹了用Java設(shè)計(jì)實(shí)現(xiàn)多實(shí)例多庫(kù)查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 使用Mybatis的Batch?Insert?Support?實(shí)現(xiàn)批量插入

    使用Mybatis的Batch?Insert?Support?實(shí)現(xiàn)批量插入

    這篇文章主要介紹了使用Mybatis的Batch?Insert?Support?實(shí)現(xiàn)批量插入。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • JAVA中通過(guò)自定義注解進(jìn)行數(shù)據(jù)驗(yàn)證的方法

    JAVA中通過(guò)自定義注解進(jìn)行數(shù)據(jù)驗(yàn)證的方法

    java 自定義注解驗(yàn)證可自己添加所需要的注解,下面這篇文章主要給大家介紹了關(guān)于JAVA中通過(guò)自定義注解進(jìn)行數(shù)據(jù)驗(yàn)證的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08

最新評(píng)論