[發明專利]動態編譯方法及裝置有效
| 申請號: | 201410727430.3 | 申請日: | 2014-12-03 |
| 公開(公告)號: | CN105718298B | 公開(公告)日: | 2019-02-15 |
| 發明(設計)人: | 傅杰;靳國杰;高翔;王劍 | 申請(專利權)人: | 龍芯中科技術有限公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F8/41 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司 11205 | 代理人: | 楊貝貝;黃健 |
| 地址: | 100095 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 動態 編譯 方法 裝置 | ||
本發明實施例提供一種動態編譯方法及裝置,其中,所述動態編譯方法包括:在當前編譯隊列中存在待編譯的熱點方法時,獲取所述當前編譯隊列中各待編譯的熱點方法的運行速度和大小;根據所述各待編譯的熱點方法的運行速度和大小,確定所述各待編譯的熱點方法的優先級;調度所述當前編譯隊列中優先級最高的熱點方法進行編譯。本發明實施例提供的動態編譯方法及裝置,可以大幅度提升編譯的吞吐量,有效提高虛擬機的響應速度。
技術領域
本發明實施例涉及虛擬機技術,尤其涉及一種動態編譯方法及裝置。
背景技術
虛擬機(Virtual Machine,簡稱VM)指通過軟件(或者輔以少量硬件支持)的方法來虛擬出一臺具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機,并且這臺虛擬的計算機通常還支持一套自己的指令集,稱為虛擬機指令集。虛擬機依托于本地的物理機,通過其執行引擎對給定的虛擬機指令序列(即目標程序)在本地機器上模擬執行。虛擬機的執行引擎可以由解釋器來實現。由于解釋器具有可移植性高、實現代價低和內存占用少等特點,大多數虛擬機的執行引擎都包含解釋器。解釋器以一條虛擬機指令為單位進行取指令、譯碼和執行。但是單純的解釋執行性能低下,鑒于此,虛擬機中引入動態編譯系統以提升虛擬機性能。其中,編譯器是動態編譯系統的核心,編譯器以一組連續的虛擬機指令序列(基本塊、函數或方法)為單位整體編譯成本地CPU指令序列(也稱為本地方法),然后由硬件直接執行編譯后的本地方法。由于編譯器避免了重復的取指令和譯碼的過程,同時又在編譯時進行了大量卓有成效的優化,因而編譯器的性能可以達到解釋器的性能的10倍以上。由于編譯器是在程序運行過程中對虛擬機所檢測到的執行頻度較高的方法(也稱為熱點方法)進行動態編譯的,故又將其稱為即時編譯器(Just-in-time Compiler,簡稱JIT)。
現有的虛擬機中一般同時包含有解釋器和即時編譯器,并采用混合運行模式來執行應用程序。所謂混合運行模式是指由解釋執行和硬件直接執行相混合的模式,具體為:對于程序中的任意一個方法m,均由解釋器開始執行;若方法m的執行頻度較高,則虛擬機調用即時編譯器將方法m編譯成本地方法,然后由硬件直接執行編譯生成的本地方法。由于解釋器的解釋執行的性能較低,故讓程序中盡量多的方法通過硬件直接執行是提升虛擬機性能的關鍵。但是,和傳統C/C++等靜態編譯不同,即時編譯器是在程序運行過程中進行動態編譯的,這會引入額外的運行時開銷。如果編譯的方法過多,動態編譯將需占用大量的計算機資源,使得程序的正常執行受到影響,虛擬機對外界的響應變得遲鈍。相反,如果編譯的方法過少,大多數方法將由解釋器執行,造成程序運行速度同樣非常緩慢。故而,現在亟需一種動態編譯方法,以優化動態編譯過程中虛擬機的系統性能。
發明內容
本發明實施例提供一種動態編譯方法及裝置,以提升虛擬機動態編譯的吞吐量及提高虛擬機的響應速度。
第一方面,本發明實施例提供一種動態編譯方法,其中,所述方法包括:
在當前編譯隊列中存在待編譯的熱點方法時,獲取所述當前編譯隊列中各待編譯的熱點方法的運行速度和大小;
根據所述各待編譯的熱點方法的運行速度和大小,確定所述各待編譯的熱點方法的優先級;
調度所述當前編譯隊列中優先級最高的熱點方法進行編譯。
根據第一方面,在第一方面的第一種可能的實現方式中,所述調度所述當前編譯隊列中優先級最高的熱點方法進行編譯之后,還包括:
將所述優先級最高的熱點方法的編譯狀態置為已編譯。
根據第一方面,在第一方面的第二種可能的實現方式中,所述調度所述當前編譯隊列中優先級最高的熱點方法進行編譯之后,還包括:
將所述優先級最高的熱點方法從所述當前編譯隊列中刪除。
根據第一方面,在第一方面的第三種可能的實現方式中,所述獲取當前編譯隊列中各熱點方法的運行速度和大小之后,還包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于龍芯中科技術有限公司,未經龍芯中科技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410727430.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于虛擬機集群的回滾方法及系統和服務器
- 下一篇:輸電線路推拉式防鳥刺裝置





