本技術(shù)涉及計算機(jī),并且更具體地,涉及計算機(jī)中一種小程序運(yùn)行方法、裝置、存儲介質(zhì)和電子設(shè)備。
背景技術(shù):
1、現(xiàn)如今,隨著信息技術(shù)的不斷發(fā)展,應(yīng)用程序?yàn)榱素S富所提供的功能種類,研發(fā)出各項(xiàng)功能對應(yīng)的小程序,從而無需下載各項(xiàng)功能對應(yīng)的應(yīng)用程序,在使用一個應(yīng)用程序即可使用多個不同功能種類的功能,但是隨著小程序的廣泛應(yīng)用,提高小程序的啟動效率成為亟待解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供了一種小程序運(yùn)行方法、裝置、存儲介質(zhì)和電子設(shè)備,該方法能夠通過將第一目標(biāo)函數(shù)處理為延遲函數(shù),通過進(jìn)行延遲處理的延遲函數(shù)減少需要進(jìn)行解析和編譯的函數(shù)數(shù)量,進(jìn)而縮短小程序的啟動時長,提高了小程序啟動的高效性。
2、第一方面,提供了一種小程序運(yùn)行方法,該方法包括:
3、針對小程序的啟動操作,獲取所述小程序中第一目標(biāo)函數(shù)的嵌套層數(shù),基于所述嵌套層數(shù)確定所述第一目標(biāo)函數(shù)的函數(shù)類型,所述第一目標(biāo)函數(shù)為所述小程序中的任一函數(shù);
4、若所述函數(shù)類型為延遲解析函數(shù)類型,則對所述第一目標(biāo)函數(shù)的函數(shù)體和所述第一目標(biāo)函數(shù)對應(yīng)的父函數(shù)進(jìn)行簡化處理,以得到第二目標(biāo)函數(shù);
5、基于所述第一目標(biāo)函數(shù)的函數(shù)描述信息生成所述第一目標(biāo)函數(shù)對應(yīng)的簡化字節(jié)碼對象,將所述簡化字節(jié)碼對象添加至所述第二目標(biāo)函數(shù),得到所述第二目標(biāo)函數(shù)對應(yīng)的延遲函數(shù),所述函數(shù)描述信息用于表征所述第一目標(biāo)函數(shù)的基礎(chǔ)信息,所述延遲函數(shù)為響應(yīng)于所述啟動操作控制所述小程序啟動時延遲解析的函數(shù)。
6、通過上述技術(shù)方案,能夠通過獲取第一目標(biāo)函數(shù)的嵌套層數(shù),基于嵌套層數(shù)確實(shí)第一目標(biāo)函數(shù)的函數(shù)類型,在第一目標(biāo)函數(shù)的函數(shù)類型為延遲解析函數(shù)類型的情況下,將第一目標(biāo)函數(shù)處理為延遲函數(shù),從而通過將第一目標(biāo)函數(shù)處理為延遲函數(shù),通過進(jìn)行延遲處理的延遲函數(shù)減少需要進(jìn)行解析和編譯的函數(shù)數(shù)量,進(jìn)而縮短小程序的啟動時長,提高了小程序啟動的高效性。
7、結(jié)合第一方面,在某些可能的實(shí)現(xiàn)方式中,所述獲取所述小程序中第一目標(biāo)函數(shù)的嵌套層數(shù),基于所述嵌套層數(shù)確定所述第一目標(biāo)函數(shù)的函數(shù)類型,包括:
8、獲取所述小程序中第一目標(biāo)函數(shù)對應(yīng)的描述結(jié)構(gòu)體,基于所述描述結(jié)構(gòu)體中的層數(shù)字段確定所述第一目標(biāo)函數(shù)的嵌套層數(shù),將所述嵌套層數(shù)與預(yù)設(shè)層數(shù)進(jìn)行比較;
9、基于所述嵌套層數(shù)和所述預(yù)設(shè)層數(shù)的比較結(jié)果確定所述第一目標(biāo)函數(shù)的函數(shù)類型。
10、結(jié)合第一方面和上述實(shí)現(xiàn)方式,在某些可能的實(shí)現(xiàn)方式中,對所述第一目標(biāo)函數(shù)中的函數(shù)體和所述第一目標(biāo)函數(shù)對應(yīng)的父函數(shù)進(jìn)行簡化處理,以得到第二目標(biāo)函數(shù),包括:
11、獲取預(yù)設(shè)字節(jié)碼,將所述預(yù)設(shè)字節(jié)碼替換所述第一目標(biāo)函數(shù)的函數(shù)體中的字節(jié)碼,得到所述第一目標(biāo)函數(shù)對應(yīng)的延遲標(biāo)記,所述預(yù)設(shè)字節(jié)碼的內(nèi)容為預(yù)設(shè)內(nèi)容;
12、在所述第一目標(biāo)函數(shù)的父函數(shù)中添加所述延遲標(biāo)記和所述預(yù)設(shè)字節(jié)碼,以得到所述第一目標(biāo)函數(shù)對應(yīng)的第二目標(biāo)函數(shù)。
13、通過上述技術(shù)方案,對第一目標(biāo)函數(shù)進(jìn)行簡化處理,從而得到初始化時間縮短且內(nèi)存減小的第二目標(biāo)函數(shù),以提高小程序啟動的高效性。
14、結(jié)合第一方面和上述實(shí)現(xiàn)方式,在某些可能的實(shí)現(xiàn)方式中,所述基于所述第一目標(biāo)函數(shù)的函數(shù)描述信息生成所述第一目標(biāo)函數(shù)對應(yīng)的簡化字節(jié)碼對象,將所述簡化字節(jié)碼對象添加至所述第二目標(biāo)函數(shù),包括:
15、基于所述第一目標(biāo)函數(shù)的函數(shù)描述信息生成所述第一目標(biāo)函數(shù)對應(yīng)的簡化字節(jié)碼對象,將所述簡化字節(jié)碼對象添加至所述第二目標(biāo)函數(shù);
16、獲取所述函數(shù)描述信息中的描述字段,將描述字段添加至所述第二目標(biāo)函數(shù)對應(yīng)的執(zhí)行對象中。
17、通過上述技術(shù)方案,能夠根據(jù)簡化字節(jié)碼對象和描述字段,使得第二目標(biāo)函數(shù)能夠被識別為需要延遲解析的函數(shù),且保證函數(shù)能夠被恢復(fù)。
18、結(jié)合第一方面和上述實(shí)現(xiàn)方式,在某些可能的實(shí)現(xiàn)方式中,所述得到所述第二目標(biāo)函數(shù)對應(yīng)的延遲函數(shù)之后,還包括:
19、基于所述延遲函數(shù)和啟動函數(shù)啟動所述小程序,所述啟動函數(shù)為所述小程序中除了所述延遲函數(shù)外的其他函數(shù);
20、若在所述小程序啟動后調(diào)用所述延遲函數(shù),則對所述延遲函數(shù)進(jìn)行全量解析,恢復(fù)所述延遲函數(shù)為所述第一目標(biāo)函數(shù),執(zhí)行所述第一目標(biāo)函數(shù)。
21、通過上述技術(shù)方案,通過延遲解析第一目標(biāo)函數(shù)函數(shù),并通過在調(diào)用第一目標(biāo)函數(shù)對第一目標(biāo)函數(shù)進(jìn)行解析,從而提高小程序的啟動效率且保證小程序功能的執(zhí)行。
22、結(jié)合第一方面和上述實(shí)現(xiàn)方式,在某些可能的實(shí)現(xiàn)方式中,所述對所述延遲函數(shù)進(jìn)行全量解析,恢復(fù)所述延遲函數(shù)為得到所述第一目標(biāo)函數(shù),執(zhí)行所述第一目標(biāo)函數(shù),包括:
23、對所述延遲函數(shù)進(jìn)行檢測得到描述字段,基于所述描述字段確定所述延遲函數(shù)為延遲解析函數(shù)類型;
24、刪除所述延遲函數(shù)中的描述字段,將所述延遲函數(shù)恢復(fù)為所述第一目標(biāo)函數(shù)的函數(shù)狀態(tài);
25、基于所述簡化字節(jié)碼對象執(zhí)行所述延遲函數(shù)對應(yīng)的函數(shù)體解析和字節(jié)碼生成,得到所述延遲函數(shù)對應(yīng)的第一目標(biāo)函數(shù);
26、執(zhí)行所述第一目標(biāo)函數(shù)。
27、結(jié)合第一方面和上述實(shí)現(xiàn)方式,在某些可能的實(shí)現(xiàn)方式中,獲取所述第一目標(biāo)函數(shù)對應(yīng)的閉包變量標(biāo)識,所述閉包變量標(biāo)識用于表征所述目標(biāo)函數(shù)是否包括閉包變量;
28、獲取所述第一目標(biāo)函數(shù)對應(yīng)的閉包變量標(biāo)識,所述閉包變量標(biāo)識用于表征所述第一目標(biāo)函數(shù)是否包括閉包變量;
29、若所述第一目標(biāo)函數(shù)包括所述閉包變量,則基于所述第一目標(biāo)函數(shù)的閉包變量的解析,確定所述第一目標(biāo)函數(shù)對應(yīng)父子函數(shù)的關(guān)聯(lián)關(guān)系,所述關(guān)聯(lián)關(guān)系用于關(guān)聯(lián)各所述閉包變量;
30、若所述第一目標(biāo)函數(shù)未包括所述閉包變量,則基于語法規(guī)范生成所述第一目標(biāo)函數(shù)對應(yīng)的閉包變量。
31、第二方面,提供了一種小程序運(yùn)行裝置,該裝置包括:
32、類型確定單元,用于針對小程序的啟動操作,獲取所述小程序中第一目標(biāo)函數(shù)的嵌套層數(shù),基于所述嵌套層數(shù)確定所述目標(biāo)函數(shù)的函數(shù)類型,所述第一目標(biāo)函數(shù)為所述小程序中的任一函數(shù);
33、函數(shù)簡化單元,用于若所述函數(shù)類型為延遲解析函數(shù)類型,則對所述第一目標(biāo)函數(shù)的函數(shù)體和所述第一目標(biāo)函數(shù)對應(yīng)的父函數(shù)進(jìn)行簡化處理,以得到第二目標(biāo)函數(shù);
34、延遲函數(shù)生成單元,用于基于所述第一目標(biāo)函數(shù)的函數(shù)描述信息生成所述第一目標(biāo)函數(shù)對應(yīng)的簡化字節(jié)碼對象,將所述簡化字節(jié)碼對象添加至所述第二目標(biāo)函數(shù),得到所述第二目標(biāo)函數(shù)對應(yīng)的延遲函數(shù),所述函數(shù)描述信息用于表征所述第一目標(biāo)函數(shù)的基礎(chǔ)信息,所述延遲函數(shù)為響應(yīng)于所述啟動操作控制所述小程序啟動時延遲解析的函數(shù)。
35、第三方面,提供了一種計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括:計算機(jī)程序代碼,當(dāng)該計算機(jī)程序代碼在計算機(jī)上運(yùn)行時,使得該計算機(jī)執(zhí)行上述第一方面或第一方面任意一種可能的實(shí)現(xiàn)方式中的方法。
36、第四方面,提供了一種計算機(jī)可讀存儲介質(zhì),該計算機(jī)可讀存儲介質(zhì)存儲有計算機(jī)程序代碼,當(dāng)該計算機(jī)程序代碼在計算機(jī)上運(yùn)行時,使得該計算機(jī)執(zhí)行上述第一方面或第一方面任意一種可能的實(shí)現(xiàn)方式中的方法。
37、第五方面,提供一種電子設(shè)備,包括:處理器和存儲器;其中,存儲器存儲有計算機(jī)程序,計算機(jī)程序適于由處理器加載并執(zhí)行上述的方法的步驟。