本申請(qǐng)涉及計(jì)算機(jī),尤其涉及一種加載代碼文件的方法、裝置、系統(tǒng)及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著計(jì)算機(jī)技術(shù)的發(fā)展,軟件的體量越來越大。在一些實(shí)現(xiàn)方式中,為了便于對(duì)軟件的代碼進(jìn)行維護(hù)管理,可以基于代碼模塊化技術(shù)對(duì)軟件進(jìn)行優(yōu)化。代碼模塊化是通過多個(gè)獨(dú)立的、可重用的代碼文件實(shí)現(xiàn)一個(gè)程序的功能。也就是說,一個(gè)程序可能由多個(gè)代碼文件組成。通過代碼模塊化技術(shù),可以將復(fù)雜的軟件代碼分解為多個(gè)簡(jiǎn)單的、易于維護(hù)和擴(kuò)展的代碼文件,從而提高代碼的可讀性、可維護(hù)性和可重用性。
2、在軟件啟動(dòng)或者軟件運(yùn)行的過程中,可能需要將代碼文件加載到內(nèi)存。加載代碼文件的速度可能影響軟件啟動(dòng)的速度或者運(yùn)行的速度。
技術(shù)實(shí)現(xiàn)思路
1、為了解決現(xiàn)有技術(shù)的問題,本申請(qǐng)?zhí)峁┝嗽谝环N加載代碼文件的方法及裝置。
2、第一方面,本申請(qǐng)?zhí)峁┝艘环N加載代碼文件的方法,所述方法包括:
3、獲取目標(biāo)軟件對(duì)應(yīng)的待加載的多個(gè)代碼文件;
4、根據(jù)所述多個(gè)代碼文件的優(yōu)先級(jí),確定目標(biāo)代碼文件集合,所述目標(biāo)代碼文件集合包括多個(gè)目標(biāo)代碼文件,所述多個(gè)目標(biāo)代碼文件的優(yōu)先級(jí)相同;
5、將所述多個(gè)目標(biāo)代碼文件并行加載到內(nèi)存。
6、在一些可能的實(shí)現(xiàn)方式中,所述將所述多個(gè)目標(biāo)代碼文件并行加載到內(nèi)存包括:
7、調(diào)用預(yù)設(shè)接口,所述預(yù)設(shè)接口不包括互斥鎖,所述互斥鎖用于串行加載代碼文件;
8、通過所述預(yù)設(shè)接口將所述多個(gè)目標(biāo)代碼文件并行加載到內(nèi)存。
9、在一些可能的實(shí)現(xiàn)方式中,在調(diào)用預(yù)設(shè)接口之前,所述方法還包括:
10、對(duì)所述目標(biāo)軟件的代碼進(jìn)行解析,獲取并加載所述預(yù)設(shè)接口的代碼。
11、在一些可能的實(shí)現(xiàn)方式中,所述方法還包括:
12、獲取每個(gè)所述代碼文件的屬性信息,所述代碼文件的屬性信息包括所述代碼文件的優(yōu)先級(jí)的信息;
13、根據(jù)所述代碼文件的優(yōu)先級(jí),確定每個(gè)所述代碼文件在代碼文件隊(duì)列中的位置;
14、所述確定目標(biāo)代碼文件集合包括:
15、從所述代碼文件隊(duì)列的頭部確定所述目標(biāo)代碼文件。
16、在一些可能的實(shí)現(xiàn)方式中,所述目標(biāo)軟件運(yùn)行于第一設(shè)備,在將所述多個(gè)目標(biāo)代碼文件并行加載到內(nèi)存之前,所述方法還包括:
17、獲取所述第一設(shè)備的剩余計(jì)算資源量;
18、確定所述剩余計(jì)算資源量大于預(yù)設(shè)資源閾值。
19、在一些可能的實(shí)現(xiàn)方式中,在加載完所述多個(gè)目標(biāo)代碼文件之后,所述方法還包括:
20、將所述多個(gè)目標(biāo)代碼文件的代碼文件信息串行寫入代碼文件信息表,所述代碼文件信息是所述目標(biāo)代碼文件加載完成后得到的。
21、在一些可能的實(shí)現(xiàn)方式中,所述目標(biāo)軟件對(duì)應(yīng)的待加載的多個(gè)代碼文件包括共享對(duì)象(shared?object,so)庫(kù)文件。
22、第二方面,本申請(qǐng)?zhí)峁┝艘环N加載代碼文件的裝置,所述裝置包括:獲取單元,用于獲取目標(biāo)軟件對(duì)應(yīng)的待加載的多個(gè)代碼文件。確定單元,用于根據(jù)所述多個(gè)代碼文件的優(yōu)先級(jí),確定目標(biāo)代碼文件集合,所述目標(biāo)代碼文件集合包括多個(gè)目標(biāo)代碼文件,所述多個(gè)目標(biāo)代碼文件的優(yōu)先級(jí)相同。加載單元,用于將所述多個(gè)目標(biāo)代碼文件并行加載到內(nèi)存。
23、在一些可能的實(shí)現(xiàn)方式中,所述加載單元,具體用于調(diào)用預(yù)設(shè)接口,所述預(yù)設(shè)接口不包括互斥鎖,所述互斥鎖用于串行加載代碼文件;通過所述預(yù)設(shè)接口將所述多個(gè)目標(biāo)代碼文件并行加載到內(nèi)存。
24、在一些可能的實(shí)現(xiàn)方式中,所述獲取單元,還用于對(duì)所述目標(biāo)軟件的代碼進(jìn)行解析,獲取并加載所述預(yù)設(shè)接口的代碼。
25、在一些可能的實(shí)現(xiàn)方式中,所述獲取單元,還用于獲取每個(gè)所述代碼文件的屬性信息,所述代碼文件的屬性信息包括所述代碼文件的優(yōu)先級(jí)的信息。所述確定單元,具體用于根據(jù)所述代碼文件的優(yōu)先級(jí),確定每個(gè)所述代碼文件在代碼文件隊(duì)列中的位置;從所述代碼文件隊(duì)列的頭部確定所述目標(biāo)代碼文件。
26、在一些可能的實(shí)現(xiàn)方式中,所述目標(biāo)軟件運(yùn)行于第一設(shè)備。所述獲取單元,還用于獲取所述第一設(shè)備的剩余計(jì)算資源量。所述確定單元,還用于確定所述剩余計(jì)算資源量大于預(yù)設(shè)資源閾值。
27、在一些可能的實(shí)現(xiàn)方式中,所述裝置還包括信息寫入單元,所述信息寫入單元,具體用于將所述多個(gè)目標(biāo)代碼文件的代碼文件信息串行寫入代碼文件信息表,所述代碼文件信息是所述目標(biāo)代碼文件加載完成后得到的。
28、在一些可能的實(shí)現(xiàn)方式中,所述目標(biāo)軟件對(duì)應(yīng)的待加載的多個(gè)代碼文件包括so庫(kù)文件。
29、第三方面,本申請(qǐng)?zhí)峁┮环N電子設(shè)備,包括:
30、一個(gè)或多個(gè)處理器;
31、存儲(chǔ)裝置,其上存儲(chǔ)有一個(gè)或多個(gè)程序,
32、當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行,使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)第一方面中任一所述的方法。
33、第四方面,本申請(qǐng)?zhí)峁┮环N計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其中,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面中任一所述的方法。
34、第五方面,本申請(qǐng)?zhí)峁┮环N計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品在設(shè)備上運(yùn)行時(shí),使得所述設(shè)備執(zhí)行第一方面所述的方法。
35、由此可見,本申請(qǐng)具有如下有益效果:
36、本申請(qǐng)實(shí)施例提供了一種加載代碼文件的方法、裝置及存儲(chǔ)介質(zhì)。具體地,在加載目標(biāo)軟件對(duì)應(yīng)的代碼文件時(shí),首先可以獲取多個(gè)待加載的代碼文件。接著,可以根據(jù)代碼文件的優(yōu)先級(jí),確定目標(biāo)代碼文件集合。目標(biāo)代碼文件集合中包括多個(gè)目標(biāo)代碼文件,且任意兩個(gè)目標(biāo)代碼文件的優(yōu)先級(jí)相同。在確定了目標(biāo)代碼文件集合之后,可以將多個(gè)目標(biāo)代碼文件并行加載到內(nèi)存。這樣,一次加載中可以并行加載多個(gè)優(yōu)先級(jí)相同的代碼文件,無需逐個(gè)加載目標(biāo)軟件的代碼文件。如此,通過并行加載目標(biāo)代碼文件到內(nèi)存,提高了代碼文件的加載速度,也就提高了軟件的啟動(dòng)速度和運(yùn)行速度。
1.一種加載代碼文件的方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述多個(gè)目標(biāo)代碼文件并行加載到內(nèi)存包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在調(diào)用預(yù)設(shè)接口之前,所述方法還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)軟件運(yùn)行于第一設(shè)備,在將所述多個(gè)目標(biāo)代碼文件并行加載到內(nèi)存之前,所述方法還包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,在加載完所述多個(gè)目標(biāo)代碼文件之后,所述方法還包括:
7.根據(jù)權(quán)利要求1-6任一項(xiàng)所述的方法,其特征在于,所述目標(biāo)軟件對(duì)應(yīng)的待加載的多個(gè)代碼文件包括共享對(duì)象so庫(kù)文件。
8.一種加載代碼文件的裝置,其特征在于,所述裝置包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種計(jì)算機(jī)可讀介質(zhì),其特征在于,其上存儲(chǔ)有計(jì)算機(jī)程序,其中,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-7中任一所述的方法。