HotSpot之栈顶缓存

2020-03-09  本文已影响0人  salix_

能看到栈顶缓存,至少知道HotSpot是基于栈式的虚拟机,每个线程都有自己的虚拟机栈,栈的单位是栈帧,栈帧包含操作数栈、局部变量表、动态链接、方法返回地址、附加信息。

一:栈顶缓存是啥?

将虚拟机栈中的操作数栈的栈顶全部缓存到寄存器中,减少堆内存的访问。

二:为啥这样做?

比如我想做一个i++,肯定首先把i从局部变量表中放到操作数栈,然后取出i之后再++。
栈顶缓存,相当于把i从局部变量表放到了寄存器(i在栈顶)。减少了对内存的访问。

上一篇 下一篇

猜你喜欢

热点阅读