两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

虛擬機(jī)階段檢測(cè)的制作方法

文檔序號(hào):6361925閱讀:282來(lái)源:國(guó)知局
專利名稱:虛擬機(jī)階段檢測(cè)的制作方法
虛擬機(jī)階段檢測(cè)技術(shù)領(lǐng)域
本發(fā)明一般地涉及用于確定虛擬機(jī)的狀態(tài)的計(jì)算機(jī)實(shí)現(xiàn)的方法、數(shù)據(jù)處理系統(tǒng)、和計(jì)算機(jī)程序產(chǎn)品。更具體地,本發(fā)明涉及在數(shù)據(jù)處理系統(tǒng)中適配算法、策略或探索以響應(yīng)于在其中托管的虛擬機(jī)中執(zhí)行的行為的等級(jí)和類型。
背景技術(shù)
計(jì)算機(jī),特別是托管經(jīng)劃分的虛擬機(jī)的計(jì)算機(jī)可以將其執(zhí)行的狀態(tài)從開(kāi)機(jī)的時(shí)刻向其被關(guān)機(jī)的時(shí)刻演進(jìn)。在托管多個(gè)虛擬機(jī)的數(shù)據(jù)處理系統(tǒng)中,每個(gè)虛擬機(jī)可分配有客戶端,其中組織依賴于虛擬機(jī)來(lái)支持組織的數(shù)據(jù)處理功能。
通常,可以在若干客戶端之間分割數(shù)據(jù)處理系統(tǒng)。每個(gè)客戶端與數(shù)據(jù)處理系統(tǒng)的所有者建立約定。由此,對(duì)于每個(gè)客戶端,為了實(shí)現(xiàn)其商業(yè)目標(biāo),啟動(dòng)一個(gè)或多個(gè)虛擬機(jī)。很快,每個(gè)虛擬機(jī)可實(shí)現(xiàn)處理客戶端任務(wù)的穩(wěn)定狀態(tài)。最后,例如,因?yàn)榻灰兹战Y(jié)束,每個(gè)虛擬機(jī)可到達(dá)行為被最小化的空閑狀態(tài)。
由于每個(gè)階段帶來(lái)新的問(wèn)題和機(jī)會(huì),所以識(shí)別虛擬機(jī)何時(shí)在階段之間轉(zhuǎn)換可能是有利的。發(fā)明內(nèi)容
本發(fā)明提供一種計(jì)算機(jī)實(shí)現(xiàn)的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品,用于基于容易獲得的虛擬機(jī)度量集將虛擬機(jī)階段歸類。數(shù)據(jù)處理系統(tǒng)啟動(dòng)虛擬機(jī)。其設(shè)置因子階段范圍,其中對(duì)于每個(gè)組合因子和階段,存在對(duì)應(yīng)的范圍,以及其中每個(gè)范圍至少與重設(shè)范圍一樣寬。他設(shè)置用于對(duì)虛擬機(jī)度量進(jìn)行采樣的頻率,并按照一個(gè)頻率對(duì)虛擬機(jī)度量進(jìn)行采樣,為每個(gè)因子形成多個(gè)虛擬機(jī)度量。其對(duì)每個(gè)虛擬機(jī)度量滿足的每個(gè)范圍應(yīng)用一個(gè)值,形成與范圍(和階段)對(duì)應(yīng)的多個(gè)階段合格值。他還將與每個(gè)階段對(duì)應(yīng)的所有階段合格值進(jìn)行求和,為每個(gè)階段形成階段可能性。數(shù)據(jù)處理系統(tǒng)還選擇在多個(gè)階段可能性中與最高階段可能性對(duì)應(yīng)/具有最高階段可能性的階段,作為當(dāng)前階段。數(shù)據(jù)處理系統(tǒng)確定當(dāng)前范圍是否不同于先前范圍。數(shù)據(jù)處理系統(tǒng)響應(yīng)于當(dāng)前范圍不同的確定,擴(kuò)大與當(dāng)前階段對(duì)應(yīng)的每個(gè)范圍,并可適配其內(nèi)部算法。
從另一方面瀏覽本發(fā)明,提供一種將虛擬機(jī)階段歸類的計(jì)算機(jī)實(shí)現(xiàn)的方法,該方法包括:對(duì)每個(gè)虛擬機(jī)度量和虛擬機(jī)階段組合,確定至少一個(gè)標(biāo)準(zhǔn)滿足或不滿足,其中虛擬機(jī)度量測(cè)量虛擬機(jī)的性能;確定對(duì)于虛擬機(jī)的每個(gè)虛擬機(jī)階段滿足的標(biāo)準(zhǔn)的計(jì)數(shù);基于具有與每個(gè)虛擬機(jī)階段對(duì)應(yīng)滿足的標(biāo)準(zhǔn)的每個(gè)計(jì)數(shù)中滿足的最多標(biāo)準(zhǔn)的所選虛擬機(jī),從虛擬機(jī)階段中選擇所選虛擬機(jī)階段;和響應(yīng)于選擇所選虛擬機(jī)階段,改變數(shù)據(jù)處理系統(tǒng)資源的分配以響應(yīng)于選擇所選虛擬機(jī)階段。
優(yōu)選地,所選虛擬機(jī)階段是穩(wěn)定階段,并且改變數(shù)據(jù)處理系統(tǒng)資源的分配是對(duì)于增加向虛擬機(jī)分配的存儲(chǔ)器進(jìn)行的改變。


