亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于在運行時提高函數(shù)的執(zhí)行性能的方法和計算系統(tǒng)的制作方法

文檔序號:6401684閱讀:126來源:國知局
專利名稱:用于在運行時提高函數(shù)的執(zhí)行性能的方法和計算系統(tǒng)的制作方法
本申請是申請?zhí)枮?9104307.3、發(fā)明名稱為“用于在運行時提高函數(shù)的執(zhí)行性能的方法和計算系統(tǒng)”的中國申請的分案申請。
本發(fā)明涉及軟件的運行期編譯。更具體來說,本發(fā)明涉及在存在動態(tài)鏈接和加載的情況下動態(tài)發(fā)送的調(diào)用的靜態(tài)聯(lián)編技術(shù)。
面向?qū)ο蟮恼Z言背后的根本思想是將數(shù)據(jù)和對該數(shù)據(jù)操作的過程(或函數(shù))這二者結(jié)合成一個單一的單元,這個單元稱作對象。對象的函數(shù)一般提供存取由該對象封裝的數(shù)據(jù)的唯一途徑。存取數(shù)據(jù)的方法是向該對象發(fā)送一個消息,指示該對象去調(diào)用該消息規(guī)定的過程。
在面向?qū)ο蟮恼Z言中,高效率的消息發(fā)送是最重要的。這是因為消息發(fā)送是面向?qū)ο蟮某绦蛑幸环N非常頻繁進行的操作,而且是在運行期進行的,因此應(yīng)當盡可能地快。然而消息發(fā)送決不是一種無足輕重的操作。面向?qū)ο蟮恼Z言與能夠在運行前判定一個函數(shù)的地址的過程性程序設(shè)計語言(例如C語言)不同的是,必須在運行期動態(tài)地判定對已經(jīng)向一個接收者對象發(fā)送的消息進行處理的過程,這會牽涉到很大的檢索量。
為了更好地理解消息發(fā)送的復(fù)雜性,下面將說明一種類層次的例子。

