首页 > 编程知识 正文

java如何获取栈内存的地址,栈内存和堆内存的特点

时间:2023-05-04 23:00:24 阅读:25462 作者:4597

堆栈中有内存是一种java 虚拟机提供的优化技术,将私有对象打散分配在栈上,提高性能,但无法在栈上分配大对象

转义分析和标量替换是堆栈上内存分配的基础

-只有在服务器模式下打开了服务器时,才能中止转义分析

-启用-XX: DoEscapeAnalysis转义分析

-XX: EliminateAllocations启用标量替换,以便将对象分散分配给堆栈

1 .创建对象并由jvm分配内存顺序

尝试在堆栈中分配、尝试在TLAB中分配、尝试在老年世代中分配、尝试在堆上在eden中分配

2 .逃逸分析:

为了分配给堆栈,首先需要分析判断对象的范围是否从函数体中脱离

3 .标量替换:允许将对象分散分配到堆栈中。 如果一个对象具有两个字段属性,则两个属性将作为局部变量分配给堆栈。

4.TLAB的全名是线程本地分配缓冲器,也就是线程专用的内存分配区域。 TLAB消耗eden区域的内存。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。