這篇文章給大家介紹java虛擬機(jī)的內(nèi)存模型是什么,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
文山州網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,文山州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為文山州上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的文山州做網(wǎng)站的公司定做!
Java內(nèi)存結(jié)構(gòu)和java內(nèi)存模型的區(qū)別。往往很多人會(huì)搞起來(lái)。這里主要對(duì)這2種進(jìn)行解釋并進(jìn)行操作。經(jīng)實(shí)踐會(huì)JVM調(diào)優(yōu)和不會(huì)JVM調(diào)優(yōu)差別確實(shí)很大,足足可以提升服務(wù)器一倍的性能。
image.png
image.png
image.png
image.png
image.png
image.png
image.png
新生代設(shè)置比較小的話,垃圾回收會(huì)頻繁去回收,否則內(nèi)存不夠用,頻繁回收又影響性能,不回收又會(huì)導(dǎo)致內(nèi)存溢出,所以這個(gè)配比很關(guān)鍵 一般設(shè)置虛擬機(jī)內(nèi)存大小都是為當(dāng)前PC的內(nèi)存大小,新生代和老年代的內(nèi)存比例是1:2,一般老年代都會(huì)多點(diǎn),因?yàn)檫@樣可以減少垃圾回收的次數(shù),提高性能。初始堆內(nèi)存和最大堆內(nèi)存設(shè)置一樣。 內(nèi)存溢出,有棧溢出和堆溢出,棧溢出就像下面的死循環(huán),這個(gè)在棧當(dāng)中申明的int最大只能到一定的數(shù)字
image.png
image.png
總結(jié):jvm參數(shù)調(diào)優(yōu),主要設(shè)置堆內(nèi)存,主要讓gc不要去頻繁去回收垃圾,減少對(duì)老年代的回收。
image.png
gc線程就是守護(hù)線程:主線程掛了,gc線程也掛了 非守護(hù)線程就是主線程掛了,但是new Thread依然在執(zhí)行。 如果要把非守護(hù)線程變成守護(hù)線程,需要使用join,例:new Thread().setDeamon();
image.png
image.png
image.png
image.png
image.png
就是根據(jù)新生代和老年代進(jìn)行垃圾回收,一般新生代回收的較多,老年代回收的較少,所以應(yīng)該要避免老年代的gc回收,老年代回收比較慢
垃圾回收時(shí)的停頓現(xiàn)象 每次gc回收的時(shí)候,其他所有線程都會(huì)停頓,如果不停頓的話,那又有可能使用對(duì)象,或者新增對(duì)象,不便于垃圾清理。 垃圾收集器: 串行回收---單線程(單核回收) 并行回收---多線程(多核回收) 企業(yè)用的比較多,性能好CMS回收---并行GC,用標(biāo)記清除算法進(jìn)行回收,性能是最好的,一般用并行回收就可以了 G1回收,是在jdk1.7提出來(lái)的,用的比較少
啟動(dòng)jmeter測(cè)試工具,壓力測(cè)試工具,主要測(cè)試網(wǎng)站的吞吐量,就是每秒能被訪問(wèn)多少次
image.png
image.png
image.png
image.png
image.png
關(guān)于java虛擬機(jī)的內(nèi)存模型是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。