日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

基于堆區(qū)域的內(nèi)容動(dòng)態(tài)選擇垃圾收集算法的系統(tǒng)和方法

文檔序號(hào):9693219閱讀:289來源:國知局
基于堆區(qū)域的內(nèi)容動(dòng)態(tài)選擇垃圾收集算法的系統(tǒng)和方法
【專利說明】基于堆區(qū)域的內(nèi)容動(dòng)態(tài)選擇垃圾收集算法的系統(tǒng)和方法
[0001 ]版權(quán)聲明
[0002]本專利文檔的公開內(nèi)容的一部分包含受版權(quán)保護(hù)的素材。版權(quán)擁有者不反對任何人對專利文檔或?qū)@_內(nèi)容按照在專利商標(biāo)局的專利文件或記錄中出現(xiàn)那樣進(jìn)行的傳真復(fù)制,但是除此之外在任何情況下都保留所有版權(quán)。
技術(shù)領(lǐng)域
[0003]本發(fā)明一般而言涉及垃圾收集軟件語言,諸如Java,并且尤其涉及用于基于堆區(qū)域的內(nèi)容動(dòng)態(tài)選擇垃圾收集算法的系統(tǒng)和方法。
【背景技術(shù)】
[0004]在計(jì)算機(jī)系統(tǒng)中,用于正在運(yùn)行的軟件應(yīng)用的軟件對象被存儲(chǔ)在系統(tǒng)存儲(chǔ)器中它們可以很容易被訪問的區(qū)域中。雖然一些軟件語言支持手動(dòng)存儲(chǔ)器分配,使得被軟件對象占用的存儲(chǔ)器可以被手動(dòng)分配和解除分配;但是其它軟件語言,諸如Java,利用動(dòng)態(tài)存儲(chǔ)器分配,連同定期回收被不再被正在運(yùn)行的軟件應(yīng)用使用的軟件對象占用的存儲(chǔ)器的垃圾收集器。
[0005]存儲(chǔ)器中存儲(chǔ)軟件對象的區(qū)域一般被稱為堆。虛擬機(jī)維持由軟件應(yīng)用使用的堆,包括確定要使用的垃圾收集器或垃圾收集算法。不同垃圾收集算法的例子包括復(fù)制、標(biāo)記_清除、引用計(jì)數(shù),及其變體,諸如標(biāo)記-復(fù)制和標(biāo)記-分割。依賴于它們在其中被使用的特定計(jì)算環(huán)境,每種不同的垃圾收集算法提供優(yōu)點(diǎn)和缺點(diǎn)。

【發(fā)明內(nèi)容】

[0006]本文所述的是用于基于堆區(qū)域的內(nèi)容動(dòng)態(tài)選擇垃圾收集算法的系統(tǒng)和方法。根據(jù)實(shí)施例,軟件應(yīng)用能夠被檢測,使得系統(tǒng)能夠?qū)⒂稍搼?yīng)用或者由該應(yīng)用的不同部分分配的軟件對象放到堆的不同區(qū)域中。當(dāng)垃圾收集被調(diào)用時(shí),系統(tǒng)能夠掃描堆,檢查對象統(tǒng)計(jì)信息,以確定特定對象是例如短期的、長期的還是某種其它類型的對象,然后使用這種信息來確定對特定的堆區(qū)域使用哪種垃圾收集算法。根據(jù)實(shí)施例,系統(tǒng)能夠?qū)^(qū)域識(shí)別為包含特定對象類型,例如,可移動(dòng)或不可移動(dòng)的對象類型,或者對象活躍度,并且相應(yīng)地使用不同的垃圾收集算法。不同的垃圾收集算法能夠基于在特定時(shí)間區(qū)域的內(nèi)容對不同區(qū)域使用。
【附圖說明】
[0007]圖1示出了根據(jù)實(shí)施例、基于堆區(qū)域的內(nèi)容啟用動(dòng)態(tài)選擇垃圾收集算法的系統(tǒng)。
[0008]圖2示出了根據(jù)實(shí)施例、用于基于堆區(qū)域的內(nèi)容動(dòng)態(tài)選擇垃圾收集算法的系統(tǒng)的使用。
[0009]圖3進(jìn)一步示出了根據(jù)實(shí)施例、基于堆區(qū)域的內(nèi)容的垃圾收集算法的動(dòng)態(tài)選擇。
[0010]圖4進(jìn)一步示出了根據(jù)實(shí)施例、基于堆區(qū)域的內(nèi)容的垃圾收集算法的動(dòng)態(tài)選擇。
[0011]圖5進(jìn)一步示出了根據(jù)實(shí)施例、基于堆區(qū)域的內(nèi)容的垃圾收集算法的動(dòng)態(tài)選擇。
[0012]圖6進(jìn)一步示出了根據(jù)實(shí)施例、基于堆區(qū)域的內(nèi)容的垃圾收集算法的動(dòng)態(tài)選擇。
[0013]圖7進(jìn)一步示出了根據(jù)實(shí)施例、基于堆區(qū)域的內(nèi)容的垃圾收集算法的動(dòng)態(tài)選擇。
[0014]圖8進(jìn)一步示出了根據(jù)實(shí)施例、基于堆區(qū)域的內(nèi)容的垃圾收集算法的動(dòng)態(tài)選擇。
[0015]圖9進(jìn)一步示出了根據(jù)實(shí)施例、基于堆區(qū)域的內(nèi)容的垃圾收集算法的動(dòng)態(tài)選擇。
[0016]圖10示出了根據(jù)實(shí)施例、用于基于堆區(qū)域的內(nèi)容動(dòng)態(tài)選擇垃圾收集算法的方法的流程圖。
[0017]圖11示出了根據(jù)實(shí)施例、用于基于堆區(qū)域的內(nèi)容動(dòng)態(tài)選擇垃圾收集算法的用例。
[0018]圖12示出了根據(jù)實(shí)施例、用于基于堆區(qū)域的內(nèi)容動(dòng)態(tài)選擇垃圾收集算法的另一方法的流程圖。
【具體實(shí)施方式】
[0019]如上所述,在使用垃圾收集的計(jì)算機(jī)系統(tǒng)中,系統(tǒng)維護(hù)由軟件應(yīng)用和它們的軟件對象使用的堆,包括確定要使用的垃圾收集器或垃圾收集算法。不同垃圾收集算法的例子包括復(fù)制、標(biāo)記-清除、引用計(jì)數(shù),及其變體,諸如標(biāo)記-復(fù)制和標(biāo)記-分割;依賴于它們在其中被使用的特定計(jì)算環(huán)境,其中每個(gè)都具有優(yōu)點(diǎn)和缺點(diǎn)。
[0020]根據(jù)實(shí)施例,本文所描述是用于基于堆區(qū)域的內(nèi)容動(dòng)態(tài)選擇垃圾收集算法的系統(tǒng)和方法。
[°021 ]根據(jù)實(shí)施例中,軟件應(yīng)用可以被檢測(instrumented),使得系統(tǒng)可以將由該應(yīng)用或由該應(yīng)用的不同部分分配的軟件對象放到堆的不同區(qū)域中。
[0022]例如,根據(jù)實(shí)施例,軟件應(yīng)用中的事務(wù)處理代碼可以被檢測,使得其分配的對象被放到堆中打算用于短期事務(wù)對象的區(qū)域中;而軟件應(yīng)用中存儲(chǔ)器內(nèi)數(shù)據(jù)庫代碼可以被檢測,使得其分配的對象被放到打算用于長壽數(shù)據(jù)庫對象的區(qū)域中。
[0023]根據(jù)實(shí)施例,當(dāng)垃圾收集被調(diào)用時(shí),系統(tǒng)可以掃描堆,檢查對象統(tǒng)計(jì)信息,以確定特定對象是例如短期的、長期的還是某種其它類型的對象,然后使用這種信息來選擇或確定對特定的堆區(qū)域要使用哪種垃圾收集算法。例如,如果I/O緩沖區(qū)被分配給堆的特定區(qū)域,則系統(tǒng)可以,在第一次垃圾收集期間,確定對那個(gè)區(qū)域使用非移動(dòng)式垃圾收集算法;但是,在后續(xù)的垃圾收集期間(由于I/O緩沖區(qū)一般是短期的并且該區(qū)域的內(nèi)容可能已改變)確定對那個(gè)區(qū)域使用不同的,例如復(fù)制,垃圾收集算法。
[0024]根據(jù)實(shí)施例,系統(tǒng)可以將區(qū)域識(shí)別為包含特定的對象類型,例如,可移動(dòng)或不可移動(dòng)的對象類型,或者對象活躍度,并且相應(yīng)地使用不同的垃圾收集算法。不同的垃圾收集算法可以基于在特定時(shí)間區(qū)域的內(nèi)容對不同的區(qū)域使用。這對于使用哪種垃圾收集算法的選擇提供了精細(xì)的方法。
[0025]根據(jù)實(shí)施例,系統(tǒng)可以將區(qū)域識(shí)別為包含特定的對象類型,例如,可移動(dòng)或不可移動(dòng)的對象類型,或者對象活躍度,并且相應(yīng)地使用不同的垃圾收集算法。不同的垃圾收集算法可以基于在特定時(shí)間區(qū)域的內(nèi)容對不同的區(qū)域使用,包括在堆的不同區(qū)域中同時(shí)操作的不同算法。這對于使用哪種垃圾收集算法的選擇提供了精細(xì)的方法。
[0026]根據(jù)實(shí)施例,提供了供垃圾收集軟件語言使用的裝置,用于基于堆區(qū)域的內(nèi)容動(dòng)態(tài)選擇垃圾收集算法,包括:用于提供虛擬機(jī)和用于存儲(chǔ)作為軟件對象的編譯后的字節(jié)碼的堆并且使得一個(gè)或多個(gè)軟件應(yīng)用在其上被執(zhí)行的裝置;及基于當(dāng)前在堆的特定區(qū)域中被分配的軟件對象選擇對堆的該特定區(qū)域要使用的特定垃圾收集算法的裝置。
[0027]根據(jù)實(shí)施例,軟件應(yīng)用包括被檢測的應(yīng)用代碼,使得虛擬機(jī)可以基于被檢測的代碼確定將由該軟件應(yīng)用分配的軟件對象放到堆的選定區(qū)域中。
[0028]根據(jù)實(shí)施例,軟件應(yīng)用包括多個(gè)不同部分,并且這多個(gè)不同部分當(dāng)中每一個(gè)包括被檢測的代碼,使得虛擬機(jī)可以確定把由該應(yīng)用或由該應(yīng)用的不同部分分配的軟件對象放到堆的不同區(qū)域中。
[0029]根據(jù)實(shí)施例,虛擬機(jī)將軟件對象分配到堆的不同區(qū)域中,并且隨后確定用于不同區(qū)域的對象統(tǒng)計(jì)信息,以確定其中的對象類型,并且使用對象統(tǒng)計(jì)信息來確定對堆的特定區(qū)域使用哪種垃圾收集算法。
[0030]根據(jù)實(shí)施例,堆包括被識(shí)別為供不可移動(dòng)軟件對象使用的第一區(qū)域,以及被識(shí)別為供可移動(dòng)軟件對象使用的第二區(qū)域,并且其中虛擬機(jī)對第一和第二區(qū)域當(dāng)中每一個(gè)使用不同的垃圾收集算法。
[0031]根據(jù)實(shí)施例,提供了虛擬機(jī)(120),包括:用于存儲(chǔ)作為軟件對象的編譯后的字節(jié)碼的堆(130);以及用于執(zhí)行一個(gè)或多個(gè)垃圾收集器垃圾收集算法的一個(gè)或多個(gè)垃圾收集器(124),其中,基于當(dāng)前在堆的特定區(qū)域中被分配的軟件對象,選擇特定的垃圾收集算法用于堆的該特定區(qū)域。
[0032]根據(jù)實(shí)施例,提供了系統(tǒng)(102),包括:物理資源(108);以及虛擬機(jī)(120),其包括用于存儲(chǔ)作為軟件對象的編譯后的字節(jié)碼的堆(130)以及用于執(zhí)行一個(gè)或多個(gè)垃圾收集器垃圾收集算法的一個(gè)或多個(gè)垃圾收集器(124),其中,基于當(dāng)前在堆的特定區(qū)域中被分配的軟件對象,選擇特定的垃圾收集算法用于堆的該特定區(qū)域。
[0033]介紹
[0034]圖1示出了根據(jù)實(shí)施例、基于堆區(qū)域的內(nèi)容啟用動(dòng)態(tài)選擇垃圾收集算法的系統(tǒng)。
[0035]如圖1中所示,根據(jù)實(shí)施例,系統(tǒng)可以包括一個(gè)或多個(gè)物理計(jì)算機(jī)、服務(wù)器或計(jì)算設(shè)備102。每個(gè)計(jì)算機(jī)或計(jì)算設(shè)備可以包括物理計(jì)算資源108,諸如一個(gè)或多個(gè)處理器(CPU)110、輸入/輸出(I/O)部件112、聯(lián)網(wǎng)資源114和物理存儲(chǔ)器存儲(chǔ)116。虛擬機(jī)120使得編譯
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1