我知道從寄存器訪問數據比訪問內存要快得多。讓我們常規說,我有這樣的代碼:我可以使用我的CPU寄存器來提高速度性能嗎?
def anto = "Is this gets stored in register?"
println(anto)
,如果我需要anto
被存儲在寄存器對性能的考慮,該怎麼做?編程語言有什麼方法可以做到這一點,主要是在Groovy中? 我想在C語言中,我們可以通過使用extern
關鍵字來做到這一點,那麼在Groovy中呢?
我知道從寄存器訪問數據比訪問內存要快得多。讓我們常規說,我有這樣的代碼:我可以使用我的CPU寄存器來提高速度性能嗎?
def anto = "Is this gets stored in register?"
println(anto)
,如果我需要anto
被存儲在寄存器對性能的考慮,該怎麼做?編程語言有什麼方法可以做到這一點,主要是在Groovy中? 我想在C語言中,我們可以通過使用extern
關鍵字來做到這一點,那麼在Groovy中呢?
如果要使用這種低級功能,請使用匯編程序。
即使在C語言中,編譯器現在也會忽略「register」關鍵字,因爲編譯器在大多數情況下將變量賦值給寄存器的效率比人類更高。
你不能。 Groovy編譯爲運行在JVM中的Java字節碼。並且沒有辦法從JVM專門將數據分配給CPU寄存器。
因此JVM負責照顧它?就像它會有算法在任何特定時間有效使用可用寄存器一樣? – 2011-03-22 13:09:06
是的,JVM儘可能有效地運行代碼 – 2011-03-22 13:13:39
好:)謝謝:) – 2011-03-22 13:19:09
你不能在任何寄存器中放入一個字符串(任何體面的長度)。
從何時groovy編譯爲非虛擬機代碼? – Ingo 2011-03-22 13:06:23
我想一個更好的問題是,你如何將一個字符串存儲在一個寄存器中,這樣它就會產生任何差異(即不僅僅是指針)...... – Blindy 2011-03-22 13:23:57