圖1表示一個包含各類的過程的類層次。類層次1在根部含有一個父類A3,它定義兩個虛擬函數(shù)foo()和bar()。虛擬函數(shù)是可以在父類中定義并在關(guān)聯(lián)的子類中重新定義的函數(shù)。類B5和類C7繼承性地包含父類A3的數(shù)據(jù)和過程。如圖所示,類B5對虛擬函數(shù)foo()和bar()的哪一個都不重新定義。然而,類C7重新定義虛擬函數(shù)foo()。當類C7的對象被請求去調(diào)用過程foo()時,被調(diào)用的過程將是由類C7而不是父類A3所定義的過程。類D9和E11也重新定義過程foo()。
由于一般不可能靜態(tài)地判定出某對象的類,所以對與該對象關(guān)聯(lián)的過程的準確搜索是在運行期執(zhí)行期間進行的,更具體來說,是在消息發(fā)送期間進行的。例如,假定某過程的內(nèi)容如下test(){...
x.foo()
...
}如果所有的類A~E都在運行期執(zhí)行時加載,要判定應(yīng)該調(diào)用哪個函數(shù)foo(),取決于哪個類x是個實例。
此外,測試函數(shù)可以在運行期編譯,以提高效能。在運行期編譯時,可能只有類A3和B5已經(jīng)加載。于是,從對已加載類的檢查看來,人們會推測消息x.foo()將只調(diào)用A∷foo()。當然,如果在運行期執(zhí)行期間類C7已經(jīng)加載,這種推測就錯了。
總之,本發(fā)明的實施例提供在有動態(tài)鏈接和加載的情況下對所發(fā)送的調(diào)用進行靜態(tài)聯(lián)編的革新性技術(shù)。本發(fā)明的一個方面是,一種用于提高函數(shù)在運行時的執(zhí)行性能的方法,包括編譯該函數(shù)—該函數(shù)要么是解釋性的,要么是以前編譯過的-并標識函數(shù)內(nèi)部對過程的調(diào)用。該方法還包括向函數(shù)增加相關(guān)信息。相關(guān)信息被處理成指示函數(shù)的狀態(tài),它含有有關(guān)與該過程關(guān)聯(lián)的類、名稱和標識的信息。
本發(fā)明的另一個方面是,一種計算機實現(xiàn)的、用于在運行期間分析與系統(tǒng)的一個類層次關(guān)聯(lián)的一個第一類的方法,包括標記第一類并標記作為第一類的超類的一個第二類以指明這兩個類之間的關(guān)聯(lián)。然后檢查一個與該系統(tǒng)關(guān)聯(lián)的編譯函數(shù)。該編譯函數(shù)含有被處理成指示該編譯函數(shù)的有效狀態(tài)以及該編譯函數(shù)的優(yōu)化狀態(tài)的相關(guān)信息。對編譯函數(shù)的檢查,包括判定何時在相關(guān)信息中標識第一類和第二類中的至少一個。當判定結(jié)果是第一類或第一類與第二類都在相關(guān)信息中被標識時,就要對編譯函數(shù)是否無效進行判定。在一個實施例中,該方法包括在判定編譯函數(shù)無效時對編譯函數(shù)進行反編譯。反編譯該編譯函數(shù)將函數(shù)還原到解釋狀態(tài)。
通過以下結(jié)合各附圖的詳細說明,本發(fā)明的其它特點和優(yōu)點將變得顯而易見。
參考以下結(jié)合個附圖的說明,可以明白以具體實施例體現(xiàn)的本發(fā)明。附圖簡介圖1表示面向?qū)ο蟮沫h(huán)境中包含虛擬函數(shù)的類的一個類層次。
圖2表示一例可用來執(zhí)行本發(fā)明實施例軟件的計算機系統(tǒng)。
圖3表示圖1計算機系統(tǒng)的系統(tǒng)框圖。
圖4是按照本發(fā)明實施例的虛擬機的圖示。
圖5表示在運行時編譯一個過程的本發(fā)明實施例的流程圖。
圖6表示包含相關(guān)信息的一個已編譯過程的實施例。
圖7表示按照本發(fā)明的實施例在運行期執(zhí)行期間類加載的過程流圖。
圖8表示按照本發(fā)明的實施例,類層次在內(nèi)存中的表示。
定義機器指令(或指令)—指示計算設(shè)備執(zhí)行一個由操作碼(OP碼)和可選的一個或多個操作數(shù)規(guī)定的操作的指令。
虛擬機指令—軟件仿真的微處理器或計算機體系用的指令(也稱虛擬代碼)。
本機機器指令—為特定微處理器或計算機體系設(shè)計的指令(也稱本機代碼)。
過程(method)—軟件例程(也稱函數(shù)、子例程、過程、成員函數(shù))運行期編譯—在運行時進行的對代碼的編譯。
運行期執(zhí)行—運行時刻進行的對代碼的執(zhí)行。
在以下說明中,將結(jié)合用JAVA虛擬機指令(或字節(jié)代碼)靜態(tài)聯(lián)編動態(tài)發(fā)送的調(diào)用的優(yōu)選實施例來描述本發(fā)明。不過本發(fā)明并不局限于任何特定語言、計算機體系結(jié)構(gòu)或?qū)iT設(shè)備。因此以下對實施例的描述的目的是示例性的而不是限制性的。
JavaTM程序設(shè)計語言是SUN Microsystems公司開發(fā)的一種面向?qū)ο蟮母呒壋绦蛟O(shè)計語言,設(shè)計得很靈便,能在從小型設(shè)備(例如尋呼機(pagers)、蜂窩電話和智能卡)到超級計算機的范圍很寬的計算機上執(zhí)行。用Java(和其它語言)編寫的計算機程序可以被編譯成虛擬機指令,由Java虛擬機來執(zhí)行??傊?,Java虛擬機是一種解碼并執(zhí)行虛擬機指令的解釋器。
適合Java虛擬機的虛擬機指令是字節(jié)代碼,即指令包含一個或多個字節(jié)。字節(jié)代碼是按照一種特定的文件格式存儲的,這種文件格式叫作“類文件”。類文件包含類的過程的字節(jié)代碼。類文件除了包含類的過程的字節(jié)代碼之外,還包含一個符號表以及其它附屬信息。
以一個或多個類文件中Java字節(jié)代碼體現(xiàn)的計算機程序是獨立于平臺的。這種計算機程序不加修改就可以在任何能運行Java虛擬機實現(xiàn)的計算機上執(zhí)行。Java虛擬機是一種對“通用”計算機的軟件仿真程序,這是使得Java虛擬機的計算機程序能獨立于平臺的一個主要因素。
Java虛擬機可以實現(xiàn)為軟件解釋器。常規(guī)解釋器在執(zhí)行期間解碼并執(zhí)行所解釋的程序,每次一條指令,這與編譯器不同,后者在源代碼執(zhí)行之前將其解碼成本機機器指令,這樣,就不在執(zhí)行期間進行解碼。為了能運行時編譯,Java虛擬機可以既包含解釋器又包含編譯器。一般來說,Java虛擬機是用Java程序設(shè)計語言以外的其它程序設(shè)計語言(例如C++程序設(shè)計語言)編寫的。
圖2表示一例可用于執(zhí)行本發(fā)明實施例的軟件的計算機系統(tǒng)。圖2中的計算機系統(tǒng)301包括顯示器303、屏幕305、機箱307、鍵盤309和鼠標311。鼠標311可以有一個或多個能與圖形用戶界面交互作用的按鈕。機箱307上安裝了CD-ROM驅(qū)動器313、系統(tǒng)內(nèi)存和硬驅(qū)(見圖3),它們可用來存儲、提取包含實現(xiàn)本發(fā)明的計算機代碼的軟件程序、本發(fā)明所用數(shù)據(jù)等等。盡管圖中是用CD-ROM 315來代表計算機可讀存儲介質(zhì)的,但是也可以采用其它計算機可讀存儲介質(zhì),包括軟盤、磁帶、快速存儲器、系統(tǒng)內(nèi)存和硬盤。此外,以(例如包括因特網(wǎng)在內(nèi)的網(wǎng)絡(luò)中的)載波實現(xiàn)的數(shù)據(jù)信號也可算作是計算機可讀存儲介質(zhì)。
圖3表示用于執(zhí)行本發(fā)明實施例的軟件的計算機系統(tǒng)301的系統(tǒng)框圖。如圖2一樣,計算機系統(tǒng)301包括監(jiān)視器3033和鍵盤309以及鼠標311。計算機系統(tǒng)301還包括一些子系統(tǒng),諸如中央處理器351、系統(tǒng)內(nèi)存353,固定存儲器(例如硬驅(qū))355、可卸式存儲器(例如CD-ROM驅(qū)動器)357、顯示適配器359、聲卡361、音箱363和網(wǎng)絡(luò)接口365。其它適于本發(fā)明使用的計算機系統(tǒng)包含的子系統(tǒng)或多一點,或少一點。例如,另一個計算機系統(tǒng)可以有一個以上的處理器351(例如多處理器系統(tǒng)),或者有高速緩沖存儲器。
計算機系統(tǒng)301的總線結(jié)構(gòu)由箭頭367表示。不過這些箭頭是示意性的,表示能連接各子系統(tǒng)的任何互連方案。例如,可用本地總線將中央處理器連接到系統(tǒng)內(nèi)存和顯示適配器。圖3所示的計算機系統(tǒng)301只是適合本發(fā)明的計算機系統(tǒng)的一個例子。其它具有不同子系統(tǒng)配置的計算機結(jié)構(gòu)也是可以采用的。
一般來說,用Java程序設(shè)計語言編寫的計算機程序,先要編譯成字節(jié)代碼或Java虛擬機指令,然后再由Java虛擬機執(zhí)行。導(dǎo)節(jié)代碼先存儲到類文件,再輸入到Java虛擬機去解釋。虛擬機可在諸如前面討論圖2和3時所述計算機系統(tǒng)的計算機系統(tǒng)上執(zhí)行。圖4是一個由圖2和3的計算機301系統(tǒng)支持的、適于實現(xiàn)本發(fā)明的虛擬機圖示。當計算機程序—例如以JavaTM程序設(shè)計語言編寫的計算機程序—被執(zhí)行時,源代碼410被提供給編譯時環(huán)境405內(nèi)的編譯器420。編譯器420將源代碼410翻譯成字節(jié)代碼430。總之,當源代碼410被軟件開發(fā)者創(chuàng)建時,源代碼410被翻譯成字節(jié)代碼430。
字節(jié)代碼430一般來說可以復(fù)制、下載或以其它方式通過例如圖3中網(wǎng)絡(luò)接口365的網(wǎng)絡(luò)傳播,或者在諸如圖3中存儲器355的存儲器上存儲。在所述實施例中,字節(jié)代碼430是獨立于平臺的。就是說,字節(jié)代碼430可以在幾乎任何運行在適當虛擬機440的計算機系統(tǒng)上執(zhí)行。
字節(jié)代碼430被提供給含有虛擬機440的運行時環(huán)境435。在一個實施例中,虛擬機可以是JavaTM虛擬機。運行時環(huán)境435一般可采用諸如圖3中處理器351的一個或多個處理器來執(zhí)行。虛擬機440包括編譯器442、解釋器444和運行時系統(tǒng)446。字節(jié)代碼430可提供給編譯器442或解釋器444。
如果將字節(jié)代碼430提供給編譯器442,則字節(jié)代碼430中包含的過程就被編譯成機器指令。在一個實施例中,編譯器442是一個適時的編譯器,它能將對字節(jié)代碼430所含過程的編譯,推遲到該過程馬上要被執(zhí)行時才進行。如果將字節(jié)代碼430提供給解釋器444,則字節(jié)代碼430以每次一條字節(jié)代碼的方式被讀入解釋器444。每當一條字節(jié)代碼被讀入解釋器444,解釋器444就執(zhí)行該字節(jié)代碼所定義的操作。就是說,解釋器444“解釋”字節(jié)代碼430,這一點本領(lǐng)域的熟練人員都明白。一般來說,解釋器444幾乎是連續(xù)地處理字節(jié)代碼430和執(zhí)行字節(jié)代碼430所關(guān)聯(lián)的操作。
當一個過程被另一個過程調(diào)用,或被運行時環(huán)境435調(diào)用時,如果該過程是個解釋過程,則運行時系統(tǒng)446可以從運行時環(huán)境435以一個字節(jié)代碼430序列的形式獲取該過程,該過程可被解釋器444直接執(zhí)行。另一方面,如果被調(diào)用的過程是個尚未編譯的編譯過程,則運行時系統(tǒng)446也是從運行時環(huán)境435以一個字節(jié)代碼430序列的形式獲取該過程,然后在下一步去啟動編譯器442。編譯器442于是由字節(jié)代碼430生成機器指令,所生成的機器語言指令可由圖3的處理器351直接執(zhí)行。一般來說,當虛擬機440中止時,機器語言指令即被拋棄。
Java類(和接口)是動態(tài)加載、鏈接和初始化的。加載是系統(tǒng)尋找類的二進制形式(例如類文件)并由該二進制形式構(gòu)造一個類對象來代表該類的過程。類類(Class class)是一種用于存儲或表示類的結(jié)構(gòu)的類。鏈接是采用類的二進制形式、將其聯(lián)合到系統(tǒng)的運行時狀態(tài)從而使其可以執(zhí)行的過程。類的初始化包括執(zhí)行類的靜態(tài)初始化程序和類中所聲明靜態(tài)域的初始化程序。
每個Java類都有一個與其關(guān)聯(lián)的常量池。常量池存儲在Java類文件中,起著與符號表相類似的功能。一般來說,常量池中的每一項都由一個數(shù)字作索引,數(shù)字的范圍是1到常量池中項的數(shù)目。類的過程通過索引來訪問常量池中的項。一個類的過程不能訪問另一個類的常量池。
除了存儲直接量常量的常量池外,常量池還以符號形式來存儲類、過程、域、接口。用符號來存儲這些項,意思是存儲標志該項的名稱而不是物理地址。換言之,如果類A有個域F,則A和F的兩個名稱(連同一個F的類標識)都會在常量池存儲。由于存儲名稱而不是地址,Java運行時系統(tǒng)在運行期動態(tài)地解決對物理地址的符號引用。
圖5表示在運行時編譯一個過程的本發(fā)明實施例的流程圖。在步驟501,系統(tǒng)判斷編譯一個過程是否有益。一般來說,編譯一個過程能提高該過程的執(zhí)行性能。然而,許多情況下過程是不編譯的。舉例來說,編譯的過程比不編譯的過程需要更多的存儲空間。不管如何,一旦判定某特定過程應(yīng)當編譯,則該過程在步驟503被編譯。
在步驟505,系統(tǒng)標識一個對正在編譯的過程中的一個虛擬函數(shù)的調(diào)用。如上所述,對虛擬函數(shù)的解析是在運行時動態(tài)完成的。在Java虛擬機指令中,這個調(diào)用是一條invokevirtual指令。
在步驟507,系統(tǒng)在運行期編譯時分析類層次。類層次可能會指示,當前某加載類中只有一個函數(shù)是虛擬函數(shù)調(diào)用的接收者。如果當前加載類中只有一個函數(shù)是虛擬函數(shù)調(diào)用的接收者,系統(tǒng)就在編譯的過程中放置一條直接調(diào)用該函數(shù)的指令。此外,系統(tǒng)可將整個函數(shù)直接插入編譯的過程。直接插入函數(shù)要求編譯的過程占用更多的存儲空間,但導(dǎo)致性能更快。
在有些情況下,有一個以上所加載類的函數(shù)都可能是虛擬函數(shù)調(diào)用的接收者。如果出現(xiàn)這種情況,系統(tǒng)會直接插入一個包括直接調(diào)用該函數(shù)和/或直接插入函數(shù)的決策樹或散列表。就是說,針對步驟505討論的對虛擬函數(shù)的調(diào)用可以在步驟509被優(yōu)化。美國專利申請?zhí)?8/944,332(1997年10月6日提交)中描述了進行虛擬函數(shù)調(diào)用的技術(shù),特此引為參考。
在步驟511,系統(tǒng)將相關(guān)信息增加到編譯的過程。相關(guān)信息可以包含已經(jīng)在步驟509被優(yōu)化的各虛擬函數(shù)的類、函數(shù)名稱和標識(例如參數(shù)類型)。這樣,當類在運行期執(zhí)行被加載時,就可以檢查某編譯的過程的相關(guān)信息,以判斷該編譯過程是否依然有效,是否應(yīng)當解優(yōu)化,或者是否應(yīng)當再優(yōu)化。后文將結(jié)合圖7說明這個過程。
圖6表示具有相關(guān)信息的一個編譯過程的實施例。編譯過程609包括首部603和編譯代碼605。首部603包括相關(guān)信息607等內(nèi)容。在所述實施例中,相關(guān)信息607是編譯過程609所有優(yōu)化了的虛擬函數(shù)調(diào)用的類、名稱和標識的一個列表。盡管這種信息可以按簡單列表來存儲,但也可以采用各種其它技術(shù)。
圖7表示在運行期執(zhí)行期間類加載的過程流圖。在步驟701,系統(tǒng)接收一個要在運行時加載的類。系統(tǒng)然后在步驟703標記該類及其所有的超類。標記類的方法是在類層次結(jié)構(gòu)中設(shè)置一個布爾域。
在步驟705檢查所有編譯的過程,以判斷在它們的相關(guān)信息中是否包括任何作了標記的類。如上所述,相關(guān)信息可以存儲在編譯過程的首部中。如果某編譯過程的相關(guān)信息中含有任何作了標記的類,系統(tǒng)就在步驟707判斷是否有匹配的函數(shù)名稱和標識。
通過判斷是否有匹配的函數(shù)名稱和標識,系統(tǒng)要確定類的加載類是否會導(dǎo)致編譯過程有效地被無效掉。換言之,判斷是否有匹配的函數(shù)名稱和標識決定了類的加載是否生成新的、以前未發(fā)現(xiàn)的已經(jīng)優(yōu)化了的虛擬函數(shù)調(diào)用的接收者。
例如再次參見圖1,如果在運行期編譯時只加載了類A3和B5,系統(tǒng)就會在編譯過程中放置一個對A∷foo()的直接調(diào)用(甚至直接插入整個函數(shù)),這是因為只有一個函數(shù)可能是該虛擬函數(shù)調(diào)用的接收者。然而如果在運行期執(zhí)行期間,類C7被加載了,那么就可能有該虛擬函數(shù)調(diào)用的另一個接收者(即C∷foo())。這樣,編譯過程應(yīng)當要么解優(yōu)化,要么再優(yōu)化。美國專利申請?zhí)?8/944,330(1997年10月6日提交)中描述了對編譯過程解編譯的技術(shù),特此引為參考。
如果在步驟707判定編譯過程有個匹配,就可以在步驟709對該編譯過程解優(yōu)化。對編譯過程的解優(yōu)化可以包括將過程還原或以其它方式“反編譯”到其解釋形式。此外,系統(tǒng)可以再優(yōu)化該編譯過程,以便將新加載的類考慮進去。
圖8表示類層次在內(nèi)存中的一種表示。類801在圖中位于根部,表明它是位于其下的類的超類。如圖所示,類803和805是類801的子類。各個類的類信息中含有一個布爾域,用于如圖7中步驟703那樣對類作標記。
此外,各個類的類信息也可以含有一個子類指針和一個兄弟指針。子類指針指向某第一個子類,本例中是類803。兄弟指針形成一個由兄弟類組成的鏈接表。如圖所示,類803的兄弟指針指向類805。由于采用子類和兄弟指針,本發(fā)明實施例的系統(tǒng)就能容易地遍歷類層次。
以上完整地說明了本發(fā)明的優(yōu)選實施例,但還可以采用各種變通、修改與等同方案。很明顯的是,對上述實施例作適當改進后,本發(fā)明也完全適用。例如,盡管以上描述的實施例是針對Java虛擬機指令的,本發(fā)明的原理也完全可以適用于任何其它指令。因此不應(yīng)認為以上說明限制了本發(fā)明的范圍。
權(quán)利要求
1.一種計算機實現(xiàn)的、用于在運行時提高函數(shù)的執(zhí)行性能的方法,該計算機實現(xiàn)的方法包括在運行時編譯該函數(shù);在運行時標識對一個過程的調(diào)用,其中該函數(shù)執(zhí)行對該過程的調(diào)用;在對該過程的調(diào)用已被標識的情況下,把相關(guān)信息在運行時加到該函數(shù)。
2.權(quán)利要求1所述的計算機實現(xiàn)的方法,其中該相關(guān)信息被設(shè)置為指示該函數(shù)的一個狀態(tài)。
3.權(quán)利要求1所述的計算機實現(xiàn)的方法,其中該相關(guān)信息被設(shè)置為指示該函數(shù)應(yīng)否被再編譯。
4.權(quán)利要求1所述的計算機實現(xiàn)的方法,其中該相關(guān)信息被設(shè)置為指示該函數(shù)是否適合于解優(yōu)化或再優(yōu)化。
5.一種適合在運行時提高函數(shù)的執(zhí)行性能的計算機系統(tǒng),該計算機系統(tǒng)包括一個處理器,其配置用來在運行時編譯該函數(shù);在運行時標識對一個過程的調(diào)用,對該過程的調(diào)用是由該函數(shù)來執(zhí)行的;并且在對該過程的調(diào)用已被標識的情況下,把相關(guān)信息在運行時加到該函數(shù)。
6.權(quán)利要求5所述的計算機系統(tǒng),其中該相關(guān)信息被設(shè)置為指示該函數(shù)的一個狀態(tài)。
7.權(quán)利要求5所述的計算機系統(tǒng),其中該相關(guān)信息被設(shè)置為指示該函數(shù)應(yīng)否被再編譯。
8.權(quán)利要求5所述的計算機系統(tǒng),其中該相關(guān)信息被設(shè)置為指示該函數(shù)是否適合于解優(yōu)化或再優(yōu)化。
9.一種用于在運行時提高函數(shù)的執(zhí)行性能的方法,該計算機實現(xiàn)的方法包括在運行時編譯該函數(shù);在運行時確定該函數(shù)是否調(diào)用一個屬于調(diào)用的唯一目標的過程;并且在確定該函數(shù)調(diào)用一個屬于調(diào)用的唯一目標的過程的情況下,把相關(guān)信息在運行時加到該函數(shù)。
10.權(quán)利要求9所述的方法,其中該相關(guān)信息被設(shè)置為指示該函數(shù)應(yīng)否被再編譯。
11.權(quán)利要求9所述的方法,其中該相關(guān)信息被設(shè)置為指示該函數(shù)是否適合于解優(yōu)化或再優(yōu)化。
全文摘要
本發(fā)明提供在有動態(tài)鏈接和加載的情況下對動態(tài)發(fā)送的調(diào)用進行靜態(tài)聯(lián)編的技術(shù)。一種用于提高函數(shù)在運行時的執(zhí)行性能的方法,包括編譯該函數(shù)-函數(shù)要么是解釋的,要么是以前編譯過的-并標識函數(shù)內(nèi)部對過程的調(diào)用。該方法還包括向函數(shù)添加相關(guān)信息。相關(guān)信息被處理成指示函數(shù)的狀態(tài),它含有有關(guān)與該過程關(guān)聯(lián)的類、名稱和標識的信息。
文檔編號G06F9/445GK1529237SQ20041003999
公開日2004年9月15日 申請日期1999年3月24日 優(yōu)先權(quán)日1998年3月24日
發(fā)明者L·巴克, S·米特羅維, U·霍爾茨勒, L 巴克, 睦, 羋尬 申請人:太陽微系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1