認(rèn)為是新穎性特征的本發(fā)明的特性在所附權(quán)利要求中有所闡述。然而,在結(jié)合附圖閱讀時(shí),本發(fā)明本身以及優(yōu)選實(shí)施方式、及其他目的和優(yōu)點(diǎn)將參照以下示例性實(shí)施例的具體實(shí)施方式
被最好地理解,其中:
圖1是根據(jù)本發(fā)明的示例性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的框圖2是根據(jù)本發(fā)明的示例性實(shí)施例在計(jì)算機(jī)系統(tǒng)中操作的軟件組件的關(guān)系的框圖3是根據(jù)本發(fā)明的示例性實(shí)施例的JVM的框圖4是根據(jù)本發(fā)明的示例性實(shí)施例的狀態(tài)或階段視圖5是根據(jù)本發(fā)明的示例性實(shí)施例的收集虛擬機(jī)度量和作出相應(yīng)階段改變的流程圖6A是根據(jù)本發(fā)明的示例性實(shí)施例的因子階段范圍的表;和
圖6B是根據(jù)本發(fā)明的示例性實(shí)施例的比較示例性虛擬機(jī)度量的表。
具體實(shí)施方式
現(xiàn)在參照附圖,特別地參照?qǐng)D1,示出實(shí)現(xiàn)示例性實(shí)施例的方面的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)100是計(jì)算機(jī)的實(shí)例,其中可設(shè)置有實(shí)現(xiàn)本發(fā)明的處理的代碼或指令。在所示的實(shí)例中,數(shù)據(jù)處理系統(tǒng)100采用集線器架構(gòu),包括北橋和存儲(chǔ)器控制器集線器(NB/MCH) 102以及南橋和輸入/輸出(I/O)控制器集線器(SB/1CH) 104。處理器106、主存儲(chǔ)器108、和圖形處理器110連接至北橋和存儲(chǔ)器控制器集線器102。圖形處理器110可通過(guò)例如加速圖形端口(AGP)連接至NB/MCH。主存儲(chǔ)器108可通過(guò)動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器、或其他形式的易失性存儲(chǔ)器形成。易失性存儲(chǔ)器是依賴于電荷或其他能量載體的再供給以記錄和制定可訪問(wèn)數(shù)據(jù)的存儲(chǔ)器。
在所示實(shí)例中,局域網(wǎng)(LAN)適配器112連接至南橋和I/O控制器集線器104,并且音頻適配器116、鍵盤(pán)和鼠標(biāo)適配器120、調(diào)制解調(diào)器122、只讀存儲(chǔ)器(ROM) 124、硬盤(pán)驅(qū)動(dòng)器(HDD) 126、CD-R0M驅(qū)動(dòng)器130、通用串行總線(USB)端口和其他通信端口 132、和PCI/PCIe設(shè)備134通過(guò)總線138和總線140連接至南橋和I/O控制器集線器104。PCI/PCIe設(shè)備可包括例如以太網(wǎng)適配器、插件卡、和用于筆記本計(jì)算機(jī)的PC卡。PCI使用卡總線控制器,而PCIe則不使用。R0M124可以是例如閃速二進(jìn)制輸入/輸出系統(tǒng)(BIOS)。硬盤(pán)驅(qū)動(dòng)器126和CD-ROM驅(qū)動(dòng)器130可使用例如集成驅(qū)動(dòng)電子設(shè)備(IDE)或串行高級(jí)技術(shù)附件(SATA)接口。超級(jí)I/O(SIO)設(shè)備136可連接至南橋和I/O控制器集線器104。
操作系統(tǒng)在處理器106上運(yùn)行,并協(xié)調(diào)和提供圖1中數(shù)據(jù)處理系統(tǒng)100中的各個(gè)組件的控制。操作系統(tǒng)可以是商業(yè)可用的操作系統(tǒng),例如Microsoft Windows xp。Microsoft和Windows是微軟公司在美國(guó)、其他國(guó)家或共用的商標(biāo)。面向?qū)ο缶幊滔到y(tǒng)(例如Java 編程系統(tǒng))可結(jié)合操作系統(tǒng)運(yùn)行,并從數(shù)據(jù)處理系統(tǒng)100上執(zhí)行的Java 程序或應(yīng)用向操作系統(tǒng)提供調(diào)用。Java 是Oracle公司在美國(guó)、其他國(guó)家或共用的商標(biāo)。
用于操作系統(tǒng)、面向?qū)ο缶幊滔到y(tǒng)、和應(yīng)用或程序的指令設(shè)置在存儲(chǔ)設(shè)備上,例如硬盤(pán)驅(qū)動(dòng)器126,并且可加載至主存儲(chǔ)器108中用于處理器106的處理。本發(fā)明的處理可通過(guò)處理器106使用可設(shè)置在例如主存儲(chǔ)器108、只讀存儲(chǔ)器124的存儲(chǔ)器中或一個(gè)或多個(gè)外圍設(shè)備中的計(jì)算機(jī)實(shí)現(xiàn)的指令來(lái)執(zhí)行。
本領(lǐng)域技術(shù)人員可理解,圖1中的硬件可根據(jù)實(shí)現(xiàn)方案而改變。除了或代替圖1中示出的硬件,可使用例如閃速存儲(chǔ)器、等同的非易失性存儲(chǔ)器等的其他內(nèi)部硬件或外圍設(shè)備。此外,示例性實(shí)施例的處理可應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。
一些示例性實(shí)例中,數(shù)據(jù)處理系統(tǒng)100可以是個(gè)人數(shù)字助理(PDA),其配置有閃速存儲(chǔ)器,提供非易失性存儲(chǔ)器,用于存儲(chǔ)操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)??偩€系統(tǒng)可包括一個(gè)或多個(gè)總線,例如系統(tǒng)總線、I/o總線、和PCI總線。當(dāng)然,總線系統(tǒng)可使用在附連至組織(fabric)或架構(gòu)的不同組件或設(shè)備之間提供數(shù)據(jù)的傳送的任意類型的通信組織或架構(gòu)來(lái)實(shí)現(xiàn)。通信單元可包括用于發(fā)送和接收數(shù)據(jù)的一個(gè)或多個(gè)設(shè)備,例如調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。存儲(chǔ)器可以是例如在北橋和存儲(chǔ)器控制器集線器102中找到的主存儲(chǔ)器108或高速緩存。處理單元可包括一個(gè)或多個(gè)處理器或CPU。圖1中示出的實(shí)例不意味著暗示架構(gòu)的限制。例如,除了采用PDA的形式之外,數(shù)據(jù)處理系統(tǒng)100還可以是桌面型計(jì)算機(jī)、膝上型計(jì)算機(jī)、或電話設(shè)備。
這里使用的術(shù)語(yǔ)僅用于描述特定實(shí)施例的目的,并非限制本發(fā)明。這里,單數(shù)形式“一”、“一個(gè)”、和“所述”還包含復(fù)數(shù)形式,除非上下文明確指出。還可理解,術(shù)語(yǔ)“包括”和/或“包含”在本說(shuō)明書(shū)中使用時(shí)指定相關(guān)特征、整數(shù)、步驟、操作、元件和/或組件的存在,并非排除一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或其組的存在或增加。
以下權(quán)利要求中的對(duì)應(yīng)結(jié)構(gòu)、材料、動(dòng)作和所有裝置或步驟加功能元件的等同物旨在包括用于執(zhí)行與特別主張的其他主張?jiān)亟M合的功能的任意結(jié)構(gòu)、材料、或動(dòng)作。提供本發(fā)明的說(shuō)明,用于圖示和說(shuō)明的目的,并非用于以公開(kāi)的形式窮舉或限制本發(fā)明。本領(lǐng)域技術(shù)人員清楚,在不脫離本發(fā)明的范圍和精神的情況下,可以進(jìn)行許多修改和改變。選擇和描述該實(shí)施例,以最佳地說(shuō)明本發(fā)明的原理和實(shí)踐性應(yīng)用,并且使得本領(lǐng)域技術(shù)人員能夠理解對(duì)于具有適合于特定使用目的的各種修改的各個(gè)實(shí)施例的發(fā)明。
所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開(kāi)可以具體實(shí)現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊磁盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線、電線、光纜、RF等等,或者上述的任意合適的組合。
可以以一種或多種程序設(shè)計(jì)語(yǔ)言或其組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如”C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
下面將參照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計(jì)算機(jī)程序指令通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能使得計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過(guò)程。
計(jì)算機(jī)程序指令也可加載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置、或其他設(shè)備上,使得一系列操作在計(jì)算機(jī)、其他可編程裝置、或其他設(shè)備上執(zhí)行以生成計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)流程圖和/或框圖的一個(gè)或多個(gè)框指定的功能/行為的處理。
虛擬機(jī)是仿真物理硬件的一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu),通過(guò)在數(shù)據(jù)處理系統(tǒng)(例如圖1中的數(shù)據(jù)處理系統(tǒng)100)上執(zhí)行計(jì)算機(jī)指令來(lái)組織。虛擬機(jī)可依賴于物理硬件的部分提供例如易失性存儲(chǔ)器、存儲(chǔ)裝置、寄存器和處理循環(huán)的特征。偶然地,基礎(chǔ)結(jié)構(gòu)硬件可與虛擬機(jī)實(shí)例化不同。例如,作為物理數(shù)據(jù)處理系統(tǒng)資源的易失性存儲(chǔ)器可被替換為并支持盤(pán)存儲(chǔ)裝置的虛擬機(jī)實(shí)現(xiàn)方案。數(shù)據(jù)處理系統(tǒng)資源是在虛擬機(jī)的支持中可使用的物理電路、存儲(chǔ)設(shè)備或通信工具。虛擬機(jī)可以是例如Java虛擬機(jī)(JVM )。JVM是Oracle公司的商標(biāo)。
圖2是根據(jù)本發(fā)明的示例性實(shí)施例在計(jì)算機(jī)系統(tǒng)中操作的軟件組件的關(guān)系的框圖。基于Java的系統(tǒng)200包含特定平臺(tái)操作系統(tǒng)202,其為特定硬件平臺(tái)上執(zhí)行的軟件提供硬件和系統(tǒng)支持。JVM204是可結(jié)合操作系統(tǒng)執(zhí)行的一個(gè)軟件應(yīng)用。JVM204為Java運(yùn)行時(shí)環(huán)境提供執(zhí)行Java應(yīng)用或小程序206(即用Java編程語(yǔ)言編寫(xiě)的程序、servlet、或軟件組件)的能力。JVM204和其他軟件組件在其中運(yùn)行的計(jì)算機(jī)系統(tǒng)可類似于上述數(shù)據(jù)處理系統(tǒng)100。然而,JVM204可以在所謂的Java芯片、Java-on-silicon、或具有嵌入picojava核的Java處理器上的專用硬件中實(shí)現(xiàn)。
如監(jiān)測(cè)器216的內(nèi)部JVM監(jiān)測(cè)器(profiler)是檢測(cè)在執(zhí)行時(shí)可消耗大量CPU資源的Java方法的JVM組件。在一個(gè)可能的實(shí)現(xiàn)方案中,內(nèi)部JVM監(jiān)測(cè)器基于周期性檢查運(yùn)行線程的Java棧的采樣機(jī)構(gòu)。在每個(gè)采樣點(diǎn),在棧的頂部找到的方法再一次接收測(cè)量。具有更多測(cè)量的方法認(rèn)為在統(tǒng)計(jì)上比具有更少測(cè)量的方法更加活動(dòng),并且可看作即時(shí)(just-1n-time, jit)編譯以改善JVM的性能。在采樣點(diǎn)收集的數(shù)據(jù)稱為“采樣”。落入按解釋運(yùn)行的方法的采樣稱為“解釋的采樣”。類似地,歸于已經(jīng)被即時(shí)編譯的Java方法的采樣稱為“編譯的采樣”。在Java應(yīng)用的初期階段,大部分Java方法按解釋運(yùn)行,并且預(yù)期為解釋的采樣將占多數(shù)。隨著時(shí)間推移,越來(lái)越多的Java方法被jit編譯,可得到多數(shù)采樣為編譯的采樣。
類是用于建立對(duì)象的實(shí)例的描述或模板。類可包括變量、方法、或兩者。對(duì)象是動(dòng)態(tài)建立的類實(shí)例或數(shù)組。存儲(chǔ)器的分配和用于對(duì)象的變量的訪問(wèn)稱為實(shí)例化。用編寫(xiě)的Java 代碼實(shí)例化對(duì)象的方式為聲明〈Class-nameXobject-name>=”new”〈Class-name>。對(duì)象可以是類,這個(gè)情況下,類定義構(gòu)成對(duì)象的方式。由此,類是用于建立該類型的對(duì)象的模式。類還可定義實(shí)例化的對(duì)象將包含的變量、以及實(shí)例化的對(duì)象的方法。該類型的每個(gè)對(duì)象可使用在類中聲明或描述的變量和方法。
垃圾收集器(GC)是允許廢棄對(duì)象占用的存儲(chǔ)器變?yōu)榭臻e以用于對(duì)象的未來(lái)分配的JVM組件。垃圾收集器(例如垃圾收集器201)可在存儲(chǔ)器中合并活動(dòng)對(duì)象,從而空閑存儲(chǔ)器在至少一個(gè)更大的相鄰塊中可用。
JVM在Java運(yùn)行時(shí)環(huán)境的中心,其支持Java環(huán)境的許多方面,包括其架構(gòu)、安全特征、跨網(wǎng)絡(luò)的移動(dòng)性和平臺(tái)獨(dú)立性。JVM是虛擬計(jì)算機(jī),即抽象指定的計(jì)算機(jī)。該規(guī)范定義了每個(gè)JVM必須實(shí)現(xiàn)的某些特征,其中設(shè)計(jì)選擇的一些范圍可取決于在上面設(shè)計(jì)JVM以執(zhí)行的平臺(tái)。例如,所有JVM必須執(zhí)行Java字節(jié)代碼,并使用一套技術(shù)來(lái)執(zhí)行由字節(jié)代碼表示的指令。JVM可在軟件中完整地實(shí)現(xiàn)或有一些在硬件中實(shí)現(xiàn)。這個(gè)靈活性允許為主機(jī)計(jì)算機(jī)和PDA設(shè)計(jì)不同JVM。
JVM是實(shí)際執(zhí)行Java程序的虛擬計(jì)算機(jī)組件的名稱。Java程序并非直接通過(guò)中央處理器運(yùn)行,而是通過(guò)JVM,這本身是處理器上運(yùn)行的一部分軟件。JVM允許Java程序在不同平臺(tái)上執(zhí)行,而不是僅編譯代碼的一個(gè)平臺(tái)。為JVM編譯Java程序。這樣,Java能夠支持用于許多類型的數(shù)據(jù)處理系統(tǒng)的應(yīng)用,可包含各種中央處理單元和操作系統(tǒng)架構(gòu)。為了使得Java應(yīng)用能夠在不同類型的數(shù)據(jù)處理系統(tǒng)上執(zhí)行,編譯器典型地生成架構(gòu)中立的文件格式。編譯的代碼可在許多處理器上執(zhí)行,假設(shè)存在Java運(yùn)行時(shí)系統(tǒng)。Java編譯器生成對(duì)于特定計(jì)算機(jī)架構(gòu)非特定的字節(jié)代碼指令。字節(jié)代碼是Java編譯器生成且Java解釋器執(zhí)行的機(jī)器獨(dú)立代碼。Java編譯器是備選地解碼和解釋一段或多段字節(jié)代碼的JVM的一部分。這些字節(jié)代碼指令被設(shè)計(jì)為容易在任意計(jì)算機(jī)上解釋并容易地空中(on the fly)翻譯成本地機(jī)器代碼。字節(jié)代碼可通過(guò)即時(shí)編譯器或JIT翻譯成本地代碼。
JVM加載類文件并在其中執(zhí)行字節(jié)代碼。類文件通過(guò)JVM中的類加載器加載。類加載器加載應(yīng)用中的類文件和應(yīng)用所需的Java應(yīng)用編程接口(API)中的類文件。執(zhí)行字節(jié)代碼的執(zhí)行引擎可跨平臺(tái)和實(shí)施方案而不同。
一種類型的基于軟件執(zhí)行引擎是即時(shí)(just-1n-time,JIT)編譯器。通過(guò)這個(gè)類型的執(zhí)行,在成功履行用于使方法進(jìn)行即時(shí)的一些類型的標(biāo)準(zhǔn)時(shí),將方法的字節(jié)代碼編譯成本地機(jī)器代碼。即時(shí)完成(或jit)是在運(yùn)行時(shí)方法的字節(jié)代碼到本地機(jī)器代碼的轉(zhuǎn)換。然后,在方法的下次調(diào)用時(shí),高速緩存并重新使用該方法的本地機(jī)器代碼。執(zhí)行引擎也可在硬件中實(shí)現(xiàn)并嵌入芯片上,從而本地執(zhí)行Java字節(jié)代碼。
響應(yīng)于數(shù)據(jù)處理系統(tǒng)接收編譯的請(qǐng)求,對(duì)方法進(jìn)行編譯。因?yàn)榱硪环椒ㄐ枰幾g方法的功能,或因?yàn)閮?nèi)部JVM監(jiān)測(cè)組件檢測(cè)到該方法對(duì)性能[LXY1]非常重要,所以可產(chǎn)生編譯的請(qǐng)求。JVM接收的編譯請(qǐng)求的數(shù)目可相關(guān)于JVM當(dāng)前存在的階段。此外,編譯的類型也相關(guān)。由此,JVM可在對(duì)于方法發(fā)出的第一編譯請(qǐng)求和用于方法的第二編譯請(qǐng)求(重編譯請(qǐng)求)之間作出區(qū)分。
當(dāng)在平臺(tái)特定的操作系統(tǒng)上的軟件中實(shí)現(xiàn)的JVM上執(zhí)行應(yīng)用時(shí),Java應(yīng)用可通過(guò)調(diào)用本地方法與主機(jī)操作系統(tǒng)交互。Java方法用Java語(yǔ)言編寫(xiě),編譯成字節(jié)代碼,并存儲(chǔ)在類文件中。本地方法用某些其他語(yǔ)言編寫(xiě),并編譯成特定處理器的本地機(jī)器代碼。本地方法存儲(chǔ)于動(dòng)態(tài)鏈接的庫(kù),其確切的形式為平臺(tái)特定。
圖3是根據(jù)本發(fā)明的示例性實(shí)施例的JVM的框圖。JVM350包括類加載器子系統(tǒng)311,這是用于加載類型的機(jī)構(gòu),例如類和接口,假定完全是合格的名稱。JVM350還包含運(yùn)行時(shí)數(shù)據(jù)區(qū)域304、執(zhí)行引擎307、本地方法接口 308、和存儲(chǔ)器管理310。本地方法接口可以是例如Java本地接口(JNI)。執(zhí)行引擎307是用于執(zhí)行由類加載器子系統(tǒng)311加載的類的方法中包含的指令的機(jī)構(gòu)。執(zhí)行引擎307可以是例如Java解釋器312或即時(shí)編譯器314。本地方法接口 308允許訪問(wèn)基礎(chǔ)操作系統(tǒng)中的資源。本地方法接口 308可以是例如Java 本地接口(JNI)。
運(yùn)行時(shí)區(qū)域304包含本地方法棧326、Java棧318、程序計(jì)數(shù)器(PC)寄存器320、方法區(qū)域322、和堆324。這些不同數(shù)據(jù)區(qū)域代表JVM350執(zhí)行程序所需的存儲(chǔ)器的組織。
Java棧318用于存儲(chǔ)Java方法調(diào)用的狀態(tài)。當(dāng)啟動(dòng)新線程時(shí),JVM為該線程建立新Java棧。JVM僅在Java棧上直接執(zhí)行2個(gè)操作:其推送和彈出幀。線程的Java棧為該線程存儲(chǔ)Java方法調(diào)用的狀態(tài)。Java方法調(diào)用的狀態(tài)包括其局部變量、對(duì)其調(diào)用所采用的參數(shù)、其返回值(如果存在)、和中間計(jì)算。Java棧包括???。棧框包含一個(gè)Java方法調(diào)用的狀態(tài)。當(dāng)線程調(diào)用方法時(shí),JVM向線程的Java棧上推送新框。當(dāng)該方法完成時(shí),JVM彈出用于該方法的框并丟棄它。JVM不具有用于保持中間值的任意寄存器;需要或生成中間值的任意Java指令使用用于保持中間值的棧。這樣,為各種平臺(tái)架構(gòu)很好地定義Java指令集。
程序計(jì)數(shù)器(PC)寄存器320用于指示要執(zhí)行的下一指令。每個(gè)實(shí)例化的線程得到其自己的PC寄存器和Java棧。如果該線程正在執(zhí)行方法,則PC寄存器的值指示要執(zhí)行的下一指令。如果該線程正在執(zhí)行本地方法,則PC寄存器的內(nèi)容沒(méi)有被定義。
本地方法棧326存儲(chǔ)本地方法的調(diào)用的狀態(tài)。本地方法調(diào)用的狀態(tài)用依賴于實(shí)現(xiàn)方案的方式存儲(chǔ)在本地方法棧、寄存器、或其他依賴于實(shí)現(xiàn)方案的區(qū)域中。在一些JVM實(shí)現(xiàn)方案中,將本地方法棧326和Java棧318組合。
方法區(qū)域322包含類數(shù)據(jù),而堆324包含所有實(shí)例化的對(duì)象。在這些實(shí)例中,恒定池位于方法區(qū)域322中。JVM規(guī)范嚴(yán)格定義數(shù)據(jù)類型和操作。大多JVM具有一個(gè)方法區(qū)域和一個(gè)堆,其每個(gè)由JVM(例如JVM350)中運(yùn)行的所有線程共享。當(dāng)JVM350加載類文件時(shí),他從類文件中包含的二進(jìn)制數(shù)據(jù)解析關(guān)于類型的信息。JVM350將這個(gè)類型的信息放置于方法區(qū)域322中。每次建立類實(shí)例或數(shù)組時(shí),從堆324分配用于新對(duì)象的存儲(chǔ)器。JVM350包括在存儲(chǔ)器中為堆324分配存儲(chǔ)器空間的指令,但是不包括在存儲(chǔ)器將該空間釋放的指令。在所示實(shí)例中,存儲(chǔ)器管理310管理存儲(chǔ)器空間。存儲(chǔ)器空間在為堆324分配的存儲(chǔ)器中。存儲(chǔ)器管理310可包括垃圾收集器,其自動(dòng)地重新主張不再被引用的對(duì)象使用的存儲(chǔ)器。此外,垃圾收集器還可移動(dòng)對(duì)象以減少堆碎片。
在示例性實(shí)施例中使用的步驟的描述中將使用以下定義。
類(class)是定義如何存儲(chǔ)和訪問(wèn)數(shù)據(jù)的文件中封裝的方法和數(shù)據(jù)的組合。類可形成由此建立或?qū)嵗\(yùn)行代碼的實(shí)例的模板。
客戶端為依賴于其他實(shí)體的執(zhí)行程序或者訪問(wèn)或處理客戶端的數(shù)據(jù)的執(zhí)行軟件。一些情況下,要處理的數(shù)據(jù)可以是完全合格的類名稱,并且返回的結(jié)果可以是實(shí)例。
代碼對(duì)象(code object)或?qū)ο?object)是可以被解釋的代碼、編譯的JVM(即字節(jié)代碼)、或機(jī)器語(yǔ)言。他一旦為特定目的被實(shí)例化,則可以是類的實(shí)例。
對(duì)象實(shí)例體(ObjectInstantiator)或 Objectlnstantiator 為在處理器執(zhí)行時(shí)建立對(duì)象的實(shí)例的程序或類。對(duì)象實(shí)例體建立的對(duì)象符合面向?qū)ο缶幊?00P)定義的對(duì)象的概念,但是一般地為可以從其他對(duì)象繼承或不繼承或允許其行為和數(shù)據(jù)被其他對(duì)象繼承的行為和數(shù)據(jù)的封裝表示。ObjectInstantiator的概念包括對(duì)象建立體(object creator)或 ObjectCreator0
圖4是根據(jù)本發(fā)明的示例性實(shí)施例的狀態(tài)或階段視圖。虛擬機(jī)階段是虛擬機(jī)對(duì)數(shù)據(jù)處理系統(tǒng)的資源使用的總體描述符。虛擬機(jī)階段可以按照階段之間的生命周期或其他進(jìn)展表征或歸類虛擬機(jī)操作的狀態(tài)。虛擬機(jī)階段可按照描述或建議將虛擬機(jī)設(shè)計(jì)為尋址的目標(biāo)和對(duì)象的方式概括多個(gè)虛擬機(jī)度量。虛擬機(jī)階段可以是開(kāi)始(start-up)、空閑(idle)、加速(ramp-up)、和穩(wěn)定(steady)。開(kāi)始階段可以是虛擬機(jī)執(zhí)行的階段,此時(shí)加載類是虛擬機(jī)的主導(dǎo)功能。例如,開(kāi)始401可以是一旦在數(shù)據(jù)處理系統(tǒng)上被實(shí)例化而虛擬機(jī)進(jìn)入的階段。相比而言,空閑階段403可以是當(dāng)代替履行來(lái)自客戶端的請(qǐng)求或任務(wù)的更活動(dòng)和專業(yè)的處理執(zhí)行偶然管理(housekeeping)時(shí)而虛擬機(jī)進(jìn)入的階段。除了空閑階段之外的階段稱為非空閑階段??臻e403可以是其他行為、例如加速階段405或穩(wěn)定階段407的前導(dǎo)。典型地,虛擬機(jī)可在穩(wěn)定階段407消耗其大量時(shí)間。穩(wěn)定階段407是發(fā)生對(duì)客戶端來(lái)說(shuō)高成效的例程行為的階段,除了與空閑階段403相關(guān)的那些行為。下面將解釋進(jìn)一步的區(qū)別??衫斫猓蓪?shí)現(xiàn)或多或少的階段。例如,深度穩(wěn)定狀態(tài)409可按照虛擬機(jī)相對(duì)于穩(wěn)定階段表現(xiàn)的持續(xù)時(shí)間與穩(wěn)定階段407區(qū)分。由此,當(dāng)虛擬機(jī)已經(jīng)處于穩(wěn)定階段超過(guò)5分鐘、或另一預(yù)定時(shí)間,則可確定虛擬機(jī)處于深度穩(wěn)定狀態(tài),例如深度穩(wěn)定409。階段圖中所述的每個(gè)階段是假設(shè)性的虛擬機(jī)階段。假設(shè)性的虛擬機(jī)階段是虛擬機(jī)可運(yùn)行的階段,并且可為此設(shè)置可測(cè)量的標(biāo)準(zhǔn),其可選擇該假設(shè)性的虛擬機(jī)階段作為虛擬機(jī)的實(shí)際和當(dāng)前階段。由此,假設(shè)性的虛擬機(jī)階段是虛擬機(jī)階段的選擇集,虛擬機(jī)或其他執(zhí)行的方法可從中選擇以確定虛擬機(jī)階段。
示例性實(shí)施例可包括確定與虛擬機(jī)相關(guān)的虛擬機(jī)度量的數(shù)據(jù)處理系統(tǒng),這在用于假設(shè)性的虛擬機(jī)階段的標(biāo)準(zhǔn)中滿足于一個(gè)或多個(gè)虛擬機(jī)度量。此外,數(shù)據(jù)處理系統(tǒng)可確定對(duì)于可能的虛擬機(jī)階段中的每個(gè)滿足的標(biāo)準(zhǔn)的計(jì)數(shù)。此外,數(shù)據(jù)處理系統(tǒng)可確定哪個(gè)虛擬機(jī)階段具有最多滿足的標(biāo)準(zhǔn),由此選擇該虛擬機(jī)階段。因此,數(shù)據(jù)處理系統(tǒng)可改變數(shù)據(jù)處理系統(tǒng)資源的分配,以響應(yīng)于選擇所選的虛擬機(jī)階段。結(jié)果,數(shù)據(jù)處理系統(tǒng)可為虛擬機(jī)優(yōu)化處理,或更有效地,在可同時(shí)競(jìng)爭(zhēng)這樣的資源的若干虛擬機(jī)之間分配數(shù)據(jù)處理系統(tǒng)。
圖5是根據(jù)本發(fā)明的示例性實(shí)施例的收集虛擬機(jī)度量和作出相應(yīng)階段改變的流程圖。起初,數(shù)據(jù)處理系統(tǒng)啟動(dòng)虛擬機(jī)(步驟501)。這個(gè)步驟之后是將初始階段設(shè)置為開(kāi)始(STARTUP)(步驟502)。接下來(lái),數(shù)據(jù)處理系統(tǒng)可設(shè)置因子階段范圍的表(步驟503)。因子階段范圍是與虛擬機(jī)度量和假設(shè)性階段對(duì)應(yīng)的范圍或數(shù)字標(biāo)準(zhǔn)。以下參見(jiàn)圖6A,用于因子階段范圍的詳細(xì)描述。假設(shè)性階段是可作為將虛擬機(jī)階段歸類的候選的若干階段之一。因子階段范圍的一些實(shí)例包括0-2000、300或更多、和O。因子表是具有用于虛擬機(jī)和假設(shè)性范圍的每個(gè)配對(duì)的因子階段范圍的表。由此,如果虛擬機(jī)度量滿足因子階段范圍,則虛擬機(jī)是用于對(duì)應(yīng)假設(shè)性階段的階段合格的。換句話說(shuō),對(duì)于當(dāng)前測(cè)量的虛擬機(jī)度量滿足的那些虛擬機(jī)度量和階段組合,虛擬機(jī)可能在特定階段中至少符合該虛擬機(jī)度量。由于因子階段范圍僅是因子,而不必決定階段,所以合格的那些因子階段范圍在一起被因子化,隨后,確定特定階段是否最可能是虛擬機(jī)的階段。
接著,數(shù)據(jù)處理系統(tǒng)可設(shè)置喚醒頻率(步驟505)。喚醒頻率可用于周期性由虛擬機(jī)觸發(fā)虛擬機(jī)度量的收集或采樣,這個(gè)任務(wù)典型地在稱為“采樣線程”的專用線程上執(zhí)行。其他處理可確定這樣的虛擬機(jī)度量是否信號(hào)傳輸虛擬機(jī)轉(zhuǎn)換到的新階段。
接著,采樣線程休眠。響應(yīng)于休眠周期期滿(步驟507),可采取進(jìn)一步動(dòng)作。休眠周期對(duì)應(yīng)于喚醒頻率,更早被設(shè)置。當(dāng)休眠時(shí)間期滿時(shí),虛擬機(jī)可收集非直接中央處理單元(或非直接CPU)度量(步驟509)。非直接CPU度量是不基于現(xiàn)代CPU中可用的硬件執(zhí)行計(jì)數(shù)器的虛擬機(jī)度量。由此,非直接CPU度量是不需要借助于核設(shè)備驅(qū)動(dòng)器的使用可獲得的度量。而大多虛擬機(jī)度量可從虛擬機(jī)本身的內(nèi)部數(shù)據(jù)結(jié)構(gòu)直接獲得一因此可非常廉價(jià)地被詢問(wèn)一一些需要操作系統(tǒng)支持。需要操作系統(tǒng)支持的這樣的虛擬機(jī)度量的實(shí)例為CPU利用。
接著,虛擬機(jī)可基于虛擬機(jī)度量(例如非直接CPU度量)選擇階段(步驟511)。這個(gè)步驟可作為3個(gè)子步驟來(lái)執(zhí)行。首先,虛擬機(jī)可對(duì)每個(gè)虛擬機(jī)度量滿足的每個(gè)范圍應(yīng)用一個(gè)值,形成與因子階段范圍對(duì)應(yīng)的多個(gè)階段合格值。例如,可為滿足的因子階段范圍分配I值,而為不滿足的這樣的因子階段范圍分配O值。當(dāng)一個(gè)因子階段范圍傾向于與其他因子階段范圍相比賦予更高的權(quán)重,則可使用更大的值。如果因子階段范圍相比于其他因子階段范圍降低重要性,則可使用更小的值。
第二,虛擬機(jī)可將與每個(gè)階段(或假設(shè)性階段)對(duì)應(yīng)的所有階段合格值進(jìn)行求和,形成對(duì)于每個(gè)階段的階段可能性。換句話說(shuō),階段可能性是適合于假設(shè)性階段的所有階段合格值的總和。第三,虛擬機(jī)可在多個(gè)階段可能性中選擇與最高階段可能性對(duì)應(yīng)的階段,作為當(dāng)前階段。換句話說(shuō),獲得對(duì)于所有假設(shè)性階段(例如開(kāi)始、空閑、加速、穩(wěn)定和深度穩(wěn)定)的階段可能性的虛擬機(jī)可選擇具有最高階段可能性的階段??刹捎闷渌麆?dòng)作來(lái)優(yōu)化對(duì)于所選階段的虛擬機(jī)的性能,或備選地,如果該階段建議更好地犧牲一些實(shí)施性能以避免成本,則可將虛擬機(jī)的操作成本降低。
接著,虛擬機(jī)可確定是否改變當(dāng)前階段(步驟513)。如果虛擬機(jī)確定對(duì)于當(dāng)前階段沒(méi)有改變,則在步驟507虛擬機(jī)可返回至按一個(gè)頻率采樣虛擬機(jī)度量。然而,在步驟513的肯定結(jié)果可得到使得與當(dāng)前階段對(duì)應(yīng)的每個(gè)范圍擴(kuò)大的虛擬機(jī)(步驟515)。由此,對(duì)于當(dāng)前范圍,更有可能滿足與因子階段范圍的未來(lái)比較。這個(gè)特征可提供一定的滯后,并防止在階段之間不期望的頻繁切換。
滯后可能被進(jìn)一步提升。接著,虛擬機(jī)可將與該虛擬機(jī)相關(guān)的先前階段對(duì)應(yīng)的每個(gè)因子階段范圍進(jìn)行重設(shè)(步驟519)。重設(shè)包含將適合于先前階段的每個(gè)因子階段范圍設(shè)置為在執(zhí)行步驟515之前存在的值或標(biāo)準(zhǔn)。由此,虛擬機(jī)度量可更加遠(yuǎn)離每個(gè)因子階段范圍的邊緣情況。步驟515和519的組合效果可使得虛擬機(jī)度量進(jìn)一步嵌入于當(dāng)前階段的因子階段范圍內(nèi),而先前因子階段范圍從當(dāng)前測(cè)量的虛擬機(jī)度量后退。因子階段范圍的擴(kuò)大可以到達(dá)上限、下線、或兩者,假設(shè)多個(gè)限制存在于因子階段范圍。此外,在沒(méi)有適合于因子階段范圍的上限或范圍時(shí),不擴(kuò)大該特定因子階段范圍。
圖6A是根據(jù)本發(fā)明的示例性實(shí)施例的因子階段范圍的表。每個(gè)因子階段范圍表可在將近虛擬機(jī)的實(shí)例化時(shí)設(shè)置。此外,因子階段范圍表可獨(dú)立于每個(gè)虛擬機(jī)而設(shè)置,由此可被動(dòng)態(tài)修正以提供為每個(gè)虛擬機(jī)選擇的階段的滯后。因子階段范圍表600可包括9個(gè)因子,在組合時(shí)可用作虛擬機(jī)的階段選擇的基礎(chǔ)。懸置JIT編譯請(qǐng)求的數(shù)目601是還未完成的JIT編譯請(qǐng)求的指示。該數(shù)目可從例如圖3的JIT編譯器314的即時(shí)編譯器獲得。
第一時(shí)間編譯的到達(dá)率是JIT編譯器從先前采樣時(shí)段接收的第一時(shí)間編譯的數(shù)目,除以采樣的時(shí)段。類似地,重新編譯請(qǐng)求的到達(dá)率是這樣的重新編譯請(qǐng)求的數(shù)目除以采樣的時(shí)段。
類加載率604可從類加載器311獲得。在該時(shí)段加載的類的數(shù)目除以該時(shí)段,獲得該率。當(dāng)確定是否滿足與類加載率和空閑622階段對(duì)應(yīng)的因子階段范圍時(shí),虛擬機(jī)可確定在該時(shí)段期間是否加載任何類。由此,執(zhí)行一個(gè)測(cè)試,而不確定虛擬機(jī)度量是否落于兩個(gè)值之間。
編譯代碼中的采樣605是從內(nèi)部JVM監(jiān)測(cè)器機(jī)構(gòu)216應(yīng)用于已經(jīng)jit編譯的方法的最后檢查之后監(jiān)測(cè)(sampling)采樣的數(shù)目。
解釋代碼中的采樣606是從內(nèi)部JVM監(jiān)測(cè)器機(jī)構(gòu)216應(yīng)用于仍舊作為解釋運(yùn)行的方法的最后檢查之后監(jiān)測(cè)采樣的數(shù)目。
活動(dòng)線程的數(shù)目607是虛擬機(jī)建立的活動(dòng)地執(zhí)行一些可用任務(wù)并有助于應(yīng)用的進(jìn)展的應(yīng)用線程的數(shù)目。相比而言,非活動(dòng)線程僅等待工作,而不消耗CPU周期。類似地,執(zhí)行處理的CPU利用608是在數(shù)據(jù)處理系統(tǒng)中CPU或核心中向虛擬機(jī)分配的CPU周期的百分比。
虛擬機(jī)度量“穩(wěn)定階段的持續(xù)時(shí)間”是虛擬機(jī)持久處于穩(wěn)定階段或深度穩(wěn)定階段的分鐘的數(shù)目。
圖6B是根據(jù)本發(fā)明的示例性實(shí)施例的比較或概括示例性虛擬機(jī)度量的比較的表。例如,采樣時(shí)段可為懸置JIT編譯請(qǐng)求的數(shù)目、第一時(shí)間編譯的到達(dá)率、重新編譯請(qǐng)求的到達(dá)率、類加載率、編譯代碼中的采樣、解釋代碼中的采樣、活動(dòng)線程的數(shù)目、和執(zhí)行處理的CPU利用的每個(gè)分別生成1005,1005,5,250,25,0,5,5和O。穩(wěn)定狀態(tài)的持續(xù)時(shí)間可能不可用或未定義。
由此,可確定階段合格值。例如,由于虛擬機(jī)度量1005滿足圖6A的范圍0-2000640,滿足與懸置JIT編譯請(qǐng)求的數(shù)目651和開(kāi)始階段656對(duì)應(yīng)的因子階段范圍的標(biāo)準(zhǔn)的I的階段合格值680是“I”。此外,該表為每個(gè)假設(shè)性階段提供階段合格值的總和,作為階段可能性的集合690。對(duì)于虛擬機(jī)度量655,對(duì)應(yīng)的階段可能性具有與加速階段對(duì)應(yīng)的最高階段可能性。由此,虛擬機(jī)可選擇加速作為當(dāng)前階段。
一旦選擇當(dāng)前階段,則各個(gè)響應(yīng)是可能的。例如,虛擬機(jī)可響應(yīng)于選擇空閑階段而降低其背景管理行為的頻率。頻率的降低是相比于在非空閑階段發(fā)生的管理行為。這個(gè)響應(yīng)可使得虛擬機(jī)的客戶或其他所有者免于必須在空閑期間為CPU周期進(jìn)行支付。此外,這可允許操作系統(tǒng)從易失性存儲(chǔ)器去除虛擬機(jī)的圖像,并用其他活動(dòng)應(yīng)用代替。
對(duì)于確定虛擬機(jī)處于開(kāi)始階段的響應(yīng)可包括禁止Java虛擬機(jī)(JVM)的表示。另一響應(yīng)可以是在即時(shí)編譯期間延緩jit編譯或減少優(yōu)化努力,以向客戶提供更好的開(kāi)始體驗(yàn)或在安排的事件(如軟件升級(jí))或不可預(yù)測(cè)的事件(如硬件或軟件故障)之后減少停機(jī)時(shí)間。
響應(yīng)優(yōu)化的另一實(shí)例可包括對(duì)以下情況的響應(yīng)。起初,虛擬機(jī)可以在開(kāi)始階段,例如由流程圖500的步驟選擇。在這樣的開(kāi)始階段,虛擬機(jī)應(yīng)抑制分配相對(duì)大量的存儲(chǔ)器。虛擬機(jī)還可采樣,對(duì)虛擬機(jī)度量滿足的每個(gè)范圍應(yīng)用值或階段可能性集,以選擇當(dāng)前階段為穩(wěn)定階段的方式將這樣的值求和。響應(yīng)于這樣的轉(zhuǎn)換,虛擬機(jī)可選擇與存儲(chǔ)器占用相比傾向于執(zhí)行速度的使用內(nèi)部算法。
另一響應(yīng)優(yōu)化可包括對(duì)確定穩(wěn)定階段或深度穩(wěn)定階段的響應(yīng)。作為到達(dá)深度穩(wěn)定階段的初始步驟,虛擬機(jī)可確定在穩(wěn)定階段的連續(xù)執(zhí)行是否達(dá)到預(yù)定時(shí)間。由此,響應(yīng)于確定滿足預(yù)定時(shí)間條件,虛擬機(jī)可禁止即時(shí)(JIT)編譯或方法監(jiān)測(cè)。方法監(jiān)測(cè)為收集關(guān)于運(yùn)行時(shí)方法的行為的信息的動(dòng)作。所分配的信息的實(shí)例包括在方法內(nèi)的什么路徑被更頻繁地執(zhí)行,什么目標(biāo)更可能被接口調(diào)用來(lái)引用等。
由此,通過(guò)以上公開(kāi)的方法和裝置,托管一個(gè)或多個(gè)虛擬機(jī)的數(shù)據(jù)處理系統(tǒng)可表征每個(gè)虛擬機(jī)到達(dá)特定階段。一旦一個(gè)階段已知,則可根據(jù)客戶端的偏好,或備選地?cái)?shù)據(jù)處理系統(tǒng)的所有者或操作者的偏好,執(zhí)行額外優(yōu)化。因此,可動(dòng)態(tài)調(diào)節(jié)所述優(yōu)化,以適合于在虛擬機(jī)的生命周期期間為每個(gè)階段分配的不同目標(biāo)。
附圖中的流程圖和框圖示出根據(jù)本發(fā)明各個(gè)實(shí)施例的系統(tǒng)、方法、和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的架構(gòu)、功能、和操作。由此,流程圖或框圖中的每個(gè)框可表示包括用于實(shí)現(xiàn)特定邏輯功能的一個(gè)或多個(gè)可執(zhí)行指令的模塊、段、或代碼部分。還應(yīng)注意,在一些實(shí)施例中,在框中提及的功能可并非按照附圖中提及的順序發(fā)生。例如,連續(xù)示出的兩個(gè)框可事實(shí)上基本同時(shí)執(zhí)行,或所述框有時(shí)候可按相反順序執(zhí)行,這取決于涉及的功能。框圖和/或流程圖的框的每個(gè)框、以及框圖和/或流程圖的框的組合可通過(guò)執(zhí)行特定功能或行為的基于專用硬件系統(tǒng)與專用硬件和計(jì)算機(jī)指令結(jié)合來(lái)實(shí)現(xiàn)。
本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例或包含硬件和軟件元素的實(shí)施例的形式。在優(yōu)選實(shí)施例中,在包括但不限于固件、駐留軟件、微碼等的硬件和軟件中實(shí)現(xiàn)本發(fā)明。
此外,本發(fā)明可采用從計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可訪問(wèn)的計(jì)算機(jī)程序產(chǎn)品的形式,所述計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)提供用于計(jì)算機(jī)或任意指令執(zhí)行系統(tǒng)或與其連接的程序代碼。為了這里說(shuō)明的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是可包含、存儲(chǔ)、通信、傳播或傳輸用于指令執(zhí)行系統(tǒng)、裝置或設(shè)備或與其連接的程序的任意有形裝置。
介質(zhì)可以是電子、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的實(shí)例包括:半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可卸計(jì)算機(jī)磁盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬盤(pán)和光盤(pán)。光盤(pán)的當(dāng)前實(shí)例包括壓縮盤(pán)-只讀存儲(chǔ)器(CD-ROM)、壓縮盤(pán)-讀 / 寫(xiě)(CD-R/W)和 DVD。
適用于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)包括直接或通過(guò)系統(tǒng)總線間接與存儲(chǔ)器元件耦合的至少一個(gè)處理器。存儲(chǔ)器元件可包括在程序代碼的實(shí)際執(zhí)行期間采用的本地存儲(chǔ)器、海量存儲(chǔ)裝置、以及提供至少一些程序代碼的臨時(shí)存儲(chǔ)以減少在執(zhí)行期間必須從海量存儲(chǔ)裝置提取代碼的次數(shù)的高速緩存。
輸入/輸出或I/O設(shè)備(包括但不限于鍵盤(pán)、顯示器、定點(diǎn)設(shè)備等)可直接或通過(guò)中間I/o控制器耦合至系統(tǒng)。
網(wǎng)絡(luò)適配器也可耦合至系統(tǒng),以使得數(shù)據(jù)處理系統(tǒng)能夠通過(guò)中間專用網(wǎng)絡(luò)或公共網(wǎng)絡(luò)耦合至其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡僅是網(wǎng)絡(luò)適配器的幾個(gè)當(dāng)前可用類型。
為了說(shuō)明和描述的目的提出本發(fā)明實(shí)施例的以上描述,并且其不是窮盡的,以及并沒(méi)有將本發(fā)明限制在所公開(kāi)的特定形式。對(duì)于本領(lǐng)域普通技術(shù)人員,許多變形和改變是清楚的。選擇和描述實(shí)施例以最佳地解釋發(fā)明原理、實(shí)際應(yīng)用,以及使得本領(lǐng)域普通技術(shù)人員能夠通過(guò)適用于特定用途的具有各種修改的各種實(shí)施例理解本發(fā)明。
權(quán)利要求
1.一種將虛擬機(jī)階段歸類的計(jì)算機(jī)實(shí)現(xiàn)的方法,該方法包括: 啟動(dòng)虛擬機(jī); 設(shè)置因子階段范圍,其中對(duì)于每個(gè)組合因子和階段,存在對(duì)應(yīng)的范圍,以及其中每個(gè)范圍至少與重設(shè)范圍一樣寬; 設(shè)置用于對(duì)虛擬機(jī)度量進(jìn)行采樣的頻率; 按照一個(gè)頻率對(duì)虛擬機(jī)度量進(jìn)行采樣,為每個(gè)因子形成多個(gè)虛擬機(jī)度量; 對(duì)每個(gè)虛擬機(jī)度量滿足的每個(gè)范圍應(yīng)用一個(gè)值,形成與范圍對(duì)應(yīng)的多個(gè)階段合格值; 將與每個(gè)階段對(duì)應(yīng)的所有階段合格值進(jìn)行求和,為每個(gè)階段形成階段可能性; 選擇在多個(gè)階段可能性中與最高階段可能性對(duì)應(yīng)的階段,作為當(dāng)前階段; 確定當(dāng)前范圍是否不同于先前范圍;和 響應(yīng)于當(dāng)前范圍不同的確定,擴(kuò)大與當(dāng)前階段對(duì)應(yīng)的每個(gè)范圍。
2.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中虛擬機(jī)度量是非直接中央處理單元虛擬機(jī)度量。
3.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中選擇階段包括選擇開(kāi)始階段;和 響應(yīng)于選擇開(kāi)始階段,延緩至少一個(gè)方法的即時(shí)編譯。
4.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中選擇階段包括選擇空閑階段,并且該計(jì)算機(jī)實(shí)現(xiàn)的方法還包括: 響應(yīng)于選擇空閑階段,與非空閑階段中使用的第二管理行為相比,減少虛擬機(jī)的第一管理行為。
5.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中選擇階段包括選擇開(kāi)始階段,并且該計(jì)算機(jī)實(shí)現(xiàn)的方法還包括: 禁止在虛擬機(jī)中的方法監(jiān)測(cè)。
6.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中選擇虛擬機(jī)階段包括選擇開(kāi)始階段,并且該方法還包括: 響應(yīng)于選擇開(kāi)始階段向虛擬機(jī)分配第一存儲(chǔ)器量; 進(jìn)一步采樣、應(yīng)用、求和以及選擇穩(wěn)定階段;和 響應(yīng)于選擇穩(wěn)定階段,分配比第一存儲(chǔ)器量更大的第二存儲(chǔ)器量。
7.如權(quán)利要求6所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,該方法還包括: 確定在穩(wěn)定階段連續(xù)執(zhí) 行預(yù)定時(shí)間;和 響應(yīng)于在穩(wěn)定階段連續(xù)執(zhí)行的確定,禁止即時(shí)編譯。
8.一種將虛擬機(jī)階段歸類的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括具有其中實(shí)現(xiàn)的計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀程序代碼包括: 配置為啟動(dòng)虛擬機(jī)的計(jì)算機(jī)可讀程序代碼; 配置為設(shè)置因子階段范圍的計(jì)算機(jī)可讀程序代碼,其中對(duì)于每個(gè)組合因子和階段,存在對(duì)應(yīng)的范圍,以及其中每個(gè)范圍至少與重設(shè)范圍一樣寬; 配置為設(shè)置用于對(duì)虛擬機(jī)度量進(jìn)行采樣的頻率的計(jì)算機(jī)可讀程序代碼; 配置為按照一個(gè)頻率對(duì)虛擬機(jī)度量進(jìn)行采樣,為每個(gè)因子形成多個(gè)虛擬機(jī)度量的計(jì)算機(jī)可讀程序代碼; 配置為對(duì)每個(gè)虛擬機(jī)度量滿足的每個(gè)范圍應(yīng)用一個(gè)值,形成與范圍對(duì)應(yīng)的多個(gè)階段合格值的計(jì)算機(jī)可讀程序代碼; 配置為將與每個(gè)階段對(duì)應(yīng)的所有階段合格值進(jìn)行求和,為每個(gè)階段形成階段可能性的計(jì)算機(jī)可讀程序代碼; 配置為選擇在多個(gè)階段可能性中與最高階段可能性對(duì)應(yīng)的階段,作為當(dāng)前階段的計(jì)算機(jī)可讀程序代碼; 配置為確定當(dāng)前范圍是否不同于先前范圍的計(jì)算機(jī)可讀程序代碼;和配置為響應(yīng)于當(dāng)前范圍不同的確定,擴(kuò)大與當(dāng)前階段對(duì)應(yīng)的每個(gè)范圍的計(jì)算機(jī)可讀程序代碼。
9.如權(quán)利要求8所述的計(jì)算機(jī)程序產(chǎn)品,其中配置為選擇階段的計(jì)算機(jī)可讀程序代碼包括配置為選擇開(kāi)始階段的計(jì)算機(jī)可讀程序代碼;和 配置為響應(yīng)于選擇開(kāi)始階段,減少至少一個(gè)方法的優(yōu)化努力的計(jì)算機(jī)可讀程序代碼。
10.如權(quán)利要求10所述的計(jì)算機(jī)程序產(chǎn)品,其中配置為選擇階段的計(jì)算機(jī)可讀程序代碼包括配置為選擇開(kāi)始階段的計(jì)算機(jī)可讀程序代碼;和 配置為響應(yīng)于選擇開(kāi)始階段,延緩至少一個(gè)方法的即時(shí)編譯的計(jì)算機(jī)可讀程序代碼。
11.如權(quán)利要求8所述的計(jì)算機(jī)程序產(chǎn)品,其中配置為選擇階段的計(jì)算機(jī)可讀程序代碼包括配置為選擇空閑階段的計(jì)算機(jī)可讀程序代碼,并且該計(jì)算機(jī)可讀程序代碼還包括: 配置為與非空閑階段中使用的第二管理行為相比,減少虛擬機(jī)的第一管理行為的計(jì)算機(jī)可讀程序代碼。
12.如權(quán)利要求8所述的計(jì)算機(jī)程序產(chǎn)品,其中配置為選擇階段的計(jì)算機(jī)可讀程序代碼包括配置為選擇開(kāi)始階段的計(jì)算機(jī)可讀程序代碼,并且該計(jì)算機(jī)可讀程序代碼還包括: 配置為禁止在虛擬機(jī)中的方法監(jiān)測(cè)的計(jì)算機(jī)可讀程序代碼。
13.如權(quán)利要求8所述的計(jì)算機(jī)程序產(chǎn)品,其中配置為選擇虛擬機(jī)階段的計(jì)算機(jī)可讀程序代碼包括配置為選擇虛擬機(jī)階段的計(jì)算機(jī)可讀程序代碼包括選擇開(kāi)始階段,并且該方法還包括: 配置為響應(yīng)于選擇開(kāi)始階段向虛擬機(jī)分配第一存儲(chǔ)器量的計(jì)算機(jī)可讀程序代碼; 進(jìn)一步采樣、應(yīng)用、求和以及選擇穩(wěn)定階段;和 配置為響應(yīng)于選擇穩(wěn)定階段,分配比第一存儲(chǔ)器量更大的第二存儲(chǔ)器量的計(jì)算機(jī)可讀程序代碼。
14.如權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,該方法還包括: 配置為確定在穩(wěn)定階段連續(xù) 執(zhí)行預(yù)定時(shí)間的計(jì)算機(jī)可讀程序代碼;和 配置為響應(yīng)于在穩(wěn)定階段連續(xù)執(zhí)行的確定,禁止即時(shí)編譯的計(jì)算機(jī)可讀程序代碼。
15.一種將虛擬機(jī)階段歸類的數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)包括:處理器、計(jì)算機(jī)可讀存儲(chǔ)器和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);該計(jì)算機(jī)可讀程序代碼包括: 配置為啟動(dòng)虛擬機(jī)的計(jì)算機(jī)可讀程序代碼; 配置為設(shè)置因子階段范圍的計(jì)算機(jī)可讀程序代碼,其中對(duì)于每個(gè)組合因子和階段,存在對(duì)應(yīng)的范圍,以及其中每個(gè)范圍至少與重設(shè)范圍一樣寬;配置為設(shè)置用于對(duì)虛擬機(jī)度量進(jìn)行采樣的頻率的計(jì)算機(jī)可讀程序代碼;配置為按照一個(gè)頻率對(duì)虛擬機(jī)度量進(jìn)行采樣,為每個(gè)因子形成多個(gè)虛擬機(jī)度量的計(jì)算機(jī)可讀程序代碼;配置為對(duì)每個(gè)虛擬機(jī)度量滿足的每個(gè)范圍應(yīng)用一個(gè)值,形成與范圍對(duì)應(yīng)的多個(gè)階段合格值的計(jì)算機(jī)可讀程序代碼; 配置為將與每個(gè)階段對(duì)應(yīng)的所有階段合格值進(jìn)行求和,為每個(gè)階段形成階段可能性的計(jì)算機(jī)可讀程序代碼;配置為選擇在多個(gè)階段可能性中與最高階段可能性對(duì)應(yīng)的階段,作為當(dāng)前階段的計(jì)算機(jī)可讀程序代碼; 配置為確定當(dāng)前范圍是否不同于先前范圍的計(jì)算機(jī)可讀程序代碼;和 配置為響應(yīng)于當(dāng)前范圍不同的確定,擴(kuò)大與當(dāng)前階段對(duì)應(yīng)的每個(gè)范圍的計(jì)算機(jī)可讀程序代碼。
16.如權(quán)利要求15所述的數(shù)據(jù)處理系統(tǒng),其中虛擬機(jī)度量是非直接中央處理單元虛擬機(jī)度量。
17.如權(quán)利要求15所述的數(shù)據(jù)處理系統(tǒng),其中配置為選擇階段的計(jì)算機(jī)可讀程序代碼包括配置為選擇開(kāi)始階段的計(jì)算機(jī)可讀程序代碼;和配置為響應(yīng)于選擇開(kāi)始階段,減少至少一個(gè)方法的優(yōu)化努力的計(jì)算機(jī)可讀程序代碼。
18.如權(quán)利要求15所述的數(shù)據(jù)處理系統(tǒng),其中配置為選擇階段的計(jì)算機(jī)可讀程序代碼包括配置為選擇開(kāi) 始階段的計(jì)算機(jī)可讀程序代碼;和配置為響應(yīng)于選擇開(kāi)始階段,延緩至少一個(gè)方法的即時(shí)編譯的計(jì)算機(jī)可讀程序代碼。
19.如權(quán)利要求15所述的數(shù)據(jù)處理系統(tǒng),其中配置為選擇階段的計(jì)算機(jī)可讀程序代碼包括配置為選擇空閑階段的計(jì)算機(jī)可讀程序代碼,并且該計(jì)算機(jī)可讀程序代碼還包括: 配置為與非空閑階段中使用的第二管理行為相比,減少虛擬機(jī)的第一管理行為的計(jì)算機(jī)可讀程序代碼。
20.如權(quán)利要求18所述的數(shù)據(jù)處理系統(tǒng),其中配置為選擇階段的計(jì)算機(jī)可讀程序代碼包括配置為選擇開(kāi)始階段的計(jì)算機(jī)可讀程序代碼,并且該數(shù)據(jù)處理系統(tǒng)還包括: 配置為禁止在虛擬機(jī)中的方法監(jiān)測(cè)的計(jì)算機(jī)可讀程序代碼。
21.如權(quán)利要求15所述的數(shù)據(jù)處理系統(tǒng),其中配置為選擇虛擬機(jī)階段的計(jì)算機(jī)可讀程序代碼包括配置為選擇虛擬機(jī)階段的計(jì)算機(jī)可讀程序代碼包括選擇開(kāi)始階段,并且該方法中,所述處理器進(jìn)一步執(zhí)行如下計(jì)算機(jī)可用代碼,包括配置為響應(yīng)于選擇開(kāi)始階段向虛擬機(jī)分配第一存儲(chǔ)器量的計(jì)算機(jī)可讀程序代碼;進(jìn)一步采樣、應(yīng)用、求和以及選擇穩(wěn)定階段;和配置為響應(yīng)于選擇穩(wěn)定階段,分配比第一存儲(chǔ)器量更大的第二存儲(chǔ)器量的計(jì)算機(jī)可讀程序代碼。
22.如權(quán)利要求21所述的數(shù)據(jù)處理系統(tǒng),該方法中,所述處理器進(jìn)一步執(zhí)行確定在穩(wěn)定階段連續(xù)執(zhí)行預(yù)定時(shí)間的計(jì)算機(jī)可用代碼;和配置為響應(yīng)于在穩(wěn)定階段連續(xù)執(zhí)行的確定,禁止即時(shí)編譯的計(jì)算機(jī)可讀程序代碼。
全文摘要
本發(fā)明公開(kāi)一種將虛擬機(jī)階段歸類的計(jì)算機(jī)實(shí)現(xiàn)的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。數(shù)據(jù)處理系統(tǒng)啟動(dòng)虛擬機(jī)。他設(shè)置因子階段范圍,其中對(duì)于每個(gè)組合因子和階段,存在對(duì)應(yīng)的范圍,以及其中每個(gè)范圍與重設(shè)范圍一樣寬。他設(shè)置用于對(duì)虛擬機(jī)度量進(jìn)行采樣的頻率,并對(duì)虛擬機(jī)度量進(jìn)行采樣,為每個(gè)因子形成多個(gè)虛擬機(jī)度量。他對(duì)每個(gè)虛擬機(jī)度量滿足的每個(gè)范圍應(yīng)用一個(gè)值,形成與范圍對(duì)應(yīng)的多個(gè)階段合格值,并且將每個(gè)階段的所有階段合格值進(jìn)行求和,形成階段可能性。數(shù)據(jù)處理系統(tǒng)還選擇與最高階段可能性對(duì)應(yīng)的階段。數(shù)據(jù)處理系統(tǒng)確定當(dāng)前范圍是否不同于先前范圍。該系統(tǒng)擴(kuò)大與當(dāng)前階段對(duì)應(yīng)的每個(gè)范圍。
文檔編號(hào)G06F9/45GK103154891SQ201180047531
公開(kāi)日2013年6月12日 申請(qǐng)日期2011年8月18日 優(yōu)先權(quán)日2010年10月1日
發(fā)明者M·珀?duì)栁?申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
吴川市| 盐城市| 罗源县| 嘉荫县| 丰都县| 大余县| 密云县| 新绛县| 邵阳市| 米脂县| 琼海市| 乌鲁木齐市| 凤阳县| 桐庐县| 资溪县| 怀来县| 娱乐| 六枝特区| 井陉县| 武夷山市| 台南县| 林甸县| 达孜县| 高邮市| 周口市| 永德县| 若羌县| 巨鹿县| 永靖县| 城固县| 区。| 宁城县| 即墨市| 讷河市| 阿尔山市| 姚安县| 德庆县| 孝昌县| 郁南县| 韶山市| 湖北省|