本申請涉及計算機,尤其涉及一種方法編譯方法、裝置、系統(tǒng)及存儲介質(zhì)。
背景技術(shù):
1、隨著計算機技術(shù)的發(fā)展,終端設(shè)備上往往會安裝有各種各樣的軟件。軟件從關(guān)閉狀態(tài)到運行狀態(tài)可以被稱為軟件的啟動過程。軟件在啟動過程中的性能表現(xiàn)往往會對用戶的體驗有較大的影響。例如,如果軟件啟動耗時較長,就會較為顯著地降低用戶體驗。
2、因此,存在降低軟件在啟動過程中耗時的需求。
技術(shù)實現(xiàn)思路
1、為了解決現(xiàn)有技術(shù)的問題,本申請?zhí)峁┝嗽谝环N方法編譯方法及裝置。
2、第一方面,本申請?zhí)峁┝艘环N方法編譯方法,所述方法包括:
3、響應(yīng)于目標軟件處于啟動狀態(tài),停止執(zhí)行目標線程,所述目標線程用于編譯所述目標軟件中的目標方法;
4、響應(yīng)于所述目標軟件啟動完成,開始執(zhí)行所述目標線程,以編譯所述目標方法。
5、在一些可能的實現(xiàn)方式中,在停止執(zhí)行所述目標線程之前,所述方法還包括:
6、根據(jù)所述目標方法構(gòu)建目標對象;
7、將所述目標對象加入編譯隊列,所述目標線程用于從所述編譯隊列中取出所述目標對象并進行編譯。
8、在一些可能的實現(xiàn)方式中,在停止執(zhí)行所述目標線程之后,所述方法還包括:
9、將添加方法加載到內(nèi)存,所述添加方法用于將所述編譯隊列中的對象的標識寫入預(yù)設(shè)文件;
10、擦除所述內(nèi)存中加載的所述添加方法。
11、在一些可能的實現(xiàn)方式中,在編譯完所述目標方法之后,所述方法還包括:
12、擦除所述內(nèi)存中加載的刪除方法,所述刪除方法用于在所述編譯隊列中的對象被編譯之后,將所述對象的標識從所述預(yù)設(shè)文件刪除。
13、在一些可能的實現(xiàn)方式中,所述目標軟件運行于第一設(shè)備,在開始執(zhí)行所述目標線程之前,所述方法還包括:
14、響應(yīng)于所述目標軟件啟動完成,獲取剩余資源量,所述剩余資源量指示所述目標線程能夠調(diào)用的資源量;
15、確定所述剩余資源量大于預(yù)設(shè)資源量。
16、在一些可能的實現(xiàn)方式中,所述目標軟件運行于第一設(shè)備,在開始執(zhí)行所述目標線程之后,所述方法還包括:
17、獲取用戶觸發(fā)的第一操作,停止執(zhí)行所述目標線程;
18、響應(yīng)于所述第一操作被處理完畢,繼續(xù)執(zhí)行所述目標線程。
19、在一些可能的實現(xiàn)方式中,所述目標軟件包括第一方法,所述方法還包括:
20、獲取所述第一方法的被調(diào)用的次數(shù);
21、響應(yīng)于所述第一方法被調(diào)用的次數(shù)大于預(yù)設(shè)閾值,將所述第一方法確定為所述目標方法。
22、第二方面,本申請?zhí)峁┝艘环N方法編譯裝置,所述裝置包括:停止單元,用于響應(yīng)于目標軟件處于啟動狀態(tài),停止執(zhí)行目標線程,所述目標線程用于編譯所述目標軟件中的目標方法。啟動單元,用于響應(yīng)于所述目標軟件啟動完成,開始執(zhí)行所述目標線程,以編譯所述目標方法。
23、在一些可能的實現(xiàn)方式中,所述停止單元,具體與根據(jù)所述目標方法構(gòu)建目標對象。將所述目標對象加入編譯隊列,所述目標線程用于從所述編譯隊列中取出所述目標對象并進行編譯。
24、在一些可能的實現(xiàn)方式中,所述裝置還包括方法擦除單元。所述方法擦除單元,用于將添加方法加載到內(nèi)存,所述添加方法用于將所述編譯隊列中的對象的標識寫入預(yù)設(shè)文件。擦除所述內(nèi)存中加載的所述添加方法。
25、在一些可能的實現(xiàn)方式中,所述方法擦除單元,還用于擦除所述內(nèi)存中加載的刪除方法,所述刪除方法用于在所述編譯隊列中的對象被編譯之后,將所述對象的標識從所述預(yù)設(shè)文件刪除。
26、在一些可能的實現(xiàn)方式中,所述目標軟件運行于第一設(shè)備。所述啟動單元,具體用于響應(yīng)于所述目標軟件啟動完成,獲取剩余資源量,所述剩余資源量指示所述目標線程能夠調(diào)用的資源量,確定所述剩余資源量大于預(yù)設(shè)資源量。
27、在一些可能的實現(xiàn)方式中,所述目標軟件運行于第一設(shè)備。所述停止單元,還用于獲取用戶觸發(fā)的第一操作,停止執(zhí)行所述目標線程。所述啟動單元,還用于響應(yīng)于所述第一操作被處理完畢,繼續(xù)執(zhí)行所述目標線程。
28、在一些可能的實現(xiàn)方式中,所述目標軟件包括第一方法。所述裝置還包括確定單元。所述確定單元,用于獲取所述第一方法的被調(diào)用的次數(shù);響應(yīng)于所述第一方法被調(diào)用的次數(shù)大于預(yù)設(shè)閾值,將所述第一方法確定為所述目標方法。
29、第三方面,本申請?zhí)峁┮环N電子設(shè)備,包括:
30、一個或多個處理器;
31、存儲裝置,其上存儲有一個或多個程序,
32、當所述一個或多個程序被所述一個或多個處理器執(zhí)行,使得所述一個或多個處理器實現(xiàn)第一方面中任一所述的方法。
33、第四方面,本申請?zhí)峁┮环N計算機可讀介質(zhì),其上存儲有計算機程序,其中,所述程序被處理器執(zhí)行時實現(xiàn)第一方面中任一所述的方法。
34、第五方面,本申請?zhí)峁┮环N計算機程序產(chǎn)品,所述計算機程序產(chǎn)品在設(shè)備上運行時,使得所述設(shè)備執(zhí)行第一方面所述的方法。
35、由此可見,本申請具有如下有益效果:
36、在本申請?zhí)峁┑募夹g(shù)方案中,對于目標軟件中需要編譯為機器碼的目標方法,可以在目標軟件啟動完成后再進行編譯。具體地,如果目標方法的編譯有目標線程執(zhí)行,那么在目標軟件處于啟動狀態(tài)時,可以停止執(zhí)行目標線程。這樣,由于目標線程的執(zhí)行被停止,目標方法的編譯也會相應(yīng)地被停止。而在目標軟件啟動完成之后,可以開始執(zhí)行目標線程,以便對目標方法進行編譯。這樣,在目標軟件啟動的過程中,由于目標方法的編譯被停止,也就不會占用設(shè)備的資源。相應(yīng)地,設(shè)備就可以將更多的資源用于啟動目標軟件,更快地完成目標軟件啟動過程中的數(shù)據(jù)處理任務(wù),從而減少目標軟件啟動時所消耗的時間。另外,在目標軟件啟動之后,目標線程可以對目標方法進行編譯。這樣,在需要運行目標方法時,可以執(zhí)行編譯后目標方法,無需重新對目標方法進行編譯,也保證了軟件運行過程中的響應(yīng)速度。
1.一種方法編譯方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在停止執(zhí)行所述目標線程之前,所述方法還包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在停止執(zhí)行所述目標線程之后,所述方法還包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在編譯完所述目標方法之后,所述方法還包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標軟件運行于第一設(shè)備,在開始執(zhí)行所述目標線程之前,所述方法還包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標軟件運行于第一設(shè)備,在開始執(zhí)行所述目標線程之后,所述方法還包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標軟件包括第一方法,所述方法還包括:
8.一種方法編譯裝置,其特征在于,所述裝置包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種計算機可讀介質(zhì),其特征在于,其上存儲有計算機程序,其中,所述程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1-7中任一所述的方法。