当前位置:  开发笔记 > 编程语言 > 正文

Java相当于寄存器int?

如何解决《Java相当于寄存器int?》经验,为你挑选了3个好方法。

在C中,我可以为变量分配一个寄存器,例如:

register int i = 0;

我知道Java是一种解释型语言,并且有许多远离CPU的抽象.

是否有任何机制可用于甚至请求(如果架构不允许它,那么什么)我的变量保留在寄存器中而不是移动到缓存或主存储器?

我不认为有任何办法,但我以前都感到惊喜.

谢谢,



1> Johannes Wei..:

register在C中没有输入变量来注册.它只是给编译器提示,将它放入寄存器可能会很好.

在Java中没有等价物.



2> Michael Myer..:

如果它在短空间中使用足够使得它成为寄存器int是值得的,那么热点编译器应该能够自己解决这个问题.

实际上,热点编译器应该能够比C/C++编译器做得更好,因为它有更多的信息可以使用.C/C++编译器必须猜测; HotSpot可以测量.



3> sk...:

在Java中没有等价物.即使在C中,也不能保证变量将存储在寄存器中,编译器可以自由地忽略它.

在Java中,该方法将被解释,直到热点JIT启发式地确定它需要被编译.对于编译代码,它使用着色算法为寄存器分配变量和临时值,或者在寄存器溢出的情况下向RAM写入/从RAM写入.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有