本技術(shù)實施例涉及終端,尤其涉及一種垃圾回收方法、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、垃圾回收(garbage?collection,gc)是一種內(nèi)存管理機制??梢岳斫鉃?,當(dāng)一些內(nèi)存對象不再被需要時,就刪除這些內(nèi)存對象,以釋放這些內(nèi)存對象占用的內(nèi)存空間,這種存儲資源管理機制就稱為垃圾回收。
2、目前,電子設(shè)備的內(nèi)存空間可以分為第一分區(qū)和第二分區(qū),內(nèi)存對象在第二分區(qū)上,在電子設(shè)備執(zhí)行g(shù)c處理的過程中,電子設(shè)備將符合預(yù)設(shè)條件的內(nèi)存對象從第二分區(qū)復(fù)制到第一分區(qū),并清空第二分區(qū)。這樣,未符合預(yù)設(shè)條件的內(nèi)存對象就被刪除,也就是垃圾內(nèi)存對象就被刪除。
3、現(xiàn)階段,如何提高電子設(shè)備在執(zhí)行g(shù)c處理之后電子設(shè)備使用內(nèi)存對象的效率是一個有待解決的問題。
技術(shù)實現(xiàn)思路
1、有鑒于此,本技術(shù)實施例提供一種垃圾回收方法、電子設(shè)備及存儲介質(zhì),在該方法中,電子設(shè)備使用頻繁程度相近的內(nèi)存對象,這些內(nèi)存對象在gc處理后,在第一分區(qū)上的位置也是接近的,由此可以提高內(nèi)存對象的局部性,那么就可以提升電子設(shè)備使用內(nèi)存對象的效率,提高電子設(shè)備的性能。
2、為達(dá)到上述目的,本技術(shù)的實施例采用如下技術(shù)方案:
3、第一方面,本技術(shù)實施例提供一種垃圾回收方法,該方法可以應(yīng)用于如,手機、平板電腦等電子設(shè)備,上述電子設(shè)備的內(nèi)存空間包括第一分區(qū)和第二分區(qū),第一分區(qū)包括第一子分區(qū)和第二子分區(qū),第一子分區(qū)的內(nèi)存地址連續(xù),第一分區(qū)和第二分區(qū)不同,第一子分區(qū)與第二子分區(qū)不同。上述方法包括:在目標(biāo)應(yīng)用啟動后,若目標(biāo)應(yīng)用占用的內(nèi)存大小大于或等于內(nèi)存閾值,則電子設(shè)備基于熱點信息集合對目標(biāo)應(yīng)用對應(yīng)的內(nèi)存對象執(zhí)行垃圾回收gc處理;熱點信息集合包括多個熱點信息,多個熱點信息與多個所述內(nèi)存對象一一對應(yīng),熱點信息指示目標(biāo)應(yīng)用使用熱點信息對應(yīng)的內(nèi)存對象的頻繁程度。其中,上述gc處理包括:若內(nèi)存對象符合預(yù)設(shè)條件,則電子設(shè)備將內(nèi)存對象從第二分區(qū)復(fù)制到第一分區(qū);其中,第一內(nèi)存對象被復(fù)制到第一子分區(qū),第二內(nèi)存對象被復(fù)制到第二子分區(qū);目標(biāo)應(yīng)用使用第一內(nèi)存對象的頻繁程度高于目標(biāo)應(yīng)用使用第二內(nèi)存對象的頻繁程度。若內(nèi)存對象未符合預(yù)設(shè)條件,則電子設(shè)備將內(nèi)存對象從第二分區(qū)刪除。以及,內(nèi)存對象符合預(yù)設(shè)條件可以理解為內(nèi)存對象通過可達(dá)性測試,內(nèi)存對象不符合預(yù)設(shè)條件可以理解為內(nèi)存對象未通過可達(dá)性測試。
4、在上述方法中,由于在對目標(biāo)應(yīng)用對應(yīng)的內(nèi)存對象執(zhí)行g(shù)c處理后,第一內(nèi)存對象與第二內(nèi)存對象在電子設(shè)備的內(nèi)存空間的不同分區(qū),如,第一內(nèi)存對象在第一子分區(qū),第二內(nèi)存對象在第二子分區(qū);并且目標(biāo)應(yīng)用使用第一內(nèi)存對象的頻繁程度高于目標(biāo)應(yīng)用使用第二內(nèi)存對象的頻繁程度。也就是說,目標(biāo)應(yīng)用使用的頻繁程度高的內(nèi)存對象是在第一子分區(qū)上的。同時由于第一子分區(qū)的內(nèi)存地址是連續(xù)的,那么第一子分區(qū)上的內(nèi)存對象的位置是接近的??梢?,通過上述方法可以將目標(biāo)應(yīng)用使用的頻繁程度高的內(nèi)存對象集中在第一子分區(qū)上,由此,就可以提高內(nèi)存對象的局部性,那么就可以提升電子設(shè)備使用內(nèi)存對象的效率,提高電子設(shè)備的性能。
5、在第一方面的一種可能的設(shè)計中,上述電子設(shè)備獲取熱點信息集合,包括:電子設(shè)備獲取針對目標(biāo)內(nèi)存對象的指令,基于針對目標(biāo)內(nèi)存對象的指令得到目標(biāo)內(nèi)存對象對應(yīng)的目標(biāo)熱點信息,目標(biāo)內(nèi)存對象是多個內(nèi)存對象中的任一個。接下來,電子設(shè)備將目標(biāo)熱點信息寫入熱點信息集合。
6、在這種設(shè)計中,電子設(shè)備可以根據(jù)針對目標(biāo)內(nèi)存對象的指令準(zhǔn)確地得到指示目標(biāo)應(yīng)用使用目標(biāo)內(nèi)存對象的頻繁程度的目標(biāo)熱點信息。
7、在第一方面的另一種可能的設(shè)計中,上述針對目標(biāo)內(nèi)存對象的指令包括目標(biāo)內(nèi)存對象的地址。以及,上述電子設(shè)備將目標(biāo)熱點信息寫入熱點信息集合,包括:電子設(shè)備從針對目標(biāo)內(nèi)存對象的指令中提取目標(biāo)內(nèi)存對象的地址。接下來,電子設(shè)備根據(jù)目標(biāo)內(nèi)存對象的地址得到目標(biāo)熱點信息在熱點信息集合中的位置。之后,電子設(shè)備將目標(biāo)熱點信息寫入目標(biāo)熱點信息在熱點信息集合中的位置。
8、在第一方面的又一種可能的設(shè)計中,上述電子設(shè)備根據(jù)目標(biāo)內(nèi)存對象的地址得到目標(biāo)熱點信息在熱點信息集合中的位置,包括:電子設(shè)備根據(jù)目標(biāo)內(nèi)存對象的地址得到偏移量。之后,電子設(shè)備基于偏移量與熱點信息集合的地址得到目標(biāo)熱點信息的地址。以及,上述電子設(shè)備將目標(biāo)熱點信息寫入目標(biāo)熱點信息在熱點信息集合中的位置,包括:電子設(shè)備將目標(biāo)熱點信息寫入目標(biāo)熱點信息的地址。
9、在這種設(shè)計中,電子設(shè)備可以通過目標(biāo)熱點信息的地址將目標(biāo)熱點信息寫入熱點信息集合。
10、在第一方面的另一種可能的設(shè)計中,上述針對目標(biāo)內(nèi)存對象的指令包括:針對目標(biāo)內(nèi)存對象的讀指令和/或針對目標(biāo)內(nèi)存對象的取指令。以及,上述電子設(shè)備基于針對目標(biāo)內(nèi)存對象的指令得到目標(biāo)內(nèi)存對象對應(yīng)的目標(biāo)熱點信息,包括:電子設(shè)備基于針對目標(biāo)內(nèi)存對象的讀指令的次數(shù)與針對目標(biāo)內(nèi)存對象的取指令的次數(shù)得到目標(biāo)內(nèi)存對象對應(yīng)的目標(biāo)熱點信息。
11、在這種設(shè)計中,電子設(shè)備可以根據(jù)取指令與讀指令的次數(shù)之和得到指示目標(biāo)應(yīng)用使用熱點信息對應(yīng)的內(nèi)存對象的頻繁程度的熱點信息。
12、在第一方面的又一種可能的設(shè)計中,在電子設(shè)備基于熱點信息集合對內(nèi)存對象執(zhí)行g(shù)c處理之后,上述方法還包括:電子設(shè)備清空熱點信息集合包括的熱點信息。接下來,電子設(shè)備更新熱點信息集合包括的熱點信息。之后,電子設(shè)備基于更新后的熱點信息集合對內(nèi)存對象執(zhí)行下一次gc處理。
13、在這種設(shè)計中,電子設(shè)備可以在非gc時段獲取電子設(shè)備的熱點信息。以及,在gc時段,電子設(shè)備根據(jù)該gc時段對應(yīng)的非gc時段獲取的熱點信息對內(nèi)存對象執(zhí)行g(shù)c處理。這樣,可以進(jìn)一步地提高內(nèi)存對象的局部性,那么就可以進(jìn)一步提升電子設(shè)備使用內(nèi)存對象的效率,提高電子設(shè)備的性能。其中,關(guān)于上述gc時段和非gc時段,以及gc時段和非gc時段的對應(yīng)關(guān)系可以參見下文,再此先不詳述。
14、在第一方面的另一種可能的設(shè)計中,上述電子設(shè)備包括解釋器,解釋器用于將待執(zhí)行的第一代碼解釋執(zhí)行為第二代碼,第一代碼與第二代碼不同,例如,第一代碼可以是字節(jié)碼,第二代碼可以是機器碼;第一代碼包括針對目標(biāo)內(nèi)存對象的指令。上述電子設(shè)備獲取針對目標(biāo)內(nèi)存對象的指令,基于針對目標(biāo)內(nèi)存對象的指令得到目標(biāo)內(nèi)存對象對應(yīng)的目標(biāo)熱點信息,包括:在解釋器將第一代碼解釋執(zhí)行為第二代碼的過程中,電子設(shè)備的解釋器獲取針對目標(biāo)內(nèi)存對象的指令,并基于針對目標(biāo)內(nèi)存對象的指令得到目標(biāo)內(nèi)存對象對應(yīng)的目標(biāo)熱點信息。
15、在這種設(shè)計中,解釋器可以在將第一代碼解釋執(zhí)行為第二代碼的過程中,得到目標(biāo)內(nèi)存對象對應(yīng)的目標(biāo)熱點信息。由此,電子設(shè)備可以高效地得到目標(biāo)熱點信息。
16、在第一方面的一種可能的設(shè)計中,上述內(nèi)存對象包括新生代內(nèi)存對象或老生代內(nèi)存對象,如,老生代內(nèi)存對象是經(jīng)歷了k輪gc過程的內(nèi)存對象,k為正整數(shù);新生代內(nèi)存對象是除老生代內(nèi)存對象之外的內(nèi)存對象。也就是說,上述內(nèi)存對象可以根據(jù)內(nèi)存對象的存活時長劃分為新生代內(nèi)存對象或老生代內(nèi)存對象。以及,上述若內(nèi)存對象符合預(yù)設(shè)條件,則電子設(shè)備將內(nèi)存對象從第二分區(qū)復(fù)制到第一分區(qū)包括:若新生代內(nèi)存對象符合預(yù)設(shè)條件,則電子設(shè)備將新生代內(nèi)存對象從第二分區(qū)復(fù)制到第一分區(qū)。上述若內(nèi)存對象未符合預(yù)設(shè)條件,則電子設(shè)備將內(nèi)存對象從第二分區(qū)刪除,包括:若新生代內(nèi)存對象未符合預(yù)設(shè)條件,則電子設(shè)備將新生代內(nèi)存對象從第二分區(qū)刪除。以及,上述方法還包括:電子設(shè)備將老生代內(nèi)存對象從第二分區(qū)復(fù)制到第一子分區(qū)。
17、在這種設(shè)計中,考慮到電子設(shè)備判斷內(nèi)存對象是否符合預(yù)設(shè)條件,也會消耗電子設(shè)備的資源。因此對于老生代內(nèi)存對象,電子設(shè)備可以不判斷其否符合預(yù)設(shè)條件,電子設(shè)備直接將老生代內(nèi)存復(fù)制到第一子分區(qū),這樣節(jié)約電子設(shè)備判斷內(nèi)存對象是否符合預(yù)設(shè)條件的資源消耗,進(jìn)一步地,可以提升電子設(shè)備在執(zhí)行g(shù)c處理過程中的效率。
18、在第一方面的又一種可能的設(shè)計中,上述第一子分區(qū)在第一分區(qū)的占比與老生代內(nèi)存對象的數(shù)量正相關(guān)。
19、在這種設(shè)計中,上述第一子分區(qū)在第一分區(qū)的占比與老生代內(nèi)存對象的數(shù)量正相關(guān)的,也就是說,老生代內(nèi)存對象的數(shù)量越多,第一子分區(qū)在第一分區(qū)的占比也就越大。老生代內(nèi)存對象的數(shù)量越少,第一子分區(qū)在第一分區(qū)的占比也就越小。這樣,可以緩解第一子分區(qū)空間過大造成第一子分區(qū)空間被浪費的現(xiàn)象,以及緩解第一子分區(qū)空間過小造成第一子分區(qū)空間不足的現(xiàn)象。
20、在第一方面的又一種可能的設(shè)計中,第一子分區(qū)位于電子設(shè)備的內(nèi)部存儲器,第二子分區(qū)位于電子設(shè)備的磁盤或者位于電子設(shè)備的內(nèi)部存儲器。在這種設(shè)計中,電子設(shè)備可以通過虛擬內(nèi)存技術(shù)將第二子分區(qū)落盤到電子設(shè)備的磁盤,由此可以節(jié)約電子設(shè)備的內(nèi)存存儲器的空間。
21、第二方面,提供一種電子設(shè)備,該電子設(shè)備包括處理器、存儲器;處理器與存儲器耦合;存儲器用于存儲計算機程序代碼;計算機程序代碼包括計算機指令,當(dāng)處理器執(zhí)行上述計算機指令時,使得電子設(shè)備執(zhí)行上述第一方面以及第一方面的任一種可能的設(shè)計所提供的方法。
22、第三方面,提供一種計算機可讀存儲介質(zhì),計算機可讀存儲介質(zhì)包括計算機指令,當(dāng)計算機指令在電子設(shè)備上運行時,使得電子設(shè)備執(zhí)行上述第一方面以及第一方面的任一種可能的設(shè)計所提供的方法。
23、第四方面,提供一種計算機程序產(chǎn)品,該計算機程序產(chǎn)品中包括指令,當(dāng)計算機程序產(chǎn)品在電子設(shè)備上運行時,使得電子設(shè)備執(zhí)行上述第一方面以及第一方面的任一種可能的設(shè)計所提供的方法。
24、其中,第二方面至第四方面中任一種設(shè)計方式所帶來的技術(shù)效果可參見第一方面中不同設(shè)計方式所帶來的技術(shù)效果,此處不再贅述。