逃逸分析和棧上分配

Java實例的內(nèi)存是分配在堆區(qū)域當中的,而棧區(qū)域當中只保存了引用,當實例不再使用的時候則進行垃圾回收。程序運行的時候,堆區(qū)就變成了垃圾回收的重點區(qū)域,如果實例的數(shù)量較多的時候,就會出現(xiàn)性能問題。減少實例在堆當中分配內(nèi)存無疑是最有效的優(yōu)化方式。

JVM虛擬機會針對實例進行逃逸分析,簡單來說就是分析其作用域,如果實例對象沒有成員方法外的任何引用指向那么就未發(fā)生逃逸。而未發(fā)生逃逸的實例,將被分配到棧區(qū)域,生命周期隨著線程消亡,也就不用垃圾回收來釋放其內(nèi)存。從而降低堆內(nèi)存分配,減少垃圾回收頻率,提高垃圾效率。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容