什麼是JIT編譯(即時編譯)
在程式執行中,將經常執行的部分編譯成機器碼的方式。可進行利用執行時資訊的最佳化。用於Java與JavaScript的執行環境等。
日文名稱: JITコンパイル
「JIT編譯(即時編譯)」出現在3領域的5道練習題中(編譯器, 連結器與載入器與執行檔格式, 效能評估與效能剖析等)。
這個名詞所屬的領域: 編譯器
在程式執行中,將經常執行的部分編譯成機器碼的方式。可進行利用執行時資訊的最佳化。用於Java與JavaScript的執行環境等。
日文名稱: JITコンパイル
「JIT編譯(即時編譯)」出現在3領域的5道練習題中(編譯器, 連結器與載入器與執行檔格式, 效能評估與效能剖析等)。
這個名詞所屬的領域: 編譯器
正確答案:B. 在執行中將經常使用的部分轉為機器碼,且能利用執行期的資訊
在JIT編譯中,一開始是邊解釋位元組碼邊執行,一旦找到被反覆執行的部分(熱點,hotspot),就在執行中把那裡編譯成機器碼。可以利用實際通過的分支與傳入的型別等執行期資訊,進行事前編譯難以做到的大膽最佳化。若假設落空,也具備退回解釋執行的機制。事先全部翻譯的是事前(AOT)編譯,只持續解釋的則是純粹的直譯器。
在JIT編譯中,一開始是邊解釋位元組碼邊執行,一旦找到被反覆執行的部分(熱點,hotspot),就在執行中把那裡編譯成機器碼。
關於使用JIT編譯的執行環境之特徵,下列何者正確?移除空白並切分為單字的是詞法分析,在執行時轉換為機器碼的則是JIT編譯。
關於編譯器的語法分析所進行的工作,下列何者正確?實際上,也常使用結合兩者的方式,例如先翻譯成位元組碼再解釋,並對經常使用的部分進行JIT編譯。
關於編譯器與直譯器的差異,下列何者正確?像JIT編譯器那樣在執行中產生程式碼的情況,則是切換寫入與執行的權限來使用。
藉由不讓記憶體分頁同時具備「可寫入」與「可執行」(W^X,寫入與執行分離),較容易防禦的攻擊為下列何者?第一次執行時,快取、TLB與分支預測器是從空的狀態開始,檔案不在作業系統的快取中而必須從磁碟讀取,使用JIT編譯器的語言還會進行轉換為機器碼的處理。
測量程式的執行時間時,常會重複同樣的測量多次,並排除最初的幾次結果,其理由下列何者正確?語法分析 詞法分析 返回位址 頁表 TLB(轉譯後備緩衝區) 分支預測 中斷 中間表示法(IR) 共同子運算式消除 向量化