能看到栈顶缓存,至少知道HotSpot是基于栈式的虚拟机,每个线程都有自己的虚拟机栈,栈的单位是栈帧,栈帧包含操作数栈、局部变量表、动态链接、方法返回地址、附加信息。
一:栈顶缓存是啥?
将虚拟机栈中的操作数栈的栈顶全部缓存到寄存器中,减少堆内存的访问。
二:为啥这样做?
比如我想做一个i++,肯定首先把i从局部变量表中放到操作数栈,然后取出i之后再++。
栈顶缓存,相当于把i从局部变量表放到了寄存器(i在栈顶)。减少了对内存的访问。
能看到栈顶缓存,至少知道HotSpot是基于栈式的虚拟机,每个线程都有自己的虚拟机栈,栈的单位是栈帧,栈帧包含操作数栈、局部变量表、动态链接、方法返回地址、附加信息。
将虚拟机栈中的操作数栈的栈顶全部缓存到寄存器中,减少堆内存的访问。
比如我想做一个i++,肯定首先把i从局部变量表中放到操作数栈,然后取出i之后再++。
栈顶缓存,相当于把i从局部变量表放到了寄存器(i在栈顶)。减少了对内存的访问。
本文标题:HotSpot之栈顶缓存
本文链接:https://www.haomeiwen.com/subject/weeudhtx.html
网友评论