在支援JIT的動態語言虛擬機器中,是否有必要用區域性變數快取字段訪問

時間 2021-05-29 23:44:50

1樓:馮東

現實是,「如此機械的手工操作」還真不是能由「虛擬機器代勞的」。你的手工優化有 Lua VM 不知道的創造性知識:

function string.byte( ) 不會修改 string

function string.byte( ) 不會修改 string.byte

在 Lua 裡可沒有硬性的標準庫。string.byte( ) 可能是從任何地方來的任何東西。

2樓:Yong He

乙個是函式呼叫,乙個是簡單的區域性變數讀取。如果編譯器要優化函式呼叫並且自動快取他,那麼必須先能確定這個函式是純函式,也就是side-effect free的。除非整個語言在型別系統上支援對side-effect的判定,否則是不可能做出這個判斷的。

也就是說即便是這個函式被內聯,編譯器也不會決定快取雜湊表訪問,因為誰知道這個雜湊表是不是volatile的。

再說了,作為乙個指令碼語言JIT,執行優化的程度是有限的,一般不會進行過於aggressive的分析,畢竟把動態語言JIT出來就已經提速很多了。如果還需要進一步挖掘效能,那還是得依靠程式設計師。

虛擬機器的快照功能是如何實現的?

假設虛擬磁碟是一張畫紙,我們平時的操作就是在畫紙上寫寫畫畫,建立快照就是在畫紙上又蒙上了一層透明的紙,當你繼續寫寫畫畫的時候,就是在新的透明紙上寫寫畫畫了,什麼時候你想恢復到快照的狀態,就把透明紙抽去就得了。具體到實現,就是建立了快照後,這個磁碟檔案就處於存檔的狀態,並建立乙個新的增量磁碟檔案,再進...

為什麼兩臺KVM虛擬機器的磁碟的wwid是一樣的?

已重置 如果你想問怎麼修改UUID,可以嘗試 tune2fs dev U How do I change UUID of a disk to whatever I want?至於原因,可能只是軟體的bug VMware Knowledge Base 事不過刪 可以查一下libvirt的xml配置裡這...

阿里雲 騰訊雲虛擬機器的年平均故障次數大概是多少?

大可樂 第乙個問題 我曾經用過阿里 亞馬遜 谷歌下雲平台的雲主機,都執行平穩,沒有宕機重啟過。如果每年每台虛擬機器故障重啟 100 次,每次故障耗時 30 秒,確實sla在4個9,而且使用者體驗極差。但是這基本不會發生,如果有虛擬機器宕機重啟 在運維層面就會有對應的流程來重點保障類似的虛擬機器,並且...