簡介Java虛擬機的理論及應用

今天,Java虛擬機被發現在數十億的設備中,從手機到互聯網瀏覽器。

簡介Java虛擬機的理論及應用

它解釋的缺點是較低的性能。上世紀80年代和90年代的令人難以置信的進步使得許多重要應用程序的解釋變得可行,但是與傳統的編譯C程序相比,10個減速的因素使得Java對某些應用程序沒有吸引力。

為了保持可移植性並提高執行速度,Java開發的下一階段是在程序運行時翻譯的編譯器。在時間編譯器(JIT)中,通常會對正在運行的程序進行配置,以找到“熱”方法的位置,然後將它們編譯成虛擬機運行的本機指令集。編譯後的部分會在下一次運行程序時保存,這樣每次運行時它都可以運行得更快。這種解釋和編譯的平衡隨著時間的推移而不斷髮展,因此經常運行的Java程序很少會受到解釋的影響。

簡介Java虛擬機的理論及應用

只是時間編譯器(JIT):

通常在運行時運行的編譯器的名稱,將解釋的代碼段轉換為計算機的本機代碼。

隨著計算機的發展速度加快,編譯器可以做得更多,研究人員發明了一種方法,可以在flj上編譯Java。

Java和C或C++之間的性能差距正在縮小。E3部分在Java、Java字節碼、JVM和JIT編譯器的實現上有了更大的深度。

對於Java的設計者來說,翻譯對譯者來說最重要的是什麼?

1.易於編寫翻譯

2.更好的錯誤消息

3.小對象代碼

4.機器獨立性

簡介Java虛擬機的理論及應用

另外,一個C排序的例子把它們放在一起對麼?

在代碼片段中顯示彙編語言代碼的一個危險是,您將不知道一個完整的彙編語言程序是什麼樣子的。我們從用C語言編寫的兩個過程中推導出RISC-V代碼:一個用來交換數組元素,另一個用來對它們進行排序。

簡介Java虛擬機的理論及應用

交換的過程:

讓我們從過程交換的代碼開始。這個過程只是在內存中交換兩個位置。在從C語言翻譯成彙編語言時,我們遵循以下一般步驟:

1.將寄存器分配給程序變量。

2.為程序的主體生成代碼。

3.在整個過程調用中保存寄存器。

一個交換兩個的C程序,它的地點在內存中。

這個子部分在排序中使用這個過程作為它的例子。我們將描述這三部分中的交換過程,最後將所有的部分組合在一起。

寄存器分配的交換

如之前所述,關於參數的RISC-V的公約傳遞是使用寄存器xio到xi7。因為swap只有兩個參數,v和k,它們會在寄存器xio和xii中找到。唯一的另一個變量是temp,我們將它與寄存器x5聯繫起來。

簡介Java虛擬機的理論及應用


分享到:


相關文章: