1.一種基于虛擬機(jī)的垃圾回收方法,其特征在于,虛擬機(jī)的堆空間包括用于存儲活躍周期小于預(yù)設(shè)周期的對象的新生代存儲區(qū),所述新生代存儲區(qū)包括用于存儲應(yīng)用程序創(chuàng)建的新對象的第一存儲空間、用于保存上一次垃圾回收時存活的活躍對象的第二存儲空間以及預(yù)留的第三存儲空間,所述方法包括:
在確定所述應(yīng)用程序創(chuàng)建的新對象將所述第一存儲空間存滿后,將當(dāng)前時刻所述第一存儲空間以及所述第二存儲空間中的所有活躍對象存儲至所述第三存儲空間中;
在確定所有活躍對象均存儲到所述第三存儲空間后,清空所述第一存儲空間以及所述第二存儲空間;
根據(jù)所述所有活躍對象所占的存儲空間的大小,重置所述第二存儲空間的大小以及所述第三存儲空間的大小,并對所述第二存儲空間以及所述第三存儲空間進(jìn)行交換處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述根據(jù)所有活躍對象所占的存儲空間,重置所述第二存儲空間的大小以及所述第三存儲空間的大小之前,還包括:
在確定所述第三存儲空間存滿,所有的活躍對象未全部存儲至所述第三存儲空間時,在所述第一存儲空間中釋放已經(jīng)存儲至第三存儲空間的活躍對象所占的存儲空間,并對所述第一存儲空間的剩余可用存儲空間進(jìn)行縮并處理,得到縮并處理后的可用存儲空間;
將未存儲至所述第三存儲空間的活躍對象存儲至所述縮并處理后的可用存儲空間中;
在確定未存儲至所述第三存儲空間的活躍對象均存儲至所述第一存儲空間后,清空所述第二存儲空間和所述第一存儲空間中除所述縮并處理后的可用存儲空間之外的存儲空間。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,在將所述第一存儲空間以及所述第二存儲空間中的活躍對象存儲至所述第三存儲空間中之前,還包括:
暫停所述應(yīng)用程序的執(zhí)行過程;
在所述將所述堆空間的剩余空間作為所述第一存儲空間之后,還包括:
啟動所述應(yīng)用程序的執(zhí)行過程。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在根據(jù)所述所有活躍對象所占的存儲空間,重置所述第二存儲空間的大小以及所述第三存儲空間的大小之后,還包括:
將所述新生代存儲區(qū)中除所述第二存儲空間與所述第三存儲空間之外的剩余存儲空間作為所述第一存儲空間。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述重置后的第一存儲空間的大小與重置后的第二存儲空間的大小均與所有活躍對象所占的存儲空間的大小相同。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述虛擬機(jī)的堆空間還包括:用于存儲活躍周期大于所述預(yù)設(shè)周期的對象的老年代存儲區(qū)。
7.一種基于虛擬機(jī)的垃圾回收裝置,其特征在于,所述虛擬機(jī)的堆空間包括用于存儲活躍周期小于預(yù)設(shè)周期的對象的新生代存儲區(qū),所述新生代存儲區(qū)包括用于存儲應(yīng)用程序創(chuàng)建的新對象的第一存儲空間、用于保存上一次垃圾回收時存活的活躍對象的第二存儲空間以及預(yù)留的第三存儲空間,所述裝置包括:
確定模塊,用于在確定所述應(yīng)用程序創(chuàng)建的新對象將所述第一存儲空間存滿后,將當(dāng)前時刻所述第一存儲空間以及所述第二存儲空間中的所有活躍對象存儲至所述第三存儲空間中;
清空模塊,用于在確定所有活躍對象均存儲到所述第三存儲空間后,清空所述第一存儲空間以及所述第二存儲空間;
處理模塊,用于根據(jù)所述所有活躍對象所占的存儲空間的大小,重置所述第二存儲空間的大小以及所述第三存儲空間的大小,并對所述第二存儲空間以及所述第三存儲空間進(jìn)行交換處理。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括:管理模塊;
所述管理模塊,用于在所述處理模塊根據(jù)所有活躍對象所占的存儲空間,重置所述第二存儲空間的大小以及所述第三存儲空間的大小之前,
在確定所述第三存儲空間存滿,所有的活躍對象未全部存儲至所述第三存儲空間時,在所述第一存儲空間中釋放已經(jīng)存儲至第三存儲空間的活躍對 象所占的存儲空間,并對所述第一存儲空間的剩余可用存儲空間進(jìn)行縮并處理,得到縮并處理后的可用存儲空間;
將未存儲至所述第三存儲空間的活躍對象存儲至所述縮并處理后的可用存儲空間中;
在確定未存儲至所述第三存儲空間的活躍對象均存儲至所述第一存儲空間后,清空所述第二存儲空間和所述第一存儲空間中除所述縮并處理后的可用存儲空間之外的存儲空間。
9.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,還包括:運(yùn)行模塊;
所述運(yùn)行模塊用于在將所述第一存儲空間以及所述第二存儲空間中的活躍對象存儲至所述第三存儲空間中之前,暫停所述應(yīng)用程序的執(zhí)行過程;
所述運(yùn)行模塊還用于在所述將所述堆空間的剩余空間作為所述第一存儲空間之后,啟動所述應(yīng)用程序的執(zhí)行過程。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述處理模塊還用于在根據(jù)所述所有活躍對象所占的存儲空間,重置所述第二存儲空間的大小以及所述第三存儲空間的大小之后,將所述新生代存儲區(qū)中除所述第二存儲空間與所述第三存儲空間之外的剩余存儲空間作為所述第一存儲空間。