JPH11237991A5 - - Google Patents

Info

Publication number
JPH11237991A5
JPH11237991A5 JP1998319743A JP31974398A JPH11237991A5 JP H11237991 A5 JPH11237991 A5 JP H11237991A5 JP 1998319743 A JP1998319743 A JP 1998319743A JP 31974398 A JP31974398 A JP 31974398A JP H11237991 A5 JPH11237991 A5 JP H11237991A5
Authority
JP
Japan
Prior art keywords
frame
data structure
compiled
computer
control stack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP1998319743A
Other languages
English (en)
Other versions
JPH11237991A (ja
Filing date
Publication date
Priority claimed from US08/944,330 external-priority patent/US5933635A/en
Application filed filed Critical
Publication of JPH11237991A publication Critical patent/JPH11237991A/ja
Publication of JPH11237991A5 publication Critical patent/JPH11237991A5/ja
Pending legal-status Critical Current

Links

Description

【特許請求の範囲】
【請求項1】
コンパイル済メソッドを逆最適化するためにコンピュータによって実行される方法であって、前記メソッドが第1の最適化状態にあり、更に前記メソッドは、制御スタック上に配置されたフレームに関連付けられており、
データ構造を生成するステップであって、前記データ構造は前記制御スタックから分離されており、前記データ構造は前記メソッドに関する情報を含んでおり、この情報は、前記メソッド及び前記フレームの少なくとも一つから取得されたものであるステップと、
参照インジケータを生成するステップであって、前記参照インジケータは前記フレームに関連付けられており、この参照インジケータは、前記データ構造を参照するように構成されているステップと、
前記データ構造が生成された後に、前記メソッドを第2の最適化状態に逆最適化するステップと、を備える方法
【請求項2】
前記データ構造が機械独立であり、前記メソッドを逆最適化するステップは、前記第1の最適化状態にあるメソッドを消去するステップを含んでいる、請求項1記載のコンピュータによって実行される方法
【請求項3】
前記第2の最適化状態が解釈済状態である、請求項1又は2記載のコンピュータによって実行される方法
【請求項4】
前記フレームが前記制御スタックの中間部に配置されている、請求項1〜3のいずれかに記載のコンピュータによって実行される方法
【請求項5】
前記メソッドを逆コンパイルするステップは、前記メソッドに含まれる最適化アクティベーションを逆最適化するステップを含んでいる、請求項1〜4のいずれかに記載のコンピュータによって実行される方法
【請求項6】
逆最適化された前記アクティベーションを前記データ構造に格納するステップを更に備える請求項5記載のコンピュータによって実行される方法
【請求項7】
前記データ構造に格納されている前記逆最適化アクティベーションを用いて新しいフレームを生成するステップと、
この新しいフレームを前記フレームの代わりに前記制御スタック上にプッシュするステップと、を更に備える請求項6記載のコンピュータによって実行される方法
【請求項8】
前記データ構造は機械独立であり、
前記データ構造を第1のコンピュータシステムから第2のコンピュータシステムの方向に転送するステップを更に備える請求項1〜7のいずれかに記載のコンピュータによって実行される方法
【請求項9】
前記データ構造は、前記第1コンピュータシステム上で生成され、
このデータ構造に格納された逆最適化アクティベーションを用いて、前記第2コンピュータシステム上に新しいフレームを生成するステップを更に備える請求項8記載のコンピュータによって実行される方法
【請求項10】
制御スタック上の第1のフレームを動的に逆最適化するためにコンピュータによって実行される方法であって、前記第1フレームは関連コンパイル済メソッドを有し、このコンパイル済メソッドは、コンパイル済アクティベーションを含んでおり、
前記第1フレームに関連付けられた前記コンパイル済メソッドを逆最適化するステップであって、前記第1フレームは、前記制御スタック上の第2のフレームの下に配置されており、前記コンパイル済アクティベーションを逆最適化するサブステップを含み、前記コンパイル済アクティベーションと等価なインタープリタを生成するサブステップを更に含むステップと、
前記制御スタックから前記第2フレームを除去するステップと、
前記コンパイル済アクティベーションと等価なインタープリタから少なくとも一つのインタープリタフレームを生成するステップと、
この少なくとも一つのインタープリタフレームを前記第1フレームの代わりに前記スタックにプッシュするステップと、を備える方法。
【請求項11】
前記コンパイル済アクティベーションと等価なインタープリタをデータ構造に格納するステップであって、前記データ構造が前記第1フレームに関連付けられているステップを更に備える請求項10記載のコンピュータによって実行される方法。
【請求項12】
前記少なくとも一つのインタープリタフレームが生成された後に前記データ構造を消去するステップを更に備える請求項11記載のコンピュータによって実行される方法。
【請求項13】
コンパイル済メソッドを動的に逆最適化するためにコンピュータによって実行される方法であって、前記コンパイル済メソッドは制御スタック上の複数のフレームから選択された第1のフレームに関連付けられており、前記制御スタックは、前記制御スタック上の現行フレームを識別するように構成されたスタックポインタを含んでおり、
データ構造を生成するステップであって、前記データ構造は前記制御スタックから分離されており、前記データ構造は、前記第1フレームに関するインタープリタ情報及び前記コンパイル済メソッドに関するメソッド情報を含んでおり、前記第1フレームが前記データ構造への参照を含んでいるステップと、
前記コンパイル済メソッドを消去するステップと、
前記スタックポインタが前記第1フレームを前記制御スタック上の前記現行フレームとして識別する場合に、前記データ構造に含まれている前記インタープリタ情報をアンパックするステップであって、少なくとも一つのインタープリタフレームを生成するステップと、
前記少なくとも一つのインタープリタフレームを前記制御スタック上にプッシュするステップであって、前記第1フレームが前記少なくとも一つのインタープリタフレームによって置き換えられるステップと、を備える方法。
【請求項14】
前記コンパイル済メソッドに関連付けられたアクセス情報にアクセスするステップと、
前記インタープリタ情報を前記データ構造内に配置するステップであって、前記アクセス情報を用いて前記インタープリタ情報にアクセスするサブステップを含むステップと、を更に備える請求項13記載のコンピュータによって実行される方法。
【請求項15】
前記インタープリタ情報を前記データ構造内に配置する前記ステップは、
前記コンパイル済メソッドから前記メソッド情報を抽出するサブステップと、
前記第1フレームから前記インタープリタ情報を抽出するサブステップと、
前記インタープリタ情報及び前記メソッド情報を用いて少なくとも一つの解釈済アクティベーションを生成するサブステップと、
前記少なくとも一つの解釈済アクティベーションを前記データ構造中にマイグレートするサブステップと、を含んでいる請求項記載14記載のコンピュータによって実行される方法。
【請求項16】
前記インタープリタ情報がアンパックされる前に前記コンパイル済メソッドが消去される請求項13〜15のいずれかに記載のコンピュータによって実行される方法。
【請求項17】
前記スタック上にマイグレーティングフレームを生成するステップを更に備える請求項13〜16のいずれかに記載のコンピュータによって実行される方法であって、前記マイグレーティングフレームが、前記少なくとも一つのインタープリタフレームを前記制御スタック上の前記複数のフレームから選択された第2のフレームに関連付けるように構成されている方法。
【請求項18】
メソッドを逆最適化するためのコンピュータシステムであって、前記メソッドは第1の最適化状態にあり、前記メソッドは更に、制御スタック上に配置されたフレームに関連付けられており、
前記制御スタックから分離されたデータ構造であって、前記メソッドに関する情報を含むデータ構造と、
前記フレームに関連付けられた参照インジケータであって、前記データ構造を参照するように構成された参照インジケータと、
前記フレームを第2の最適化状態に逆最適化するように構成されたデオプティマイザであって、前記第2の最適化状態は前記第1の最適化状態よりも最適化が進んでおらず、前記メソッドを第2の最適化状態に逆最適化するように構成されているデオプティマイザと、を備えるコンピュータシステム。
【請求項19】
前記データ構造は機械独立であり、前記デオプティマイザは、更に前記第1最適化状態にあるメソッドを消去するように構成されている請求項18記載のコンピュータシステム。
【請求項20】
前記第2最適化状態が解釈済状態である請求項18又は19記載のコンピュータシステム。
【請求項21】
コンパイル済メソッドを逆最適化するように構成されたコンピュータプログラムコード装置を含むコンピュータ読取り可能な媒体であって、前記コンパイル済メソッドは第1の最適化状態にあり、前記コンパイル済メソッドは更に、制御スタック上に配置されたフレームに関連付けられており、
データ構造を生成するコンピュータプログラムコード装置であって、前記データ構造が前記制御スタックから分離されており、前記データ構造が前記メソッドに関する情報を含んでいるコンピュータプログラムコード装置と、
参照インジケータを生成するコンピュータプログラムコード装置であって、前記参照インジケータが前記フレームに関連付けられており、前記参照インジケータが前記データ構造を参照するように構成されているコンピュータプログラムコード装置と、
前記メソッドを第2の最適化状態に逆最適化するコンピュータプログラムコード装置と、を備えるコンピュータ読取り可能な媒体。
【請求項22】
コンパイル済メソッドを逆最適化するためにコンピュータによって実行される方法であって、前記メソッドが第1の最適化状態にあり、更に前記メソッドは、制御スタック上のある場所に関連付けられており、
前記制御スタックから分離されたデータ構造を生成するステップであって、前記データ構造は前記メソッドに関する情報を含んでおり、この情報は、前記メソッド及び前記制御スタック上の前記場所から取得されたものであるステップと、
前記データ構造を前記制御スタックに関連付けるように構成された識別メカニズムを生成するステップと、を備える方法。
【請求項23】
前記データ構造が機械独立であり、
前記データ構造を第1のコンピュータシステムと第2のコンピュータシステムとの間で転送するステップを更に含む請求項22記載のコンピュータによって実行される方法。
【請求項24】
前記データ構造は、前記第1のコンピュータ上で生成され、
このデータ構造に格納された情報を用いて、前記第2のコンピュータ上に新しいフレームを生成するステップを更に含む請求項22又は23記載のコンピュータによって実行される方法。
【請求項25】
前記識別メカニズムは、前記制御スタックから前記データ構造を参照するように構成された参照インジケータである請求項22〜24のいずれかに記載のコンピュータによって実行される方法。
【請求項26】
前記制御スタック上の前記場所がフレームであり、前記識別メカニズムが前記データ構造を前記フレームに関連付けるように構成されている請求項22〜25のいずれかに記載のコンピュータによって実行される方法。
【請求項27】
前記データ構造が生成された後に、前記メソッドを第2の最適化状態に逆コンパイルするステップを更に含む請求項22〜26のいずれかに記載のコンピュータによって実行される方法。
【請求項28】
前記第1の最適化状態において前記メソッドを遅延させるステップを更に含む請求項27記載のコンピュータによって実行される方法。
【請求項29】
前記第2の最適化状態が解釈済状態である請求項28記載のコンピュータによって実行される方法。
【請求項30】
前記メソッドを逆コンパイルするステップは、前記メソッドに含まれる最適化アクティベーションを逆最適化するステップを更に含む請求項27記載のコンピュータによって実行される方法。
【請求項31】
前記逆最適化されたアクティベーションを前記データ構造に格納するステップと、
前記データ構造に格納されている前記逆最適化アクティベーションを用いて新しいフレームを生成するステップと、
この新しいフレームを前記フレームの代わりに前記制御スタック上にプッシュするステップと、を更に含む請求項30記載のコンピュータによって実行される方法。
【請求項32】
前記データ構造が生成された後に、前記メソッドを第2の最適化状態に逆最適化するステップを更に含む請求項22記載のコンピュータによって実行される方法。
【請求項33】
コンパイル済メソッドを動的に逆最適化するためにコンピュータによって実行される方法であって、前記コンパイル済メソッドは制御スタック上の複数のフレームから選択された第1のフレームに関連付けられており、前記制御スタックは、前記制御スタック上の現行フレームを識別するように構成されたスタックポインタを含んでおり、
データ構造を生成するステップであって、前記データ構造は前記制御スタックから分離されており、前記データ構造は前記第1フレームに関するインタープリタ情報及び前記コンパイル済メソッドに関するメソッド情報を含んでおり、前記第1フレームが前記データ構造と関連付けられているステップと、
前記コンパイル済メソッドを遅延させるステップと、
前記スタックポインタが前記第1フレームを前記制御スタック上の前記現行フレームとして識別する場合に、前記データ構造に含まれる前記インタープリタ情報をアンパックするステップであって、前記インタープリタ情報のアンパックが少なくとも一つのインタープリタフレームを生成するステップと、
前記少なくとも一つのインタープリタフレームを前記制御スタック上にプッシュするステップであって、前記第1フレームが前記少なくとも一つのインタープリタフレームによって置き換えられるステップと、を備えるコンピュータによって実行される方法。
【請求項34】
前記第1フレームは、前記データ構造を識別する前記第1フレームへの参照によって、前記データ構造に関連付けられている請求項33記載のコンピュータによって実行される方法。
【請求項35】
メソッドを逆最適化するためのコンピュータシステムであって、前記メソッドが第1の最適化状態にあり、更に前記メソッドは、制御スタック上に配置されたフレームに関連付けられており、
前記制御スタックから分離されたデータ構造であって、前記メソッドに関する情報を含む前記データ構造と、
前記フレームを前記データ構造に関連付けられるように構成された第1のメカニズムと、を備えるコンピュータシステム。
【請求項36】
請求項35記載のコンピュータシステムであって、
前記フレームを第2の最適化状態に逆最適化するデオプティマイザを更に含み、
前記第2の最適化状態は前記第1の最適化状態よりも最適化が進んでおらず、
デオプティマイザは、更に前記メソッドを第2の最適化状態に逆最適化する請求項35記載のコンピュータシステム。
【請求項37】
コンパイル済メソッドの逆最適化は、該コンパイル済メソッドに含まれるコンパイル済アクティベーションの逆最適化を含む請求項36記載のコンピュータシステム。
【請求項38】
前記データ構造が機械独立である請求項35〜37のいずれかに記載のコンピュータシステム。
【請求項39】
前記第1のメカニズムは、前記フレームから前記データ構造を参照する参照インジケータである請求項35〜38のいずれかに記載のコンピュータシステム。
【請求項40】
コンパイル済メソッドを逆最適化するためにコンピュータによって実行される方法であって、前記メソッドが第1の最適化状態にあり、更に前記メソッドは、制御スタック上に配置されたフレームに関連付けられており、
前記メソッドに関する情報を含むデータ構造を生成するステップであって、この情報は、前記メソッド及び前記フレームから取得されたものであるステップと、
前記フレームに対し前記データ構造を識別するように構成されているメカニズムを生成するステップと、を備える方法。
【請求項41】
前記メソッドを第2の最適化状態に逆最適化するステップを更に含む請求項40記載のコンピュータによって実行される方法。
【請求項42】
コンパイル済メソッドを逆最適化するためにコンピュータを実行させる方法であって、前記メソッドが第1の最適化状態にあり、更に前記メソッドは、第1のメモリと関連付けられており、
第1のメモリから分離された第2のメモリ上に配置されると共に前記メソッドに関連付けられた情報を含むデータ構造を生成するステップであって、この情報は、前記第1のメモリから取得されたものであるステップと、
前記第1のメモリを前記第2のメモリに関連付けるように構成された識別メカニズムを生成するステップと、を備えるコンピュータによって実行される方法。
【請求項43】
コンパイル済メソッドを逆最適化するためにコンピュータによって実行される方法であって、前記メソッドが第1の最適化状態にあり、
前記コンパイル済メソッドから情報を取得するステップと、
少なくとも一部が前記情報に基づいているデータ構造を生成するステップであって、前記データ構造が前記コンパイル済メソッドに関する情報を含んでいるステップと、
前記データ構造を用いて前記コンパイル済メソッドを第2の最適化状態に逆最適化するステップと、を備える方法。
さらに、コンパイル済コードが、もはや有効でない仮定に基づいているという理由逆コンパイル済コードを廃棄しなければならない場合もある。例えば、コンパイル済コードは、新しいクラスがロードされたという理由や、プログラムコードが変更されたという理由で棄却される場合がある。仮定がもはや有効でない、すなわちもはや成り立たない場合、コンピュータシステムがコンパイル済コードを実行し続けるなら、誤った結果が生じるかもしれない。従って、コンピュータシステムは、一般に、コンパイル済コードが現在一つ以上のアクティベーションレコード内で動作しているという場合ですら、誤った結果を警戒するためにコンパイル済コードの実行を停止しなければならない。
コンパイル済フレームが制御スタックのトップに来るまで逆コンパイル済フレームが等価なインタープリタコードに変換されない場合がある。これは、等価インタープリタコードは、しばしばコンパイル済フレームによって要求されるよりも多くの制御スタック上のスペースを要求するという事実による。従って、付加的なスペースを制御スタックの中間に割り当てることができない場合があるので、メソッドに対応するフレームが制御スタックのトップに来るま、そのメソッドをデコンパイル(逆コンパイル)したりデオプティマイズ(逆最適化)することができない。このため、コンパイル済フレームが制御スタックの中間にあるとき、すなわちコンパイル済フレームが制御スタックの最上フレームでないときは、コンパイル済フレームを対応するインタープリタフレームによって置き換えることはできない。
コンパイル済メソッド316の解釈済表現に関する情報は、コンパイル済メソッド316及びフレーム308bの双方に含まれていることがある。一般に、当業者であれば理解できるように、コンパイル済メソッド316は静的な情報を含み、フレーム308bは動的な情報を含む。図7を参照して後述するように、この情報は、インタープリタアクティベーションを保持するように本質的に構成されたデータ構造を生成する際に用いられる。インタープリタアクティベーションを保持するデータ構造を生成することで、フレーム308bの逆最適化が可能になる。図4は、インタープリタアクティベーションを保持するデータ構造が本発明の実施形態に従って生成された後におけるスタック304の線図である。データ構造324は、バーチャルフレーム(“vframe")アレイと呼ばれ、図3のコンパイル済メソッド316を表すインタープリタアクティベーション328を保持する。
JP10319743A 1997-10-06 1998-10-06 コンパイル済アクティベーションを動的に逆最適化する方法及び装置 Pending JPH11237991A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/944,330 US5933635A (en) 1997-10-06 1997-10-06 Method and apparatus for dynamically deoptimizing compiled activations
US08/944330 1997-10-06

Publications (2)

Publication Number Publication Date
JPH11237991A JPH11237991A (ja) 1999-08-31
JPH11237991A5 true JPH11237991A5 (ja) 2006-02-09

Family

ID=25481204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10319743A Pending JPH11237991A (ja) 1997-10-06 1998-10-06 コンパイル済アクティベーションを動的に逆最適化する方法及び装置

Country Status (5)

Country Link
US (3) US5933635A (ja)
EP (1) EP0908820A3 (ja)
JP (1) JPH11237991A (ja)
KR (1) KR100573043B1 (ja)
CN (1) CN1143210C (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970249A (en) * 1997-10-06 1999-10-19 Sun Microsystems, Inc. Method and apparatus for performing byte-code optimization during pauses
US5995754A (en) * 1997-10-06 1999-11-30 Sun Microsystems, Inc. Method and apparatus for dynamically optimizing byte-coded programs
US5933635A (en) * 1997-10-06 1999-08-03 Sun Microsystems, Inc. Method and apparatus for dynamically deoptimizing compiled activations
US6865734B2 (en) * 1997-10-06 2005-03-08 Sun Microsystems, Inc. Method and apparatus for performing byte-code optimization during pauses
US6317796B1 (en) 1997-10-06 2001-11-13 Sun Microsystems, Inc. Inline database for receiver types in object-oriented systems
US6704927B1 (en) * 1998-03-24 2004-03-09 Sun Microsystems, Inc. Static binding of dynamically-dispatched calls in the presence of dynamic linking and loading
US6205578B1 (en) * 1998-08-14 2001-03-20 Ati International Srl Interpreter for stack-based languages
JP2000122875A (ja) * 1998-10-19 2000-04-28 Internatl Business Mach Corp <Ibm> 例外処理方法およびシステム
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
JP3807860B2 (ja) * 1999-01-29 2006-08-09 インターナショナル・ビジネス・マシーンズ・コーポレーション コンパイル方法および装置、並びにメソッド活動度計算方法および装置
US6968549B1 (en) * 1999-07-02 2005-11-22 Beryl Technical Assays Llc Method and system for dynamically loading data structures into memory with global constant pool
US7150005B2 (en) * 1999-07-02 2006-12-12 Beryl Technical Assays, Llc Method and system for global constant management for memory
US6714904B1 (en) * 1999-10-13 2004-03-30 Transmeta Corporation System for using rate of exception event generation during execution of translated instructions to control optimization of the translated instructions
US7761857B1 (en) 1999-10-13 2010-07-20 Robert Bedichek Method for switching between interpretation and dynamic translation in a processor system based upon code sequence execution counts
JP3356742B2 (ja) * 1999-11-17 2002-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム実行方法
US6526572B1 (en) * 2000-02-09 2003-02-25 Hewlett-Packard Company Mechanism for software register renaming and load speculation in an optimizer
US6594821B1 (en) 2000-03-30 2003-07-15 Transmeta Corporation Translation consistency checking for modified target instructions by comparing to original copy
US6615300B1 (en) 2000-06-19 2003-09-02 Transmeta Corporation Fast look-up of indirect branch destination in a dynamic translation system
US6973646B1 (en) * 2000-07-21 2005-12-06 International Business Machines Corporation Method for compiling program components in a mixed static and dynamic environment
US6658656B1 (en) * 2000-10-31 2003-12-02 Hewlett-Packard Development Company, L.P. Method and apparatus for creating alternative versions of code segments and dynamically substituting execution of the alternative code versions
JP3808755B2 (ja) * 2001-11-07 2006-08-16 富士通株式会社 Jitコンパイラを備えた仮想計算機
US7181732B2 (en) * 2001-11-14 2007-02-20 Sun Microsystems, Inc. Method and apparatus for facilitating lazy type tagging for compiled activations
US6738969B2 (en) 2001-11-14 2004-05-18 Sun Microsystems, Inc. Non-intrusive gathering of code usage information to facilitate removing unused compiled code
US6996814B2 (en) 2001-11-14 2006-02-07 Sun Microsystems, Inc. Method and apparatus for dynamically compiling byte codes into native code
US7020160B1 (en) 2001-12-17 2006-03-28 Supergate Technology Usa, Inc. Interface circuits for modularized data optimization engines and methods therefor
US7180909B1 (en) * 2001-12-17 2007-02-20 Supergate Technology Usa, Inc. Interface receive circuits for modularized data optimization engines and methods therefor
US8639849B2 (en) * 2001-12-17 2014-01-28 Sutech Data Solutions Co., Llc Integrated circuits for high speed adaptive compression and methods therefor
US6973644B2 (en) * 2002-04-12 2005-12-06 The Mathworks, Inc. Program interpreter
US7051322B2 (en) * 2002-12-06 2006-05-23 @Stake, Inc. Software analysis framework
US7310723B1 (en) 2003-04-02 2007-12-18 Transmeta Corporation Methods and systems employing a flag for deferring exception handling to a commit or rollback point
US7743377B2 (en) * 2004-10-25 2010-06-22 Microsoft Corporation Cooperative threading in a managed code execution environment
US8413162B1 (en) 2005-06-28 2013-04-02 Guillermo J. Rozas Multi-threading based on rollback
DE602005024399D1 (de) * 2005-08-30 2010-12-09 Sony Ericsson Mobile Comm Ab Verfahren und Software für die Optimierung der Positionierung von Software-Funktionen in einem Speicher
US8613080B2 (en) 2007-02-16 2013-12-17 Veracode, Inc. Assessment and analysis of software security flaws in virtual machines
JP2009211190A (ja) * 2008-02-29 2009-09-17 Hitachi Ltd 情報処理装置
US20130205282A1 (en) * 2012-02-07 2013-08-08 Microsoft Corporation Transferring program execution from compiled code to interpreted code
US9286063B2 (en) 2012-02-22 2016-03-15 Veracode, Inc. Methods and systems for providing feedback and suggested programming methods
US8930920B2 (en) 2012-12-31 2015-01-06 Oracle International Corporation Self-optimizing interpreter and snapshot compilation
US12124586B2 (en) * 2013-09-13 2024-10-22 Omnissa, Llc Risk assessment for managed client devices
WO2015057828A1 (en) * 2013-10-15 2015-04-23 Mill Computing, Inc. Computer processor employing cache memory storing backless cache lines
US9569185B2 (en) 2014-02-07 2017-02-14 Oracle International Corporation Changing de-optimization guard representation during the compilation process
KR20170047957A (ko) * 2015-10-26 2017-05-08 삼성전자주식회사 반도체 장치의 동작 방법 및 반도체 시스템
US11029929B2 (en) * 2019-01-24 2021-06-08 Red Hat, Inc. Using emulation to improve startup time for just-in-time compilation

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371747A (en) * 1992-06-05 1994-12-06 Convex Computer Corporation Debugger program which includes correlation of computer program source code with optimized object code
WO1993025964A1 (en) * 1992-06-05 1993-12-23 Convex Computer Corporation Computer program debugging in the presence of compiler synthesized variables
US5586328A (en) * 1994-10-21 1996-12-17 Microsoft Corporation Module dependency based incremental compiler and method
US6021272A (en) * 1995-10-04 2000-02-01 Platinum Technology, Inc. Transforming and manipulating program object code
US5956479A (en) * 1995-11-13 1999-09-21 Object Technology Licensing Corporation Demand based generation of symbolic information
US6151618A (en) * 1995-12-04 2000-11-21 Microsoft Corporation Safe general purpose virtual machine computing system
JP3801643B2 (ja) * 1996-01-24 2006-07-26 サン・マイクロシステムズ・インコーポレイテッド スタックを用いる演算マシンのための命令フォールディング処理
US5933635A (en) * 1997-10-06 1999-08-03 Sun Microsystems, Inc. Method and apparatus for dynamically deoptimizing compiled activations
US6110226A (en) * 1998-02-19 2000-08-29 Cygnus Solutions Java development environment using optimizing ahead-of-time compiler
US6263489B1 (en) * 1998-04-30 2001-07-17 Hewlett-Packard Company Method and apparatus for debugging of optimized code
US6434741B1 (en) * 1998-04-30 2002-08-13 Hewlett-Packard Company Method and apparatus for debugging of optimized code using emulation
US6223340B1 (en) * 1998-10-09 2001-04-24 Sun Microsystems, Inc. Method for directly inlining virtual calls without on-stack replacement
US6275981B1 (en) * 1998-11-12 2001-08-14 Hewlett-Packard Company Method and system for correlating profile data dynamically generated from an optimized executable program with source code statements
US6507946B2 (en) * 1999-06-11 2003-01-14 International Business Machines Corporation Process and system for Java virtual method invocation

Similar Documents

Publication Publication Date Title
JPH11237991A5 (ja)
KR100573043B1 (ko) 컴파일링된활성화레코드를동적최적화해제하는방법및장치
KR100289628B1 (ko) 멀티태스킹 기능의 정보처리시스템을 위한 자원관리방법및 그 장치
US6578094B1 (en) Method for preventing buffer overflow attacks
US7203941B2 (en) Associating a native resource with an application
KR101366402B1 (ko) 가상 실행 시스템 및 가상 실행 시스템의 성능 향상 방법
US20110213954A1 (en) Method and apparatus for generating minimum boot image
KR20040032199A (ko) 비휘발성 메모리에의 데이터 저장 방법 및 장치
CN101661486A (zh) 对包含虚拟机的宿主机硬盘进行碎片整理的方法和系统
US7406684B2 (en) Compiler, dynamic compiler, and replay compiler
JP2016541047A (ja) コードスタック管理
EP1215577A3 (en) Fault management and recovery based on task-ID
JP2019506666A (ja) ハードウェア管理スタック・アーキテクチャにおける呼び出し元により保護されるスタック・リターンアドレス
JP2000347872A (ja) 例外を正規制御フローとして処理する方法及び装置
US20170323105A1 (en) Virtual machine creation method and apparatus
JP4005724B2 (ja) マルチプルリターンサイトを実現するための方法及び装置
CN110941516B (zh) 操作系统还原方法、装置、设备及存储介质
KR100494499B1 (ko) 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를이용한 바이러스 치료방법
US20040243986A1 (en) Interpreter and native code execution method
CN106250125A (zh) 获取日志的方法及装置
CN112612417B (zh) 数据迁移方法、装置、设备及存储介质
CN112596950B (zh) 虚拟机数据备份方法、装置、设备及存储介质
US8898625B2 (en) Optimized storage of function variables
JP2009134565A (ja) 仮想計算機システム及び仮想計算機システムの制御方法
WO2002037272A2 (en) Improved frameworks for invoking methods in virtual machines