日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java10新特性:堆和棧的優(yōu)化,讓你的程序更快更穩(wěn)定

并維護(hù)每個(gè)Region中可達(dá)對(duì)象數(shù)量信息;這種方式相比于CMS(Concurrent Mark and Sweep)可以更好地控制垃圾回收過程,因?yàn)榫€程需要保存現(xiàn)場信息以便后續(xù)恢復(fù)。

作為一名Java開發(fā)者,我們都知道堆和棧是非常重要的概念。在Java10中,針對(duì)這兩個(gè)概念進(jìn)行了優(yōu)化,讓我們來看看這些改進(jìn)如何提高程序的速度和穩(wěn)定性。

首先說一下堆(Heap)吧。在Java中,對(duì)象都存儲(chǔ)在堆里面。而隨著系統(tǒng)運(yùn)行時(shí)間越長,在內(nèi)存分配方面會(huì)出現(xiàn)問題。因?yàn)殡S著時(shí)間推移,垃圾回收器需要處理大量無用對(duì)象所占用的空間,并將其釋放給操作系統(tǒng)以供其他應(yīng)用使用。

相信很多人都遇到過JVM OutOfMemory異常導(dǎo)致程序宕機(jī)或變得緩慢等情況。而在Java 10中引入了一個(gè)新特性:G1垃圾回收器(Garbage-First),它可以減少Full GC 的次數(shù)并且能夠平滑地處理大型堆內(nèi)存。

那么G1是如何工作的呢?簡單來說就是把整個(gè)Heap劃分成若干個(gè)大小相同Region,并維護(hù)每個(gè)Region中可達(dá)對(duì)象數(shù)量信息;同時(shí)設(shè)置閾值觸發(fā)GC操作時(shí)只清理部分Region,在此期間不影響業(yè)務(wù)線程執(zhí)行。這種方式相比于CMS(Concurrent Mark and Sweep)可以更好地控制垃圾回收過程,從而減少Full GC的時(shí)間和頻率。

接下來說一下棧(Stack)。在Java中,每個(gè)線程都有自己的??臻g。因?yàn)榫€程需要保存現(xiàn)場信息以便后續(xù)恢復(fù),所以每個(gè)方法調(diào)用時(shí)都會(huì)在該線程對(duì)應(yīng)的棧上創(chuàng)建一個(gè)新幀(Frame),并將其推入到棧頂。當(dāng)方法返回時(shí),該幀就會(huì)被彈出,并銷毀其中的局部變量、操作數(shù)等信息。

但是,在JVM運(yùn)行時(shí)期間可能會(huì)發(fā)生StackOverflow異常導(dǎo)致程序崩潰或變得緩慢等情況。針對(duì)這種情況,在Java 10中引入了一個(gè)新特性:動(dòng)態(tài)擴(kuò)容ThreadLocal對(duì)象存儲(chǔ)區(qū)域大小。

簡單來說就是讓ThreadLocal對(duì)象能夠動(dòng)態(tài)調(diào)整存儲(chǔ)空間大小,避免由于數(shù)據(jù)量大導(dǎo)致OOM問題發(fā)生;同時(shí)還提供了虛擬內(nèi)存機(jī)制支持多次分配和釋放空間,保證資源利用率最大化。


文章標(biāo)題:Java10新特性:堆和棧的優(yōu)化,讓你的程序更快更穩(wěn)定
分享地址:http://m.5511xx.com/article/cosipjs.html