JVM指令系統的組成及使用
本文向大家簡單介紹一下JVM指令系統 的概念和用法,JVM指令系統是以Java語言的實現為目的設計的,其中包含了用于調用方法和監視多先程系統的指令。
JVM指令系統
JVM指令系統同其他計算機的指令系統極其相似。Java指令也是由操作碼和操作數兩部分組成。操作碼為8位二進制數,操作數進緊隨在操作碼的后面,其長度根據需要而不同。操作碼用于指定一條指令操作的性質(在這里采用匯編符號的形式進行說明),如iload表示從存儲器中裝入一個整數,anewarray表示為一個新數組分配空間,iand表示兩個整數的“與”,ret用于流程控制,表示從對某一方法的調用中返回。當長度大于8位時,操作數被分為兩個以上字節存放。
JVM采用了"big endian"的編碼方式來處理這種情況,即高位bits存放在低字節中。這同 Motorola及其他的RISC CPU采用的編碼方式是一致的,而與Intel采用的“little endian”的編碼方式即低位bits存放在低位字節的方法不同。
JVM指令系統是以Java語言的實現為目的設計的,其中包含了用于調用方法和監視多先程系統的指令。Java的8位操作碼的長度使得JVM最多有256種指令,已使用了160多種操作碼。
所有的CPU均包含用于保存系統狀態和處理器所需信息的寄存器組。如果虛擬機定義較多的寄存器,便可以從中得到更多的信息而不必對棧或內存進行訪問,這有利于提高運行速度。然而,如果虛擬機中的寄存器比實際CPU的寄存器多,在實現虛擬機時就會占用處理器大量的時間來用常規存儲器模擬寄存器,這反而會降低虛擬機的效率。針對這種情況,JVM只設置了4個最為常用的寄存器。它們是:
◆pc程序計數器
◆optop操作數棧頂指針
◆frame當前執行環境指針
vars指向當前執行環境中***個局部變量的指針所有寄存器均為32位。pc用于記錄程序的執行。optop,frame和vars用于記錄指向Java棧區的指針。
【編輯推薦】
- JVM內存溢出的兩大類型及解決方案
- Tomcat配置JVM參數巧妙方法
- JVM基礎:解析JVM分代垃圾回收策略
- JVM for Linux JIT診斷技術簡介
- 巧解IBM JVM for Linux onPOWER性能調優