[發(fā)明專利]對程序預編譯的方法及裝置有效
| 申請?zhí)枺?/td> | 201611254648.7 | 申請日: | 2016-12-30 |
| 公開(公告)號: | CN106775893B | 公開(公告)日: | 2020-03-17 |
| 發(fā)明(設(shè)計)人: | 董俊杰;曲雯雯;楊亮 | 申請(專利權(quán))人: | 北京小米移動軟件有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F9/445 |
| 代理公司: | 北京三高永信知識產(chǎn)權(quán)代理有限責任公司 11138 | 代理人: | 林錦瀾 |
| 地址: | 100085 北京市海淀區(qū)清河*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 程序 預編 方法 裝置 | ||
本公開是關(guān)于一種對程序預編譯的方法及裝置,屬于電子技術(shù)應用領(lǐng)域。所述方法包括:獲取目標程序的優(yōu)化信息,所述優(yōu)化信息中包括所述目標程序中至少一個待優(yōu)化函數(shù)的函數(shù)名以及每個待優(yōu)化函數(shù)對應的運行階段;根據(jù)所述優(yōu)化信息,對每個運行階段對應的待優(yōu)化函數(shù)進行編譯。由于智能設(shè)備在對目標程序進行預編譯的過程中,可以僅對優(yōu)化信息中記載的函數(shù)進行編譯,而無需再對該目標程序中的所有函數(shù)進行編譯,因此有效提高了對該目標程序的編譯效率,進而提高了系統(tǒng)啟動和運行的速度。
技術(shù)領(lǐng)域
本公開涉及電子技術(shù)應用領(lǐng)域,特別涉及一種對程序預編譯的方法及裝置。
背景技術(shù)
智能設(shè)備在首次啟動時,或者在操作系統(tǒng)更新后,需要先對系統(tǒng)中所有已安裝程序進行預編譯。該預編譯的過程可以包括:將每個程序中的各個函數(shù)編譯成預設(shè)格式(例如DEX格式)的文件,之后通過虛擬機將該預設(shè)格式的文件編譯成智能設(shè)備所支持的機器碼,并保存該機器碼。當某個程序被觸發(fā)時,智能設(shè)備可以直接執(zhí)行該程序?qū)臋C器碼,從而實現(xiàn)程序的快速啟動和運行。
相關(guān)技術(shù)中,智能設(shè)備在首次啟動時,或者在操作系統(tǒng)更新后,需要將每個程序中的所有函數(shù)全部編譯為機器碼,該編譯時間較長,系統(tǒng)啟動和運行速度較慢。
發(fā)明內(nèi)容
為了解決相關(guān)技術(shù)中程序啟動和運行速度較慢的問題,本公開提供了一種對程序預編譯的方法及裝置。所述技術(shù)方案如下:
根據(jù)本公開實施例的第一方面,提供一種對程序預編譯的方法,所述方法包括:
獲取目標程序的優(yōu)化信息,所述優(yōu)化信息中包括所述目標程序中至少一個待優(yōu)化函數(shù)的函數(shù)名以及每個待優(yōu)化函數(shù)對應的運行階段;
根據(jù)所述優(yōu)化信息,對每個運行階段對應的待優(yōu)化函數(shù)進行編譯。
可選的,所述獲取目標程序的優(yōu)化信息,包括:
向服務器發(fā)送針對所述目標程序的優(yōu)化信息的獲取請求,所述獲取請求中包括所述目標程序的標識;
接收服務器發(fā)送的所述目標程序的優(yōu)化信息。
可選的,所述每個待優(yōu)化函數(shù)對應的運行階段包括:啟動階段、開始階段和正常運行階段,
所述根據(jù)所述優(yōu)化信息,對每個運行階段對應的待優(yōu)化函數(shù)進行編譯,包括:
在所述目標程序啟動前,采用預編譯算法對與所述啟動階段對應的待優(yōu)化函數(shù)進行編譯;
在所述目標程序的啟動階段,采用即時編譯算法對與所述開始運行階段對應的待優(yōu)化函數(shù)進行動態(tài)編譯;
在所述目標程序的開始運行階段,采用即時編譯算法對與所述正常運行階段對應的待優(yōu)化函數(shù)進行動態(tài)編譯。
可選的,所述方法還包括:
保存對待優(yōu)化函數(shù)進行編譯后得到的機器碼。
可選的,所述方法還包括:
在第一程序運行的過程中,每隔預設(shè)時間段,統(tǒng)計一次所述第一程序中各函數(shù)的調(diào)用次數(shù),所述第一程序為所述智能設(shè)備中安裝的任一程序;
向服務器發(fā)送所述第一程序的統(tǒng)計信息,所述統(tǒng)計信息中包括所述第一程序中每個函數(shù)的函數(shù)名、每個函數(shù)的調(diào)用次數(shù)以及每個函數(shù)對應的運行階段。
可選的,所述預設(shè)時間段與所述第一程序的運行時長正相關(guān)。
可選的,所述方法還包括:
檢測所述第一程序是否為預設(shè)程序;
當所述第一程序為預設(shè)程序時,根據(jù)所述第一程序的統(tǒng)計信息,將第一程序中,調(diào)用次數(shù)大于第一閾值的函數(shù)的函數(shù)名和對應的運行階段記錄在所述第一程序的優(yōu)化信息中。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京小米移動軟件有限公司,未經(jīng)北京小米移動軟件有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611254648.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





