虚拟机内存优化技术之栈帧之间的数据共享

在一般的模型中。两个不同的栈帧一般是独立的存在,但是大部分JVM 在实现的过程中会进行一些优化,使得两个栈帧出现一部分重叠。(主要体现在方法中有参数传递的情况),让下面栈帧的操作数栈和上面栈帧的部分局部变量重叠在一起。

以以下程序为例:

image.png

image.png

此处的调用方的形参x被放入操作数栈,同时,被调用方的局部变量表也共享了此处区域。这样做不但节约了部分空间,更加重要的是在方法调用的时候就可以直接共用一部分数据。无需进行额外的参数辅助传递。

猜你喜欢

转载自blog.csdn.net/weixin_47184173/article/details/113576740