編譯器
關於使用JIT編譯的執行環境之特徵,下列何者正確?
- A在執行程式之前,先全部翻譯成機器碼再發布
- B在執行中將經常使用的部分轉為機器碼,且能利用執行期的資訊
- C完全不使用機器碼,永遠逐條指令地解釋位元組碼
查看答案與解析
正確答案:B. 在執行中將經常使用的部分轉為機器碼,且能利用執行期的資訊
在JIT編譯中,一開始是邊解釋位元組碼邊執行,一旦找到被反覆執行的部分(熱點,hotspot),就在執行中把那裡編譯成機器碼。可以利用實際通過的分支與傳入的型別等執行期資訊,進行事前編譯難以做到的大膽最佳化。若假設落空,也具備退回解釋執行的機制。事先全部翻譯的是事前(AOT)編譯,只持續解釋的則是純粹的直譯器。
- A. 在執行前全部翻譯的是事前(AOT)編譯。
- B. 正確。在執行中轉為機器碼,且能利用執行期的資訊。
- C. 只持續解釋的是純粹的直譯器。