2011-03-22 54 views
0

我知道从寄存器访问数据比访问内存要快得多。让我们常规说,我有这样的代码:我可以使用我的CPU寄存器来提高速度性能吗?

def anto = "Is this gets stored in register?" 
println(anto) 

,如果我需要anto被存储在寄存器对性能的考虑,该怎么做?编程语言有什么方法可以做到这一点,主要是在Groovy中? 我想在C语言中,我们可以通过使用extern关键字来做到这一点,那么在Groovy中呢?

+0

从何时groovy编译为非虚拟机代码? – Ingo 2011-03-22 13:06:23

+0

我想一个更好的问题是,你如何将一个字符串存储在一个寄存器中,这样它就会产生任何差异(即不仅仅是指针)...... – Blindy 2011-03-22 13:23:57

回答

2

如果要使用这种低级功能,请使用汇编程序。

即使在C语言中,编译器现在也会忽略“register”关键字,因为编译器在大多数情况下将变量赋值给寄存器的效率比人类更高。

6

你不能。 Groovy编译为运行在JVM中的Java字节码。并且没有办法从JVM专门将数据分配给CPU寄存器。

+0

因此JVM负责照顾它?就像它会有算法在任何特定时间有效使用可用寄存器一样? – 2011-03-22 13:09:06

+1

是的,JVM尽可能有效地运行代码 – 2011-03-22 13:13:39

+0

好:)谢谢:) – 2011-03-22 13:19:09

0

你不能在任何寄存器中放入一个字符串(任何体面的长度)。

相关问题