2011-03-22 71 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

你不能在任何寄存器中放入一個字符串(任何體面的長度)。

相關問題