JP2005251208A - バーチャルマシン内でコンパイルされたメソッドを実行する頻度を決定する方法と装置 - Google Patents
バーチャルマシン内でコンパイルされたメソッドを実行する頻度を決定する方法と装置 Download PDFInfo
- Publication number
- JP2005251208A JP2005251208A JP2005063167A JP2005063167A JP2005251208A JP 2005251208 A JP2005251208 A JP 2005251208A JP 2005063167 A JP2005063167 A JP 2005063167A JP 2005063167 A JP2005063167 A JP 2005063167A JP 2005251208 A JP2005251208 A JP 2005251208A
- Authority
- JP
- Japan
- Prior art keywords
- compiled
- compiled method
- instruction
- flag
- executed
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Abstract
【解決手段】システムは、コンパイルされたメソッドが実行されるとき、決定することによって始まる。その場合、システムは、コンパイルされたメソッドに対応するフラグをセットすることにより、コンパイルされたメソッドが実行していることを示す。システムは、フラグを定期的にスキャンし、フラグがセットされているとき、対応するカウンターの値を増加させて、それから、フラグをリセットする。最終的に、システムは、カウンターの値を解析することにより、コンパイルされたメソッド実行の頻度を決定する。
【選択図】図3
Description
本出願は、ここで、35U.S.C.§119の下で、U.S.特許仮出願60/550,802、2004年3月5日出願、「Code Cache Eviction Ranking Based on Execution Interval Summarization」という名称、発明者Bernd J.W.MathiskeとOleg A.Pliss(代理人整理番号 SUN04−0481PSP)の優先権主張をする。
Java 2プラットフォーム、Micro Edition(J2ME(登録商標))は、無線デバイスの領域において非常に人気が高くなった。Motorola、Nokia、NTT DoCoMo、RIM、Siemens、および無線デバイス産業における他に多く主要な企業は、最近、非常に大容量のJ2MEの使用可能なデバイスを出荷し始めた。2003年だけで、2億台を超えるJ2MEの使用可能なモバイルフォンが出荷されたと推定される。
しかし、前述した全ての技術は欠点を有する。それら技術は、顕著にミューテーターを減速させるか、またはよい犠牲選択のための十分な情報を収集しない。さらに、GC間の間隔は、一般的に大き過ぎて、多数の方法から有益なランキングを確立することができない。(CLDC HIのように複数ビットにおける複数のGC間隔を反映することは、1つのGC間隔は一般的に既に長すぎるので、この問題を解決しない。)
従って、前述した欠点なしにバーチャルマシン内でコンパイルされたメソッドを実行する頻度を決定する方法が必要とされる。
本発明の1つの実施形態は、バーチャルマシン内でコンパイルされたメソッドの実行の頻度を決定することを容易にするシステムを提供する。システムは、コンパイルされたメソッドが実行されるとき、決定することによって始まる。その場合、システムは、コンパイルされたメソッドに対応するコンパイルされたフラグをセットすることにより、コンパイルされたメソッドが実行していることを示す。システムは、フラグを定期的にスキャンし、フラグがセットされているとき、対応するカウンターの値を増加させて、それから、フラグをリセットする。最終的に、システムは、カウンターの値を解析することにより、コンパイルされたメソッド実行の頻度を決定する。
図1は、本発明の実施形態に従ったメモリ制限があるコンピューティングデバイス100を示す。メモリ制限があるコンピューティングデバイス100は、この限りではないが、携帯電話、マイクロプロセッサに基づくコンピュータシステム、デジタル信号プロセッサ、携帯型コンピューティングデバイス、整理記録ツール、デバイスコントローラー、装置内のコンピューテーショナルエンジンを含む、いかなるタイプのコンピューティングデバイスを含むことができる。メモリ制限があるコンピューティングデバイス100は、コンパイルされたメソッドとインタープリットされたメソッドとの両方の実行を交互にサポートするJava Virtual Machine(JVM)102を備える。(JAVA、JVM、JAVA VIRTUAL MACHINEという用語は、SUN Microsystems,Inc.of Santa Clara,Californiaの登録商標である。)JVM102はプラットフォーム独立バーチャルマシンのいかなるタイプでもあり得て、Java Virtual Machineに限られるものと意図されていない。
図2は、本発明の実施形態に従ったフラグアレイ200を示す。フラグアレイ200は、前述したように、重量フックの犠牲選択の質と軽量フックの全体コストとの近くに到達する形で、犠牲選択を容易にするために用いられる。本発明の1つの実施形態では、JVM102における動的なコンパイラーは、(1)呼ばれる人のプロローグ、(2)呼び出し直後、(3)バックワードブランチの直前に、おいて、付加的なコードを生成する。前記の3つの場所を用いて、最も適切なメソッドのアクセス(結局インタープリットより実行されるより良い、長いループのないコードストレッチを除いて)をキャッチすることができる。また、その他のフックの場所(または前記の場所のサブセット)は、恐らく正確性が欠けるのでメソッドランキングの質が低くなるが、これもまた使用され得る。
図3は、本発明の実施形態に従った参照アレイ300を示す。参照アレイ300は、フラグのインデックスを、コンパイルされたメソッド112、コンパイルされたメソッド302、コンパイルされたメソッド304といった、それぞれのコンパイルされたメソッドにマッピングする。さらに、付加的な「カウント」のフィールドが各メソッドに関連付けられる。これは、第3のアレイもしくはカウントアレイ310によって、もしくは、各メソッドに付加的なフィールドを置くことによって、関連付けられる。前記のデータ構造を用いることで、システムは、コンパイルされたルーチン全てを反復し、フラグがセットされているフィールドに従って「カウント」のフィールドを更新する。カウントフィールドが更新される後に、全てのフラグはリセットされる。
システムは、またインデックスのオーバーフローを処理する必要がある。各インデックスが、コンパイルされる前に、メソッドに割り当てられる。利用可能なインデックスがない場合、システムは、インデックスがあくまでコンパイルを止めるか、もしくは現在ランキングの低いルーチンのインデックスを取得しようとし得る。最初のインデックスの所有者が、まれにフラグをセットしたとき、不正確が起こる。しかしながら、これはまれであり、十分大きいアレイを選択することによってこの上なく保証されているので、インデックスのオーバーフローは、起こり得そうもない。このことを達成するために、アレイのサイズは、ヒープのサイズに比例し得る。(例えば、1メガバイト(MB)のヒープに対して、500の要素を有するアレイが用いられ得る。)
(フラグビットのセット)
図4は、本発明の実施形態に従って、フラグアレイ200内のフラグビットをセットするプロセスを示すフローチャートを示す。システムは、コンパイルされたメソッド(例えば、コンパイルされたメソッド112)が実行されるときを決定することによって始まる(ステップ402)。これは、上述の実行フックを用いることによって達成され得る。最終的に、システムは、フラグビットをフラグアレイ200内にセットすることにより、コンパイルされたメソッドが実行したことを示す(ステップ406)。
図5は、本発明の実施形態に従って、フラブアレイ200からカウントアレイ310に、セットされたフラグビットを累積するプロセスを示すフローチャートを示す。ある定期的間隔で、システムは、セットされたフラグビットに対して、フラグアレイ200をスキャンする(ステップ502)。それぞれのセットされたフラグビットに対して、システムは、フラグアレイ200内のフラグビットに対応するカウントアレイ310内でカウントを増加させる(ステップ504)。カウントアレイ310内のすべての適正なカウントが、増加されたら、システムは、次の定期的間隔で、フラグアレイ200内のすべてのフラグビットを消去する(ステップ506)。カウントアレイを増加する一方で、システムが、カウントの1つにおいて、オーバーフローを検出するとき、システムは、上述のように、カウントアレイ310のビットをシフトすることによって、デケイを導入し得ることに留意する。
102 Java Virtual Machine(JVM)
110 コンパイルされたメソッドの格納装置
112、202、302、304 コンパイルされたメソッド
200 フラグアレイ
300 参照アレイ
310 カウントアレイ
Claims (39)
- バーチャルマシン内でコンパイルされたメソッドの実行の頻度を決定する方法であって、
コンパイルされたメソッドが実行されるとき、該コンパイルされたメソッドに対応するコンパイルされたフラグをセットすることにより、該コンパイルされたメソッドが実行していることを示すことと、
該フラグを定期的にスキャンし、該フラグがセットされているとき、対応するカウンターの値を増加させて、それから、該フラグをリセットすることと、
該カウンターの該値を解析することによって、該コンパイルされたメソッドの実行の頻度を決定することと
を包含する、方法。 - 前記カウンターの増加の間の時間間隔を調整することをさらに包含する、請求項1に記載の方法。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、該コンパイルされたメソッドが、第2のコンパイルされたメソッドを呼び出すとき、命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項1に記載の方法。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、該コンパイルされたメソッドが、第2のコンパイルされたメソッドによって呼び出されるとき、命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項1に記載の方法。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、該コンパイルされたメソッドから第2のコンパイルされたメソッドへ戻るとき、命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項1に記載の方法。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、第2のコンパイルされたメソッドから該コンパイルされたメソッドへ戻るとき、命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項1に記載の方法。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、該コンパイルされたメソッド内でバックワードブランチを開始するとき、命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項1に記載の方法。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、該コンパイルされたメソッド内でバックワードブランチに対してターゲットで、命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項1に記載の方法。
- 前記コンパイルされたメソッドの実行の頻度が、所定のしきい値を下回るとき、該コンパイルされたメソッドをイヴィクトし、その結果、前記方法は、該コンパイルされたメソッドが再び実行されるとき、続いてリコンパイルもしくはインタープリットされなければならないことをさらに包含する、請求項1に記載の方法。
- 所定のしきい値を調整することにより、前記コンパイルされたメソッドの数を制御することをさらに包含する、請求項9に記載の方法。
- 前記カウンターを定期的に減少させることにより、デケイを導入して、それによって、前記コンパイルされたメソッドの過去の実行の関連性を自然にフェードすることをさらに包含する、請求項1に記載の方法。
- いずれかのメソッドに関連付けられたいずれかのカウンターが、所定のしきい値に達するとき、前記カウンターを定期的に減少させることをさらに包含する、請求項11に記載の方法。
- 前記フラグに割り当てられた重量値を定期的に増加させ、その結果、前記コンパイルされたメソッドの後の実行は、該コンパイルされたメソッドの前の実行より多くカウントすることをさらに包含する、請求項1に記載の方法。
- コンピュータによって実行されるとき、該コンピュータに方法を実行させる命令を格納するコンピュータ読み取り可能格納媒体であって、該命令がコンピュータによって実行されるとき、該命令が該コンピュータにバーチャルマシン内でコンパイルされたメソッドの実行の頻度を決定させ、
該方法は、
コンパイルされたメソッドが実行されるとき、該コンパイルされたメソッドに対応するフラグをセットすることにより、該コンパイルされたメソッドが実行していることを示すことと、
該フラグを定期的にスキャンし、該フラグがセットされているとき、対応するカウンターの値を増加させて、それから、該フラグをリセットすることと、
該カウンターの該値を解析することによって、該コンパイルされたメソッドの実行の頻度を決定することと
を包含する、コンピュータ読み取り可能格納媒体。 - 前記方法は、前記カウンターの増加の間の時間間隔を調整することをさらに包含する、請求項14に記載のコンピュータ読み取り可能格納媒体。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、該コンパイルされたメソッドが、第2のコンパイルされたメソッドを呼び出すとき、命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項14に記載のコンピュータ読み取り可能格納媒体。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、該コンパイルされたメソッドが、第2のコンパイルされたメソッドによって呼び出されるとき、命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項14に記載のコンピュータ読み取り可能格納媒体。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、該コンパイルされたメソッドから第2のコンパイルされたメソッドへ戻るとき、命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項14に記載のコンピュータ読み取り可能格納媒体。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、第2のコンパイルされたメソッドから該コンパイルされたメソッドへ戻るとき、命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項14に記載のコンピュータ読み取り可能格納媒体。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、該コンパイルされたメソッド内でバックワードブランチを開始するとき、命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項14に記載のコンピュータ読み取り可能格納媒体。
- 前記コンパイルされたメソッドが実行されるとき、決定することは、該コンパイルされたメソッド内でバックワードブランチに対して、ターゲットで命令を実行することをさらに伴い、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項14に記載のコンピュータ読み取り可能格納媒体。
- 前記方法は、前記コンパイルされたメソッドの実行の頻度が、所定のしきい値を下回るとき、該コンパイルされたメソッドをイヴィクトし、その結果、該方法は、該コンパイルされたメソッドが再び実行されるとき、続いてリコンパイルもしくはインタープリットされなければならないことをさらに包含する、請求項14に記載のコンピュータ読み取り可能格納媒体。
- 前記方法は、所定のしきい値を調整することにより、前記コンパイルされたメソッドの数を制御することをさらに包含する、請求項22に記載のコンピュータ読み取り可能格納媒体。
- 前記カウンターを定期的に減少させることにより、デケイを導入して、それによって、前記コンパイルされたメソッドの過去の実行の関連性を自然にフェードすることをさらに包含する、請求項14に記載のコンピュータ読み取り可能格納媒体。
- 前記方法は、いずれかの方法に関連付けられたいずれかのカウンターが、所定のしきい値に達するとき、前記カウンターを定期的に減少させることをさらに包含する、請求項24に記載のコンピュータ読み取り可能格納媒体。
- 前記方法は、前記フラグに割り当てられた重量値を定期的に増加させ、その結果、前記コンパイルされたメソッドの後の実行は、該コンパイルされたメソッドの前の実行より多くカウントすることをさらに包含する、請求項14に記載のコンピュータ読み取り可能格納媒体。
- バーチャルマシン内でコンパイルされたメソッドの実行の頻度を決定する装置であって、
コンパイルされたメソッドが実行されるとき、決定するように構成されている決定メカニズムと、
該コンパイルされたメソッドに対応しているフラグをセットするように構成されているフラグセッティングメカニズムであって、該コンパイルされたメソッドが実行しているとき、該コンパイルされたメソッドが実行していることを示すフラグセッティングメカニズムと、
該フラグを定期的にスキャンして、フラグがセットされているとき、対応するカウンターの値を増加させて、該フラグをリセットするように構成されているスキャニングメカニズムと、
該カウンターの該値を解析することにより、該コンパイルされたメソッドの実行の頻度を決定するように構成されている解析メカニズムと
を備えた、装置。 - 前記カウンターの増加の間の時間間隔を調整するように構成されている調整メカニズムをさらに備えた、請求項27に記載の装置。
- 前記決定メカニズムは、前記コンパイルされたメソッドが、第2のコンパイルされたメソッドを呼び出すとき、該コンパイルされたメソッドが、命令を実行することによって実行されるとき、決定するようにさらに構成されており、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項27に記載の装置。
- 前記決定メカニズムは、前記コンパイルされたメソッドが、第2のコンパイルされたメソッドによって呼び出されるとき、該コンパイルされたメソッドが、命令を実行することによって、実行されるとき、決定するようにさらに構成されており、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項27に記載の装置。
- 前記決定メカニズムは、前記コンパイルされたメソッドから、第2のコンパイルされたメソッドに戻るとき、該コンパイルされたメソッドが、命令を実行することによって、実行されるとき、決定するようにさらに構成されており、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項27に記載の装置。
- 前記決定メカニズムは、第2のコンパイルされたメソッドから、前記コンパイルされたメソッドに戻るとき、該コンパイルされたメソッドが、命令を実行することによって、実行されるとき、決定するようにさらに構成されており、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項27に記載の装置。
- 前記決定メカニズムは、前記コンパイルされたメソッドが、該コンパイルされたメソッド内でバックワードブランチを開始するとき、命令を実行することによって、実行されるとき、決定するようにさらに構成されており、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項27に記載の装置。
- 前記決定メカニズムは、前記コンパイルされたメソッドが、該コンパイルされたメソッド内でバックワードブランチに対して、ターゲットで命令を実行することによって、実行されるとき、決定するようにさらに構成されており、該命令が、該コンパイルされたメソッドに対応する前記フラグをセットする、請求項27に記載の装置。
- 前記コンパイルされたメソッドの実行の頻度が、所定のしきい値を下回るとき、該コンパイルされたメソッドをイヴィクトし、その結果、該方法は、該コンパイルされたメソッドが再び実行されるとき、続いてリコンパイルもしくはインタープリットされなければならないように構成されているイヴィクションメカニズムをさらに備えた、請求項27に記載の装置。
- 前記所定のしきい値を調整することによって、前記コンパイルされたメソッドの数を制御するように構成されている調整メカニズムをさらに備えた、請求項35に記載の装置。
- 前記カウンターを定期的に減少させることにより、デケイを導入して、それによって、前記コンパイルされたメソッドの過去の実行の関連性を自然にフェードするように構成されているデケイメカニズムをさらに備えた、請求項27に記載の装置。
- 前記デケイメカニズムは、いずれかの方法に関連付けられたいずれかのカウンターが、所定のしきい値に達するとき、前記カウンターを定期的に減少させるようにされに構成されている、請求項37に記載の装置。
- 前記フラグに割り当てられた重量値を定期的に増加させて、その結果、前記コンパイルされたメソッドの後の実行は、該コンパイルされたメソッドの前の実行より多くカウントするようにさらに構成されているウエイティングメカニズムである、請求項27に記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US55080204P | 2004-03-05 | 2004-03-05 | |
US10/966,086 US7412693B2 (en) | 2004-03-05 | 2004-10-15 | Method and apparatus for determining frequency of execution for compiled methods within a virtual machine |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011257348A Division JP5422635B2 (ja) | 2004-03-05 | 2011-11-25 | バーチャルマシン内でコンパイルされたメソッドを実行する頻度を決定する方法、装置、記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005251208A true JP2005251208A (ja) | 2005-09-15 |
Family
ID=34915703
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005063167A Pending JP2005251208A (ja) | 2004-03-05 | 2005-03-07 | バーチャルマシン内でコンパイルされたメソッドを実行する頻度を決定する方法と装置 |
JP2011257348A Active JP5422635B2 (ja) | 2004-03-05 | 2011-11-25 | バーチャルマシン内でコンパイルされたメソッドを実行する頻度を決定する方法、装置、記憶媒体 |
JP2013208227A Pending JP2013257916A (ja) | 2004-03-05 | 2013-10-03 | バーチャルマシン内でコンパイルされたメソッドを実行する頻度を決定する方法と装置 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011257348A Active JP5422635B2 (ja) | 2004-03-05 | 2011-11-25 | バーチャルマシン内でコンパイルされたメソッドを実行する頻度を決定する方法、装置、記憶媒体 |
JP2013208227A Pending JP2013257916A (ja) | 2004-03-05 | 2013-10-03 | バーチャルマシン内でコンパイルされたメソッドを実行する頻度を決定する方法と装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7412693B2 (ja) |
EP (1) | EP1589425B1 (ja) |
JP (3) | JP2005251208A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180088706A (ko) * | 2015-12-02 | 2018-08-06 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 언어 가상 머신에서 고-사용 중간 코드를 식별하는 방법 및 디바이스 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7568190B2 (en) * | 2005-03-08 | 2009-07-28 | International Business Machines Corporation | Late binding of optimization information for just in time compilation |
DE102005021986A1 (de) * | 2005-05-09 | 2006-11-16 | Robert Bosch Gmbh | Verfahren zur Steuergeräte-Überwachung |
US8875114B2 (en) * | 2007-09-21 | 2014-10-28 | International Business Machines Corporation | Employing identifiers provided by an operating system of a processing environment to optimize the processing environment |
US20090217246A1 (en) * | 2008-02-27 | 2009-08-27 | Nce Technologies, Inc. | Evaluating Software Programming Skills |
JP2010160622A (ja) * | 2009-01-07 | 2010-07-22 | Toshiba Corp | シミュレータ |
US8719797B2 (en) * | 2010-05-18 | 2014-05-06 | Blackberry Limited | System and method for debugging dynamically generated code of an application |
CN102693181A (zh) * | 2011-03-25 | 2012-09-26 | 鸿富锦精密工业(深圳)有限公司 | 分位刷写系统及方法 |
US9021421B1 (en) * | 2012-05-07 | 2015-04-28 | Google Inc. | Read and write barriers for flexible and efficient garbage collection |
CN111045779B (zh) * | 2019-11-01 | 2024-03-01 | 福建天泉教育科技有限公司 | 系统内存回收配置方法、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232148A (ja) * | 1998-02-18 | 1999-08-27 | Toyota Motor Corp | 計算機の負荷率計測方法及び計測システム |
JP2003140909A (ja) * | 2001-11-07 | 2003-05-16 | Fujitsu Ltd | Jitコンパイラを備えた仮想計算機 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6421647A (en) * | 1987-07-17 | 1989-01-25 | Toshiba Corp | Maintenance management method for peripheral equipment for electronic computer |
US5313616A (en) * | 1990-09-18 | 1994-05-17 | 88Open Consortium, Ltd. | Method for analyzing calls of application program by inserting monitoring routines into the executable version and redirecting calls to the monitoring routines |
US6126329A (en) * | 1993-06-08 | 2000-10-03 | Rational Software Coporation | Method and apparatus for accurate profiling of computer programs |
JP3301359B2 (ja) * | 1997-09-30 | 2002-07-15 | 日本電気株式会社 | リスト管理システム、方法及び記憶媒体 |
US5995754A (en) * | 1997-10-06 | 1999-11-30 | Sun Microsystems, Inc. | Method and apparatus for dynamically optimizing byte-coded programs |
US6513155B1 (en) * | 1997-12-12 | 2003-01-28 | International Business Machines Corporation | Method and system for merging event-based data and sampled data into postprocessed trace output |
US6321375B1 (en) * | 1998-05-14 | 2001-11-20 | International Business Machines Corporation | Method and apparatus for determining most recently used method |
JP2000022873A (ja) * | 1998-07-01 | 2000-01-21 | Ricoh Co Ltd | 複合機能装置 |
US6668372B1 (en) * | 1999-10-13 | 2003-12-23 | Intel Corporation | Software profiling method and apparatus |
US6681387B1 (en) * | 1999-12-01 | 2004-01-20 | Board Of Trustees Of The University Of Illinois | Method and apparatus for instruction execution hot spot detection and monitoring in a data processing unit |
JP2004529413A (ja) * | 2001-02-12 | 2004-09-24 | トリメディア テクノロジーズ インコーポレイテッド | 最適化された動的バイトコードインタプリタ |
US7350200B2 (en) * | 2001-03-29 | 2008-03-25 | Intel Corporation | Method and system of controlling dynamically compiled native code size |
US20030110357A1 (en) * | 2001-11-14 | 2003-06-12 | Nguyen Phillip V. | Weight based disk cache replacement method |
JP2003316584A (ja) * | 2002-04-24 | 2003-11-07 | Matsushita Electric Ind Co Ltd | プレロードクラスの生成/更新装置、及び方法 |
JP2003337711A (ja) * | 2002-05-21 | 2003-11-28 | Hitachi Ltd | 情報処理装置および方法 |
US7062684B2 (en) * | 2002-12-19 | 2006-06-13 | International Business Machines Corporation | Enabling tracing of a repeat instruction |
US20050050524A1 (en) * | 2003-08-25 | 2005-03-03 | Arm Limited | Generating software test information |
-
2004
- 2004-10-15 US US10/966,086 patent/US7412693B2/en active Active
-
2005
- 2005-02-28 EP EP05251157A patent/EP1589425B1/en active Active
- 2005-03-07 JP JP2005063167A patent/JP2005251208A/ja active Pending
-
2011
- 2011-11-25 JP JP2011257348A patent/JP5422635B2/ja active Active
-
2013
- 2013-10-03 JP JP2013208227A patent/JP2013257916A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232148A (ja) * | 1998-02-18 | 1999-08-27 | Toyota Motor Corp | 計算機の負荷率計測方法及び計測システム |
JP2003140909A (ja) * | 2001-11-07 | 2003-05-16 | Fujitsu Ltd | Jitコンパイラを備えた仮想計算機 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180088706A (ko) * | 2015-12-02 | 2018-08-06 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 언어 가상 머신에서 고-사용 중간 코드를 식별하는 방법 및 디바이스 |
KR102112081B1 (ko) * | 2015-12-02 | 2020-05-18 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 언어 가상 머신에서 고-사용 중간 코드를 식별하는 방법 및 디바이스 |
US10871976B2 (en) | 2015-12-02 | 2020-12-22 | Huawei Technologies Co, Ltd. | Method and apparatus for identifying hotspot intermediate code in language virtual machine |
Also Published As
Publication number | Publication date |
---|---|
JP2013257916A (ja) | 2013-12-26 |
EP1589425B1 (en) | 2012-08-08 |
EP1589425A3 (en) | 2008-07-23 |
US20050198620A1 (en) | 2005-09-08 |
JP2012038359A (ja) | 2012-02-23 |
US7412693B2 (en) | 2008-08-12 |
JP5422635B2 (ja) | 2014-02-19 |
EP1589425A2 (en) | 2005-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5422635B2 (ja) | バーチャルマシン内でコンパイルされたメソッドを実行する頻度を決定する方法、装置、記憶媒体 | |
US7765527B2 (en) | Per thread buffering for storing profiling data | |
US7818722B2 (en) | Computer implemented method and system for accurate, efficient and adaptive calling context profiling | |
US5995754A (en) | Method and apparatus for dynamically optimizing byte-coded programs | |
EP1635258B1 (en) | Program execution control device | |
JP3808755B2 (ja) | Jitコンパイラを備えた仮想計算機 | |
US7406684B2 (en) | Compiler, dynamic compiler, and replay compiler | |
EP3577567B1 (en) | Multiple stage garbage collector | |
US7424589B1 (en) | Method and an apparatus for the high-precision tracking of approximate per-task memory usage | |
JP2004259252A (ja) | Java(登録商標)プログラムでのバイトコードのコンパイル時間短縮システム及び方法 | |
US9280350B2 (en) | Methods and apparatus to perform adaptive pre-fetch operations in managed runtime environments | |
EP2115600A1 (en) | Database management methodology | |
US9027011B1 (en) | Using method-profiling to dynamically tune a virtual machine for responsiveness | |
CN109582649A (zh) | 一种元数据存储方法、装置、设备及可读存储介质 | |
US8533710B1 (en) | Using observed thread activity to dynamically tune a virtual machine for responsiveness | |
US8566812B1 (en) | Using observed object patterns to dynamically tune a virtual machine for responsiveness | |
US6738969B2 (en) | Non-intrusive gathering of code usage information to facilitate removing unused compiled code | |
JP2006164294A (ja) | Jitコンパイラを備えた仮想計算機 | |
Popa et al. | Using code collection to support large applications on mobile devices | |
JP2006202317A (ja) | Jitコンパイラを備えた仮想計算機 | |
JP2006134351A (ja) | Jitコンパイラを備えた仮想計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080214 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20101119 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20110209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110301 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110531 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110603 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110630 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110705 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110721 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110816 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111125 |