Java groovy內(nèi)存回收測(cè)試步驟解析
問(wèn)題
在使用我們的開發(fā)平臺(tái)時(shí),客戶懷疑我們的動(dòng)態(tài)執(zhí)行腳本會(huì)導(dǎo)致系統(tǒng)內(nèi)存回收的問(wèn)題,導(dǎo)致系統(tǒng)不響應(yīng),為此我專門針對(duì)這個(gè)問(wèn)題,做一下詳細(xì)的測(cè)試,看看是不是到底有什么影響。
測(cè)試步驟
1.使用編寫一個(gè)控制器方法,這個(gè)控制器方法只做一個(gè)解析java腳本的代碼。
2.配置tomcat的內(nèi)存。
set JAVA_OPTS=-Xms1g -Xmx1g
3.使用APPACHE 的ab命令進(jìn)行壓測(cè)。
ab -c5 -t3600 http://192.168.1.200:8080/jsaas/testGroovyEngine.do
使用ab命令并發(fā)5次,壓測(cè)1個(gè)小時(shí)。
這個(gè)時(shí)候壓測(cè),發(fā)現(xiàn)metadata的數(shù)據(jù)會(huì)增加,但是到達(dá)300多m的時(shí)候,這個(gè)數(shù)據(jù)會(huì)進(jìn)行回收,但是這個(gè)時(shí)候訪問(wèn)會(huì)變慢。
重新調(diào)整jvm參數(shù)
set JAVA_OPTS=-Xms1g -Xmx1g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m
將metadata 數(shù)據(jù)的大小固定為256m
在進(jìn)行測(cè)試發(fā)現(xiàn):

在進(jìn)行壓測(cè)的時(shí)候,裝入的類會(huì)增加,但是當(dāng)metadata 數(shù)據(jù)到達(dá)256m的時(shí)候,jvm 會(huì)進(jìn)行有規(guī)律的回收,訪問(wèn)這個(gè)url性能也沒(méi)有變差。
得出的結(jié)論是:
1.使用groovy 確實(shí)會(huì)導(dǎo)致臨時(shí)裝載類增加。
2.我們需要設(shè)置metadata的數(shù)據(jù),當(dāng)metadata到達(dá)這個(gè)數(shù)值時(shí)就回收,這樣不至于占用太多的堆內(nèi)存,導(dǎo)致系統(tǒng)性能下降。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Java中Vector和ArrayList的區(qū)別
這篇文章主要為大家詳細(xì)介紹了Java中Vector和ArrayList的區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
微信、支付寶二碼合一掃碼支付實(shí)現(xiàn)思路(java)
這篇文章主要為大家詳細(xì)介紹了微信、支付寶二碼合一掃碼支付實(shí)現(xiàn)思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
mybatis映射文件操作存儲(chǔ)過(guò)程的實(shí)現(xiàn)
本文主要介紹了mybatis映射文件操作存儲(chǔ)過(guò)程的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
SpringBoot2.x 整合Spring-Session實(shí)現(xiàn)Session共享功能
這篇文章主要介紹了SpringBoot2.x 整合Spring-Session實(shí)現(xiàn)Session共享功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
Spring-Validation 后端數(shù)據(jù)校驗(yàn)的實(shí)現(xiàn)
這篇文章主要介紹了Spring-Validation 后端數(shù)據(jù)校驗(yàn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
MyBatis動(dòng)態(tài)SQL foreach標(biāo)簽實(shí)現(xiàn)批量插入的方法示例
這篇文章主要介紹了MyBatis動(dòng)態(tài)SQL foreach標(biāo)簽實(shí)現(xiàn)批量插入的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Java C++題解leetcode816模糊坐標(biāo)示例
這篇文章主要為大家介紹了Java C++題解leetcode816模糊坐標(biāo)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
StateMachine 狀態(tài)機(jī)機(jī)制深入解析
這篇文章主要介紹了,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Springboot中的Validation參數(shù)校驗(yàn)詳解
這篇文章主要介紹了Springboot中的Validation參數(shù)校驗(yàn)詳解,Springboot參數(shù)校驗(yàn)是一種常用的驗(yàn)證機(jī)制,在傳遞參數(shù)時(shí)進(jìn)行校驗(yàn),以確保參數(shù)的有效性和正確性,該機(jī)制可以幫助開發(fā)者在代碼實(shí)現(xiàn)前就避免一些常見的錯(cuò)誤,需要的朋友可以參考下2023-10-10

