本說明書實(shí)施例涉及計(jì)算機(jī),特別涉及一種代碼處理方法;本說明書一個(gè)或者多個(gè)實(shí)施例同時(shí)涉及一種計(jì)算設(shè)備,一種計(jì)算機(jī)可讀存儲介質(zhì)以及一種計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、在當(dāng)前的軟件開發(fā)實(shí)踐中,跨語言的編程和集成是一項(xiàng)常見且有價(jià)值的任務(wù);例如python以其豐富的庫和簡單的語法獲得了廣泛的應(yīng)用,特別是在數(shù)據(jù)分析、機(jī)器學(xué)習(xí)和網(wǎng)頁開發(fā)等領(lǐng)域。
2、然而,在執(zhí)行代碼的過程中,由于采用了全局解釋器鎖(global?interpreterlock,gil)這一機(jī)制,雖然簡化了內(nèi)存管理,但也限制了程序在多核處理器上的并行執(zhí)行能力。例如,python的全局解釋器鎖(gil)限制了其在多線程環(huán)境中的執(zhí)行效率,因?yàn)?,gil確保同一時(shí)間內(nèi),一個(gè)進(jìn)程包含的多個(gè)線程中只有一個(gè)線程可以執(zhí)行python字節(jié)碼,這嚴(yán)重限制了并行處理能力。
3、由于使用gil的解釋器只允許一個(gè)進(jìn)程所包含的多個(gè)線程,在同一時(shí)間內(nèi)僅執(zhí)行一個(gè)線程,如果多個(gè)線程同時(shí)想執(zhí)行某段代碼時(shí),就不得不排隊(duì)等待,以至于造成執(zhí)行性能的低效。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本說明書實(shí)施例提供了一種代碼處理方法。本說明書一個(gè)或者多個(gè)實(shí)施例同時(shí)涉及一種代碼處理裝置,一種計(jì)算設(shè)備,一種計(jì)算機(jī)可讀存儲介質(zhì)以及一種計(jì)算機(jī)程序產(chǎn)品,以解決現(xiàn)有技術(shù)中存在的技術(shù)缺陷。
2、根據(jù)本說明書實(shí)施例的第一方面,提供了一種代碼處理方法,包括:
3、確定目標(biāo)代碼,以及所述目標(biāo)代碼對應(yīng)的目標(biāo)代碼處理單元;
4、利用所述目標(biāo)代碼處理單元,從多個(gè)代碼處理子單元中,確定處理所述目標(biāo)代碼的目標(biāo)代碼處理子單元,其中,所述代碼處理子單元根據(jù)所述目標(biāo)代碼處理單元生成,且各代碼處理子單元具有對應(yīng)的代碼解釋器;
5、利用所述目標(biāo)代碼處理單元,將所述目標(biāo)代碼發(fā)送至所述目標(biāo)代碼處理子單元;
6、利用所述目標(biāo)代碼處理子單元以及所述目標(biāo)代碼處理子單元對應(yīng)的目標(biāo)代碼解釋器,對所述目標(biāo)代碼進(jìn)行處理,獲得所述目標(biāo)代碼對應(yīng)的代碼處理結(jié)果。
7、根據(jù)本說明書實(shí)施例的第二方面,提供了一種代碼處理裝置,包括:
8、第一單元確定模塊,被配置為確定目標(biāo)代碼,以及所述目標(biāo)代碼對應(yīng)的目標(biāo)代碼處理單元;
9、第二單元確定模塊,被配置為利用所述目標(biāo)代碼處理單元,從多個(gè)代碼處理子單元中,確定處理所述目標(biāo)代碼的目標(biāo)代碼處理子單元,其中,所述代碼處理子單元根據(jù)所述目標(biāo)代碼處理單元生成,且各代碼處理子單元具有對應(yīng)的代碼解釋器;
10、代碼發(fā)送模塊,被配置為利用所述目標(biāo)代碼處理單元,將所述目標(biāo)代碼發(fā)送至所述目標(biāo)代碼處理子單元;
11、代碼處理模塊,被配置為利用所述目標(biāo)代碼處理子單元以及所述目標(biāo)代碼處理子單元對應(yīng)的目標(biāo)代碼解釋器,對所述目標(biāo)代碼進(jìn)行處理,獲得所述目標(biāo)代碼對應(yīng)的代碼處理結(jié)果。
12、根據(jù)本說明書實(shí)施例的第三方面,提供了一種計(jì)算設(shè)備,包括:
13、存儲器和處理器;
14、所述存儲器用于存儲計(jì)算機(jī)程序/指令,所述處理器用于執(zhí)行所述計(jì)算機(jī)程序/指令,該計(jì)算機(jī)程序/指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述代碼處理方法的步驟。
15、根據(jù)本說明書實(shí)施例的第四方面,提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其存儲有計(jì)算機(jī)程序/指令,該計(jì)算機(jī)程序/指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述代碼處理方法的步驟。
16、根據(jù)本說明書實(shí)施例的第五方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序/指令,該計(jì)算機(jī)程序/指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述代碼處理方法的步驟。
17、本說明書一個(gè)或多個(gè)實(shí)施例提供的代碼處理方法,可以根據(jù)目標(biāo)代碼處理單元生成多個(gè)代碼處理子單元,并且各代碼處理子單元均維護(hù)對應(yīng)的代碼解釋器;因此,在執(zhí)行代碼的過程中,利用目標(biāo)代碼處理單元將目標(biāo)代碼發(fā)送至處理該目標(biāo)代碼的目標(biāo)代碼處理子單元中,利用該目標(biāo)代碼處理子單元以及其維護(hù)的目標(biāo)代碼解釋器,并行執(zhí)行該目標(biāo)代碼,獲得目標(biāo)代碼對應(yīng)的代碼處理結(jié)果;從而通過每個(gè)代碼處理子單元均維護(hù)一個(gè)代碼解釋器的方式,突破了全局解釋器鎖的限制,使得在同一時(shí)間,多個(gè)代碼處理子單元可以通過并行的方式執(zhí)行代碼,提高了代碼執(zhí)行的效率。
1.一種代碼處理方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的代碼處理方法,其特征在于,所述利用所述目標(biāo)代碼處理子單元以及所述目標(biāo)代碼處理子單元對應(yīng)的目標(biāo)代碼解釋器,對所述目標(biāo)代碼進(jìn)行處理,獲得所述目標(biāo)代碼對應(yīng)的代碼處理結(jié)果,包括:
3.根據(jù)權(quán)利要求2所述的代碼處理方法,其特征在于,所述調(diào)用所述目標(biāo)代碼解釋器,根據(jù)抽象語法樹對所述目標(biāo)代碼進(jìn)行解析,確定所述目標(biāo)代碼中多個(gè)代碼語句之后,還包括:
4.根據(jù)權(quán)利要求1所述的代碼處理方法,其特征在于,所述利用所述目標(biāo)代碼處理子單元以及所述目標(biāo)代碼處理子單元對應(yīng)的目標(biāo)代碼解釋器,對所述目標(biāo)代碼進(jìn)行處理,獲得所述目標(biāo)代碼對應(yīng)的代碼處理結(jié)果之后,還包括:
5.根據(jù)權(quán)利要求1所述的代碼處理方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求1所述的代碼處理方法,其特征在于,所述確定目標(biāo)代碼,包括:
7.根據(jù)權(quán)利要求1至6任意一項(xiàng)所述的代碼處理方法,其特征在于,所述目標(biāo)代碼處理單元為主進(jìn)程,所述代碼處理子單元為子進(jìn)程,所述子進(jìn)程中包含多個(gè)線程,所述子進(jìn)程通過對所述主進(jìn)程進(jìn)行復(fù)刻操作生成。
8.一種計(jì)算設(shè)備,其特征在于,包括:
9.一種計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,其存儲有計(jì)算機(jī)程序/指令,該計(jì)算機(jī)程序/指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至7任意一項(xiàng)所述代碼處理方法的步驟。
10.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,包括計(jì)算機(jī)程序/指令,該計(jì)算機(jī)程序/指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至7任意一項(xiàng)所述代碼處理方法的步驟。