JP2001527237A - 増分不要情報収集 - Google Patents

増分不要情報収集

Info

Publication number
JP2001527237A
JP2001527237A JP2000525818A JP2000525818A JP2001527237A JP 2001527237 A JP2001527237 A JP 2001527237A JP 2000525818 A JP2000525818 A JP 2000525818A JP 2000525818 A JP2000525818 A JP 2000525818A JP 2001527237 A JP2001527237 A JP 2001527237A
Authority
JP
Japan
Prior art keywords
function
allocated
objects
heap
memory
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.)
Granted
Application number
JP2000525818A
Other languages
English (en)
Other versions
JP4177960B2 (ja
Inventor
ディヴィッド エム ソーントリー
マイケル イー マークリー
マーク ギルバート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2001527237A publication Critical patent/JP2001527237A/ja
Application granted granted Critical
Publication of JP4177960B2 publication Critical patent/JP4177960B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage collection

Abstract

(57)【要約】 増分不要情報コレクタが開示される。機能またはプログラムが終了すると、増分不要情報コレクタはオブジェクトのヒープから、オブジェクトを割振った機能またはプログラムの外側で参照されない機能またはプログラムによって割振られるオブジェクトを走査する。このようなオブジェクトが占めるメモリスペースは不要情報コレクタを待機せずに即座に再生される。

Description

【発明の詳細な説明】
【0001】
【技術分野】
この発明は一般にコンピュータ・システムに関し、特に該システムのメモリ部
分の管理に関する。
【0002】
【背景技術】
コンピュータ・システムの多くはオブジェクトを使用して情報を管理する。オ
ブジェクトとは、特定の属性を共用し、等速呼び出しメモリ(RAM)の記憶域
を占めるデータである。オブジェクトはメモリ内で重複することはできない。ラ
イブ・オブジェクトとはコンピュータ・システムによって目下実行中の計算プロ
セスに必要なオブジェクトのことである。システム内の全てのオブジェクトが常
時ライブであるならば、メモリの管理は関係ない。システムの起動時に各オブジ
ェクトに割振られるスペースは再生する必要がないからである。しかし、多くの
システムでは、ライブ・オブジェクトの寿命は前もって予測し得ない可変的なも
のである。このようなシステムでは、メモリ資源を保存するべき場合は、満了し
た、すなわち死んだオブジェクトを認識し、メモリからそれらを排除することが
必要である。
【0003】 不要情報とは、このようなデータが割振られたプログラム、方法、機能、また
はサブルーチンの実行にもはや使用されない、コンピュータ・システムのメモリ
に格納されたデータのことである。便宜上、データを割振るプログラム、方法、
機能、またはサブルーチンを間にプログラムまたは機能と呼ぶ。不要情報収集と
はもはや使用されない動的に割振られたメモリ内にデータを位置指定し、その五
のメモリ割振り要求を満たすためにメモリを再生するプロセスである。不要情報
の収集によって、プログラマはプログラムの終了時にもはや必要ない場合にデー
タをメモリから削除する心配をする必要がないので、プログラマの生産性が著し
く高まるという利得が得られる。従って、不要情報の収集によって、プログラマ
およびデザイナーはその努力を基本アルゴリズム、ユーザー・インターフェース
、および汎用の機能性の設計のような高レベルの仕事に集中できるようになる。
更に、低レベルの多くのプログラミングの問題点を除去することによって、不要
情報の収集によりプログラミング・エラーの確率が低下する。不要情報収集のこ
のような利点は相互に複合して、より低い開発コストでソフトウェアの機能性と
信頼性が向上する。
【0004】 不要情報の収集は多くの状況で実行することができる。例えば、利用できるメ
モリ内に残された記憶容量が或る所定レベル以下に減少した場合は、メモリをで
きる限り回復するために不要情報の収集が実行される。更に、プログラム、もし
くは機能は不要情報コレクタを呼び出すことによって強制的に不要情報を収集す
ることができる。最後に、不要情報コレクタを再生されるべきオブジェクトを探
索する背景的なタスクとしてランしてもよい。しかし、従来形の不要情報コレク
タは、呼び出すことができたとしても、もはや使用されないメモリ領域の探索で
全てのメモリを探査するためにシステムの周期的な停止を実行することによって
動作する。従来形の不要情報コレクタには多くの重要な欠点がある。このような
欠点の1つは、オブジェクトの割振り、および割振り解除に関して、記憶機構の
処理能力は一般に例えばスタックの割振りよりも大幅に低いことである。更に、
メモリを割振るために必要な時間は極めてルーズに限定されている。すなわち、
割振り時間の限定は、マウスのトラッキング、対話形のマルチメディア装置制御
、およびバーチャル・リアリティ・システムのような高度に対話形の、もしくは
リアルタイムのシステムを確実にプログラミングできるほど充分には厳密ではな
い。最後に、ある種の不要情報コネクタでは、メモリの読み出しおよび書き込み
に関連する性能上の不利点は、システム全体の性能が許容限度を超えて遅くなる
程大きい。
【0005】 上記のような問題点は生来の限定性と特殊性を備えたシステムでは更に悪化す
る。例えば、マイクロソフト・ウインドゥズCEは、携帯用パソコンから専門的
な業務用コントローラおよび顧客用電子機器にいたる広範な埋込み式製品で使用
できるコンパクトで、効率がよく、基準化が可能なオペレーティング・システム
である。マイクロソフト・ウインドゥズCEを使用した多くの機器は、機器のコ
ストを低く、サイズをコンパクトに抑え、また電力消費の効率を高めるために、
1メガバイトのような比較的少量の等速呼び出しメモリ(RAM)を搭載するこ
とを意図している。その上、マイクロソフト・ウインドゥズCEを使用するよう
に設計された機器は標準的には、マイクロソフト・ウインドゥズNTのようなよ
りパワフルなオペレーティング・システムをランするために設計されたコンピュ
ータに標準的に見られるよりも出力が小さいプロセッサを有している。このよう
な生来の限界と特殊性を備えたシステムの場合、利用できる記憶容量を最大限に
活用することが不可欠である。このようなシステムで利用できる記憶容量を効果
的に、かつ効率よく最大限にすることが必要である。
【0006】
【発明の開示】
この発明はプログラムまたは機能の実行中に、主不要情報コレクタがトリガさ
れないように、できるだけ多くの一時的オブジェクトを除去する方法に関するも
のである。
【0007】 プログラム中のあるコマンドはオブジェクトを割振り、別のコマンドは割振ら
ない。標準的には、このようなオブジェクトはオブジェクトのヒープから割振ら
れる。この発明の1側面では、プログラム・コマンドがオブジェクトを割振らな
い場合は、情報はプログラム終了後の後の時点で識別し易くするような情報がオ
ブジェクトに記憶される。このような情報には例えば、スレッド識別子、スタッ
ク番号、およびマーク・ビットがある。
【0008】 この発明によって主不要情報コレクタを待機することなく、前記のようなスペ
ースを再生することが可能である。プログラムの実行中、割振られたオブジェク
トが別のオブジェクト内に記憶されない場合は、このようなオブジェクトを破棄
し、それが占めるスペースを再生することができる。言い換えると、主不要情報
コレクタが起動されると、このようなオブジェクトが占めるスペースは再生され
よう。従って、この発明の利点の1つは、前述したように本発明によって前記ス
ペースが割振られたプログラムが終了すると直ちにスペースを再生することがで
きるので、不要情報コレクタがそのタスクを実行する場合よりも早期にメモリが
空になることにある。更に、不要情報コレクタの場合のようにオブジェクトのヒ
ープ全体を走査するのではなく、この発明の増分不要情報コレクタによってヒー
プ全体ではなくヒープの割振り部分だけを走査することができる。
【0009】
【発明を実施する最良の形態】
以下の詳細な説明では、説明の一部をなし、この発明を実施できる特定の実施
例が示されている添付図面を参照する。これらの実施例は当業者がこの発明を実
施できるのに充分に詳細に説明され、また、この発明の趣旨と範囲から離れるこ
となく他の実施例を利用し、また構造を変更できることを理解されたい。従って
、以下の詳細な説明は限定的な意味で受け取られるべきではなく、この発明は添
付の特許請求の範囲によって定義されるものである。
【0010】 詳細な説明には3つの項目がある。第1の項目はこの発明の実施例を実施でき
るハードウェアと動作環境を記載する。第2の項目はこの発明の1実施例のシス
テム・レベルを説明する。最後に、第3の項目はこの発明を実施する方法を説明
する。 ハードウェアおよび動作環境 図1はそれと組合わせてこの発明の実施例を実施できるハードウェアおよび動
作環境の図面である。図1は、それと組合わせてこの発明を実施できる適切なコ
ンピュータ・ハードウェアと適切なコンピュータ環境の簡単に基本的に説明する
ものである。必ずしもそうである必要はないが、この発明をパーソナル・コンピ
ュータのようなコンピュータによって実行されるプログラム・モジュールのよう
な、コンピュータが実行できる命令という基本的文脈で説明する。一般に、プロ
グラム・モジュールには特定のタスクを実行し、または特定の種類の抽象データ
を実施するルーチン、プログラム、オブジェクト、構成要素、データ構造などが
含まれている。
【0011】 更に、この発明は携帯用機器、マルチプロセッサ・システム、マイクロプロセ
ッサを使用した、またはプログラム可能な顧客用電子機器、ネットワーク・パソ
コン、ミニコンピュータ、メインフレーム・コンピュータなどを服務その他の構
造のコンピュータ・システムでも実施できることが当業者には理解されよう。こ
の発明は更に、通信ネットワークを関してリンクされる遠隔処理装置によってタ
スクが実行される分散形のコンピュータ環境でも実施できる。分散形のコンピュ
ータ環境では、プログラム・モジュールを局所的、および遠隔地の双方の記憶装
置内にロケートすることができる。
【0012】 この発明を実行するための図1に示したハードウェアおよび動作環境の例には
、プロセッサ・ユニット21、システム・メモリ22、およびシステム・メモリ
を含む様々なシステムの構成要素をプロセッサ・ユニット21に作用的に結合す
るシステム・バス23を含むコンピュータ20の形式の汎用計算機を含んでいる
。プロセッサ・ユニット21は単一でも、1つ以上あってもよく、従ってコンピ
ュータ20のプロセッサは単一の中央処理装置(CPU)または、複数の処理装
置を構成し、いずれも共通して並列処理環境と呼ばれる。コンピュータ20は従
来形のコンピュータ、分散形のコンピュータ、またはその他の種類のコンピュー
タでもよく、このように本発明は限定的なものではない。
【0013】 システム・バス23はメモリ・バス、またはメモリ・コントローラ、周辺バス
、および多様なバス構造のいずれかを採用した局所的バスを含む幾つかの種類の
バス構造のいずれでもよい。システム・メモリも単にメモリと呼び、読み出し専
用メモリ(ROM)24と、等速呼び出しメモリ(RAM)25とを含んでいる
。例えば起動中に情報をコンピュータ20内の素子間で伝送することを補助する
基本ルーチンを含む基本入力/出力システム(BIOS)26がROM24内に
格納されている。コンピュータ20は更に、ハードディスク(図示せず)から読
み出し、またはこれに書き込むためのハードディスク・ドライブ27と、取り出
し可能な磁気ディスク29から読み出し、またはこれに書き込むための磁気ディ
スク・ドライブ28と、CD ROMまたはその他の光学媒体のような取り出し
可能な光学ディスク31から読み出し、またはこれに書き込むための光学ディス
クドライブ30とを含んでいる。
【0014】 ハードディスク・ドライブ27と、磁気ディスク・ドライブ28と、光学ディ
スクドライブ30とはそれぞれハードディスク・ドライブ・インターフェース3
2と、磁気ディスク・ドライブ・インターフェース33と、光学ディスク・ドラ
イブ・インターフェース34のそれぞれによってシステム・バス23に接続され
ている。駆動機構と関連するコンピュータによる読み出しが可能な媒体によって
、コンピュータによる読み出しが可能な命令、データ構造、プログラム・モジュ
ール、およびコンピュータ20用のその他のデータが持久的に記憶される。磁気
カセット、フラッシュメモリ・カード、ディジタル・ビデオディスク、ベルヌー
イ・カートリッジ、等速呼び出しメモリ(RAM)、読み出し専用メモリ(RO
M)などのような、コンピュータによってアクセス可能なデータを記憶できる任
意の種類のコンピュータ読み出し可能媒体を動作環境で使用してもよいことが当
業者には理解されよう。
【0015】 ハードディスク、磁気ディスク29、光学ディスク31、ROM24、または
RAM25にはオペレーティング・システム35、単数または複数の応用プログ
ラム36、その他のプログラム・モジュール37、およびプログラム・データ3
8を含む多数のプログラム・モジュールを格納できる。ユーザーはキーボード4
0およびポインタ42のような入力装置を介してコマンドおよび情報をパーソナ
ル・コンピュータ20に入力できる。その他の入力装置(図示せず)にはマイク
ロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ
などが含まれる。これらの、およびその他の入力装置はシステムに結合されたシ
リアルポート・インターフェース46を介してプロセッサ・ユニット21に接続
される場合が多いが、パラレルポート、ゲームポート、または汎用シリアル・バ
ス(USB)のようなその他のインターフェースに接続してもよい。ビデオ・ア
ダプタ48のようなインターフェースを介してモニタ47またはその他の種類の
ディスプレー装置もシステム・バス23に接続される。モニタに加えて、コンピ
ュータは標準的にはスピーカおよびプリンタのようなその他の周辺出力機器(図
示せず)を含んでいる。
【0016】 コンピュータ20は遠隔コンピュータ49のような単数または複数の遠隔コン
ピュータへの論理接続を利用してネットワーク化された環境で動作することがで
きる。これらの論理接続はコンピュータ20、またはその一部に結合された通信
機器によって達成されるが、この発明は特定の種類の通信機器に限定されるもの
ではない。遠隔コンピュータ49は別のコンピュータ、サーバー、ルーター、ネ
ットワーク・パソコン、クライアント、同類の機器、またはその他の共通のネッ
トワーク・ノードでよく、図1には記憶装置50だけが図示されているが、コン
ピュータ20に関連して前述した素子の多く、または全てを含んでいる。図1に
示した論理接続には企業内情報通信ネットワーク(LAN)51および広域ネッ
トワーク(WAN)52が含まれる。このようなネットワーク環境はあらゆる種
類のネットワークであるオフィス・ネットワーク、企業間ネットワーク、イント
ラネット、およびインターネットで一般的である。
【0017】 LANネットワーク環境で使用される場合、コンピュータ20は通信機器の一
種であるネットワーク・インターフェースまたはアダプタ53を介して局域内ネ
ットワーク51に接続される。WANネットワーク環境で使用される場合は、コ
ンピュータ20は標準的には一種の通信機器であるモデム54、またはインター
ネットのような広域ネットワーク52を介して通信を達成するためのその他の種
類の通信機器を含んでいる。内蔵、または外部装着式でよいモデム54はシリア
ルポート・インターフェース46を介してシステム・バス23に接続される。ネ
ットワーク環境では、パーソナル・コンピュータ20、またはその一部に関連し
て示したプログラム・モジュールは、遠隔記憶装置内に格納してもよい。図示し
たネットワーク接続は一例であり、コンピュータ間で通信リンクを確立するため
の他の通信機器を使用してもよいことが理解されよう。
【0018】 連係してこの発明の実施例を実施できるハートウェアおよび動作環境を上記で
説明した。この発明と連係して実施できるコンピュータは従来形のコンピュータ
、分散形コンピュータ、または他の任意の種類のコンピュータでよく、この発明
はなんら限定されるものではない。このようなコンピュータは標準的にはプロゼ
ンサとして単数または複数の処理装置、およびメモリのようなコンピュータによ
る読み出し可能媒体か含まれる。コンピュータは更に、ネットワーク・アダプタ
またはモデムのような通信機器を含んでいるので、他のコンピュータに通信可能
に結合することができる。 システム・レベルの概要 図2(a)はJava仮想計算機(JVM)208の環境内でプログラムまた
は機能204の動作中に一時的オブジェクトを除去する技術のシステム・レベル
の概要を示している。JVMはプログラムまたは機能204を読み取り、実行す
るためにオペレーティング・システム内でランする固有プログラムである。この
実施態様でのプログラムまたは機能204はJavaコードである。
【0019】 プログラムまたは機能204の実行中、或るコマンドによって、例えば可変記
号によってオブジェクトを参照することによって、ヒープ212からオブジェク
トが割振られるようにできる。ヒープ・マネージャ216はそこからオブジェク
トを割振りできるヒープ212内のアドレスを保存する。より多くのオブジェク
トがヒープ212から割振られると共に、ヒープ・マネージャ216はオペレー
ティング・システムに追加のメモリ・スペースを要求することができる。オブジ
ェクトがヒープ212から割振られると、前記オブジェクトはこれに関連する参
照カウントをも有している。基準カウントが範囲外になると、可変記号が参照さ
れたオブジェクトの基準カウントが減分される。基準カウントが0であるオブジ
ェクトは不要情報収集の候補である。
【0020】 不要情報コレクタ220は起動されると、ヒープ212を走査して基準カウン
トが0であるオブジェクトを探索し、オブジェクトが占めるメモリを後の使用の
ために利用できるようにする。不要情報コレクタ220の動作は公知であるが、
本質的にJavaは以下の環境で不要情報の収集を実行する。すなわち(1)不
要情報の収集が必要である場合−ヒープ212内に残された記憶容量がある所定
レベル以下に達すると、再生可能なメモリを再生するために不要情報の収集が行
われる;(2)不要情報の収集が要求された場合−Java不要情報コレクタで
あるシステムgcを呼び出すことによってJava内で強制的に不要情報を収集
することができる;または(3)Javaが再生されるべきオブジェクトを探索
する背景タスクを実行する場合;である。
【0021】 図2(b)はこの発明の実施例として増分不要情報コレクタ270を示してい
る。増分不要情報コレクタ270はJVMの統合部品である。先行技術の場合と
同様に、ヒープ・マネージャ266はそこからオブジェクトを割振ることができ
るヒープ262のアドレスを保存する。機能254が起動、または実行されると
、増分不要情報コレクタ270はヒープ・マネージャ266からのアドレスを保
存し、そこからオブジェクトを割振ることができる次のメモリを示す。機能25
4を出ると、増分不要情報コレクタ270はヒープ262から割振られた最後の
オブジェクトのアドレスを保存する。JVM258内での機能254の実行中、
オブジェクトがヒープ262から割振られると、アドレス情報がオブジェクト内
に格納され、それによって増分不要情報コレクタ270による事後の前記オブジ
ェクトの識別が促進される。
【0022】 その上、前述したように、増分不要情報コレクタ270は機能254によって
割振られたヒープの領域に関する情報、すなわち基本的にヒープ262から割振
られたオブジェクトの開始アドレスと終了アドレスを有している。プログラムま
たは機能254が終了し、またはそこから出ると直ちに、増分不要情報コレクタ
270はヒープから割振られたオブジェクトの開始アドレスから始まって終了ア
ートレスまでヒープを走査し、オブジェクト内に格納されている追加情報を読み
出す。増分不要情報コレクタ270がオブジェクトを不要情報であると識別する
と、コレクタは直ちに前記オブジェクトが占めるスペースを再生して、利用でき
るようにする。従って、増分不要情報コレクタ270は不要情報コレクタ274
が動作するまで待機せずにオブジェクトが占めるスペースを再生する。加えて、
増分不要情報コレクタ270はヒープ全体を走査する必要はなく、ヒープ全体で
はなくヒープの割振られた領域の開始アドレスから終了アドレスまでだけを走査
すればよい。
【0023】 不要情報コレクタ220と270を基準カウント技術に関して説明してきたが
、その他の不要情報収集の技術が公知である。これらのその他の技術には例えば
、据置き基準カウント、マーク掃引収集、マーク・コンパクト収集および複写不
要情報収集が含まれる。 発明の実施方法 前項ではこの発明の実施例の動作をシステム・レベルで説明してきた。本項は
このような実施例をコンピュータで実施する方法を説明する。
【0024】 図3の流れ図のステップ300では、プログラムまたは機能コマンドまたはコ
ードが実行される。ステップ302は、実行されるコードにとってヒープからオ
ブジェクトを割振る必要があるか否かが判定される。ステップ302でコードが
ヒープからオブジェクトを割振らないものと判定された場合は、制御はステップ
306へと移行する。そうではなく、ステップ302でコードがヒープからオブ
ジェクトを割振るものと判定された場合は、制御はステップ304に移行する。
【0025】 ステップ304で、オブジェクトに関する情報が割振られたオブジェクトに格
納される。オブジェクトに格納された情報については以下により詳細に説明する
。次に制御はステップ306に進み、プログラムまたは機能が終了したか否かが
判定される。プログラムまたは機能が未だ終了していない場合は、次にコマンド
がステップ308で取出され、制御はステップ300に移行する。しかし、ステ
ップ306でプログラムまたは機能が終了したものと判定されると、ステップ3
10で増分不要情報の収集が実行される。
【0026】 図4は前述のようにオブジェクトに追加された情報を示している。この情報は
(1)オブジェクトを割振る機能またはプログラムのためのスレッドの識別子3
15、(2)機能またはスタック番号320、および(3)設定されると、オブ
ジェクトがいずれかの態様で機能の外側に格納されていることを示すマーク・ビ
ット325から構成されている。スレッド識別子315は公知のように、オペレ
ーティング・システムまたはJVMのいずれかから検索される。機能、またはス
タック番号320はどの機能がオブジェクトを割振ったかを示す方法である。機
能(“機能1”)が別の機能(“機能2”)を呼び出した場合、双方とも同じス
レッド識別子を有することになる。機能2がルーチンから出て、増分不要情報コ
レクタが起動した場合、機能によって割振られたオブジェクトは依然として機能
1に利用できることは重要である。
【0027】 オブジェクトがいずれかの態様で機能の外側に格納されている場合は、前述の
ようにマーク・ビット325が設定される。オブジェクトを割振る機能の外側に
格納されていないオブジェクトは機能に対してローカルなオブジェクトと呼ばれ
る。例えば、マーク・ビット325はオブジェクトが大域可変記号内に格納され
、戻され、または例外として投出されると、マーク・ビット325が設定される
【0028】 通常は、マーク・ビット325は、オブジェクトが別のオブジェクト(“オブ
ジェクト2”)に格納されるた場合にもオブジェクト(“オブジェクト1”)用
に設定される。しかし、(オブジェクト1がそこに格納される)オブジェクト2
がオブジェクト1を割振ったものと同じ機能で割振られ、かつオブジェクト2が
同じ機能の外側で参照されない場合は、マーク・ビット325はオブジェクト1
またはオブジェクト2のいずれにも設定されない。しかし、オブジェクト2のマ
ーク・ビット325が後に設定される場合は、増分不要情報コレクタはオブジェ
クト2内に格納された全てのオブジェクトを吟味する。オブジェクト2に格納さ
れたオブジェクトにマーク・ビットが設定されていない場合、増分不要情報コレ
クタはそのような時にマーク・ビットを設定する。加えて、以下のコマンドのい
ずれかが実行される時には常に、使用中のオブジェクト用のマーク・ビット32
5も設定される。すなわち、AASTORE,ARETURN,ATHROW,
PUTFIELD,PUTFIELD FAST、PUTSTATIC、または
PUTSTATIC FASTである。このリストはその他のコマンドを排する
ものではなく、基本的に、マーク・ビット325は機能の外側にオブジェクトを
格納できる、または格納する(リストしたような)コマンドが利用するオブジェ
クト用に設定される。
【0029】 図5は増分不要情報コレクタがヒープを走査し、オブジェクト内に格納された
追加情報を読み出す際に増分不要情報コレクタがヒープを走査し、オブジェクト
内に格納された追加情報を読み出す際に辿るステップを示している。増分不要情
報コレクタはステップ400でヒープからオブジェクトを取り出し、次にステッ
プ402で、オブジェクト内に格納されたスレッド識別子が増分不要情報コレク
タを呼び出した機能またはプログラムのスレッド識別子に対応するか否かを判定
する。オブジェクトのスレッド識別子が対応しない場合は、制御はステップ41
0に移行する。スレッド識別子が対応する場合は、制御はステップ404に移行
し、そこでスタック番号が機能の呼び出しによって割当てられた番号に対応する
か否かが判定される。スタック番号が対応しない場合は、制御はステップ410
に移行する。スタック番号が対応する場合は、制御はステップ406に移行し、
そこでオブジェクト内に格納されたマーク・ビットが設定されているか否かが判
定される。マーク・ビットが設定されている場合は、制御は410に移行する。
マーク・ビットが設定されていない場合は、オブジェクトが占めるスペースはス
テップ408で再生され、制御はステップ410に移行する。ステップ410は
オブジェクト・ヒープの終端に達しているか否かを判定する。オブジェクト・ヒ
ープの終端に達していない場合は、増分不要情報コレクタは図示のようにステッ
プ412で次のオブジェクトを照準し、制御はステップ400に移行する。これ
に対して、終端に達している場合は、増分不要情報コレクタは終了する。 結論 上記の説明は説明目的であり、限定的なものではないことを理解されたい。上
記の説明を検討すれば、当業者には多くの他の実施例が明らかであろう。従って
、この発明の範囲は添付のクレームと等価の全ての範囲と共に、添付のクレーム
を参照して決定されるべきものである。
【図面の簡単な説明】
【図1】はそれと連係して本発明を実施できるハードウェアおよび動作環境の
ブロック図である。
【図2(a)】は一時的オブジェクトを除去する技術のシステム・レベルの概
略を示したブロック図である。
【図2(b)】は本発明の実施例として増分不要情報収集モジュールを示した
ブロック図である。
【図3】はヒープからオブジェクトを割振るプロセスの流れ図である。
【図4】はオブジェクト・ヒープ内の割当てられたオブジェクトに格納される
追加情報を示している。
【図5】は増分不要情報コレクタ・モジュールがヒープを走査し、オブジェク
ト内に格納された追加情報を読み出す際に増分不要情報コレクタ・モジュールが
辿るステップを示している。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成11年12月9日(1999.12.9)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正内容】
【0009】
【発明を実施する最良の形態】 以下の詳細な説明では、説明の一部をなし、この発明を実施できる特定の実施
例が示されている添付図面を参照する。従って、以下の詳細な説明は限定的な意
味で受け取られるべきではなく、この発明は添付の特許請求の範囲によって定義
されるものである。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0029
【補正方法】変更
【補正内容】
【0029】 図5は増分不要情報コレクタがヒープを走査し、オブジェクト内に格納された
追加情報を読み出す際に増分不要情報コレクタがヒープを走査し、オブジェクト
内に格納された追加情報を読み出す際に辿るステップを示している。増分不要情
報コレクタはステップ400でヒープからオブジェクトを取り出し、次にステッ
プ402で、オブジェクト内に格納されたスレッド識別子が増分不要情報コレク
タを呼び出した機能またはプログラムのスレッド識別子に対応するか否かを判定
する。オブジェクトのスレッド識別子が対応しない場合は、制御はステップ41
0に移行する。スレッド識別子が対応する場合は、制御はステップ404に移行
し、そこでスタック番号が機能の呼び出しによって割当てられた番号に対応する
か否かが判定される。スタック番号が対応しない場合は、制御はステップ410
に移行する。スタック番号が対応する場合は、制御はステップ406に移行し、
そこでオブジェクト内に格納されたマーク・ビットが設定されているか否かが判
定される。マーク・ビットが設定されている場合は、制御はステップ408に移
行し、そこでオブジェクトが同じスレッド識別子とスタック番号を有する別のオ
ブジェクト(すなわちオブジェクト2)に格納されているか否かが判定される。
否である場合は、制御はステップ416に移行し、そこでオブジェクト・ヒープ
の終端に達しているか否かが判定される。オブジェクトが同じスレッド識別子と
スタック番号を有する別のオブジェクト内に格納されている場合は、制御はステ
ップ410に移行し、そこでオブジェクト2用にマーク・ビットが設定されてい
るか否かが判定される。設定されている場合は、制御はステップ416に移行す
る。オブジェクト2用にマーク・ビットが設定されていない場合は、制御はステ
ップ412に移行し、そこでオブジェクトが他のどこかで参照されているか否か
が判定される。参照されている場合は、制御はステップ416に移行する。オブ
ジェクトが他のどこかで参照されていない場合は、オブジェクトが占めるスペー
スはステップ414で再生される。 ステップ406でマーク・ビットが設定されていない場合は、オブジェクトが
占めるスペースはステップ414で再生され、制御はステップ416に移行する
。ステップ416はオブジェクト・ヒープの終端に達しているか否かが判定され
る。オブジェクト・ヒープの終端に達していない場合は、増分不要情報コレクタ
はステップ418に示すように次のオブジェクトを照準し、制御はステップ40
0に移行する。これに対してオブジェクト・ヒープの終端に段している場合は、
増分不要情報コレクタは終了する。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マークリー マイケル イー アメリカ合衆国 ワシントン州 98053 レッドモンド トゥーハンドレッドアンド セヴンティサード アベニュー ノースイ ースト 3014 (72)発明者 ギルバート マーク カナダ オンタリオ エヌ2エル 3ダブ リュー1 ウォータールー バタヴィア プレイス 327 Fターム(参考) 5B060 AA10 5B081 CC27 5B098 GA05 GD03

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクトを識別する方法であって、オブジェクト上に、 スレッド識別子と、 スタック番号と、 オブジェクトがローカルであるか否かを表示するステップからなることを特徴
    とする方法。
  2. 【請求項2】 オブジェクトは機能中のコードによって割振られることを特
    徴とする請求項1に記載の方法。
  3. 【請求項3】 スレッド識別子、スタック番号、およびオブジェクトがロー
    カルであるか否かの表示がされたオブジェクトのヒープ(heap)が占めるメモリ領
    域を再生する方法であって、 再生可能なオブジェクトを特定するステップと、 オブジェクトが占めるメモリ領域上に、オブジェクトが占めるメモリ領域を更
    に割振りのために利用できることを表示するステップと、 からなることを特徴とする方法。
  4. 【請求項4】 オブジェクトは機能中のコードによって割振られることを特
    徴とする請求項3に記載の方法。
  5. 【請求項5】 オブジェクトが占めるメモリの再生は、オブジェクトが割振
    られた機能の終了によって起動されることを特徴とする請求項4に記載の方法。
  6. 【請求項6】 再生可能なオブジェクトを識別するステップは、 スレッド識別子を吟味するステップと、 スタック番号を吟味するステップと、 オブジェクトがローカルであるか否かを判定するステップと、 からなることを特徴とする請求項3に記載の方法。
  7. 【請求項7】 コンピュータ化装置であって、 仮想計算機と、 仮想計算機の環境内で実行される増分不要情報(incremental garbage)コレク タと、 オブジェクトのヒープを有するメモリとを備え、 少なくとも1つの機能がオブジェクトのヒープを有するメモリから少なくとも
    1つのオブジェクトを割振り、 少なくとも1つのオブジェクトが割振られた少なくとも1つの機能が終了する
    と、増分不要情報コレクタは少なくとも1つのオブジェクトが少なくとも1つの
    機能にとってローカルであるか否かを判定し、 少なくとも1つのオブジェクトが少なくとも1つの機能にとってローカルであ
    ることが判定されると、増分不要情報コレクタは前記のような少なくとも1つの
    オブジェクトを再生することを特徴とする装置。
  8. 【請求項8】 前記装置はウインドゥズのCEオペレーティング・システム
    と互換性があることを特徴とする請求項7に記載のコンピュータ化装置。
  9. 【請求項9】 増分不要情報コレクタは、少なくとも1つの機能が少なくと
    も1つのオブジェクトをそこから割振ったオブジェクトのヒープを有するメモリ
    領域だけを走査することを特徴とする請求項7に記載のコンピュータ化装置。
  10. 【請求項10】 適宜に搭載されたコンピュータがオブジェクトを特定する
    方法を実行するようにするために、コンピュータ・プログラムを格納しているコ
    ンピュータによる読み出しが可能な媒体であって、前記方法はオブジェクト上に
    、 スレッド識別子と、 スタック番号と、 オブジェクトがローカルであるか否かを表示するステップからなることを特徴
    とする媒体。
  11. 【請求項11】 オブジェクトは機能中のコードによって割振られることを
    特徴とする請求項10に記載のコンピュータによる読み出しが可能な媒体。
  12. 【請求項12】 適宜に搭載されたコンピュータがオブジェクトのヒープが
    占めるメモリ領域を再生するための方法を実行するようにするために、コンピュ
    ータ・プログラムを格納しているコンピュータによる読み出しが可能な媒体であ
    って、前記オブジェクトはその上に、スレッド識別子と、スタック番号と、オブ
    ジェクトがローカルであるか否かを表示しており、前記方法は、 再生可能なオブジェクトを識別するステップと、 オブジェクトが占めるメモリ領域を後の割振りのために利用できることをオブ
    ジェクトが占めるメモリ領域に表示するステップと、からなることを特徴とする
    媒体。
  13. 【請求項13】 オブジェクトは機能中のコードによって割振られたと共に
    、オブジェクトが占めるメモリの再生はオブジェクトが割振られた機能の終了に
    よって起動されることを特徴とする請求項12に記載のコンピュータによる読み
    出しが可能な媒体。
  14. 【請求項14】 再生可能なオブジェクトを識別するステップは、 スレッド識別子を吟味するステップと、 スタック番号を吟味するステップと、 オブジェクトがローカルであるか否かを判定するステップと、 からなることを特徴とする請求項12に記載のコンピュータによる読み出しが可
    能な媒体。
JP2000525818A 1997-12-19 1998-12-17 増分不要情報収集 Expired - Fee Related JP4177960B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US99409897A 1997-12-19 1997-12-19
US08/994,098 1997-12-19
PCT/US1998/026769 WO1999032978A1 (en) 1997-12-19 1998-12-17 Incremental garbage collection

Publications (2)

Publication Number Publication Date
JP2001527237A true JP2001527237A (ja) 2001-12-25
JP4177960B2 JP4177960B2 (ja) 2008-11-05

Family

ID=25540275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000525818A Expired - Fee Related JP4177960B2 (ja) 1997-12-19 1998-12-17 増分不要情報収集

Country Status (7)

Country Link
US (1) US6353838B2 (ja)
EP (1) EP1049979B1 (ja)
JP (1) JP4177960B2 (ja)
AT (1) ATE239253T1 (ja)
DE (1) DE69814170T2 (ja)
HK (1) HK1032130A1 (ja)
WO (1) WO1999032978A1 (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6557091B2 (en) * 1997-08-22 2003-04-29 Koninklijke Philips Electronics N.V. Data processor with localized memory reclamation
US7096238B2 (en) * 1999-08-19 2006-08-22 Sun Microsystems, Inc. Dynamic feedback for determining collection-set size
US6970893B2 (en) 2000-10-27 2005-11-29 Bea Systems, Inc. System and method for regeneration of methods and garbage collection of unused methods
SE514318C2 (sv) 1999-10-28 2001-02-12 Appeal Virtual Machines Ab Förfarande för att effektivisera en databehandlingsprocess vid användning av en virtuell maskin och där ett skräpsamlingsförfarande används
US6898602B2 (en) * 2002-04-22 2005-05-24 Sun Microsystems Inc. Measuring the exact memory requirement of an application through intensive use of garbage collector
FR2839650B1 (fr) * 2002-05-17 2005-04-01 Ela Medical Sa Systeme de teleassistance pour la programmation des dispositifs medicaux implantables actifs tels que stimulateurs cardiaques, defibrillateurs, cardioverteurs ou dispositifs multisite
US7174354B2 (en) * 2002-07-31 2007-02-06 Bea Systems, Inc. System and method for garbage collection in a computer system, which uses reinforcement learning to adjust the allocation of memory space, calculate a reward, and use the reward to determine further actions to be taken on the memory space
US7539713B2 (en) 2002-11-05 2009-05-26 Sun Microsystems, Inc. Allocation of likely popular objects in the train algorithm
US6999979B2 (en) * 2002-11-05 2006-02-14 Sun Microsystems, Inc. Efficient encoding of references into a collection set
US7035884B2 (en) * 2002-11-05 2006-04-25 Sun Microsystems, Inc. Placement of allocation trains in the train algorithm
US7188129B2 (en) 2002-11-15 2007-03-06 Sun Microsystems, Inc. Merging trains in a collector based on the train algorithm
US7209935B2 (en) * 2002-11-27 2007-04-24 Sun Microsystems, Inc. Avoiding remembered-set maintenance overhead for memory segments known to be in a collection set
US7085790B2 (en) * 2002-12-06 2006-08-01 Sun Microsystems, Inc. Advancing cars in trains managed by a collector based on the train algorithm
US7069280B2 (en) * 2002-12-06 2006-06-27 Sun Microsystems, Inc. Collection-tick mechanism for a collector based on the train algorithm
US7143124B2 (en) 2002-12-06 2006-11-28 Sun Microsystems, Inc. Detection of dead regions during incremental collection
US7024437B2 (en) * 2002-12-06 2006-04-04 Sun Microsystems, Inc. Better placement of objects reachable from special objects during collection based on the train algorithm
US7031990B2 (en) 2002-12-06 2006-04-18 Sun Microsystems, Inc. Combining external and intragenerational reference-processing in a garbage collector based on the train algorithm
US7146390B2 (en) 2003-02-24 2006-12-05 Sun Microsystems, Inc. Staging the processing of remembered-set entries as part of collection based on the train algorithm
US7069281B2 (en) 2003-02-24 2006-06-27 Sun Microsystems, Inc. Efficient collocation of evacuated objects in a copying garbage collector using variably filled local allocation buffers
US7096329B2 (en) * 2003-02-27 2006-08-22 Sun Microsystems, Inc. Better placement of objects promoted into a generation managed by the train algorithm
US7062519B2 (en) * 2003-02-27 2006-06-13 Sun Microsystems, Inc. Incremental scanning of enormous objects to improve scheduling and pause-time behavior of garbage collection
US7237231B2 (en) * 2003-03-10 2007-06-26 Microsoft Corporation Automatic identification of input values that expose output failures in a software object
US20040181562A1 (en) * 2003-03-13 2004-09-16 Piotr Findeisen System and method for determining deallocatable memory in a heap
US20040181782A1 (en) * 2003-03-13 2004-09-16 Piotr Findeisen System and method for optimizing memory usage by locating lingering objects
US20040186863A1 (en) * 2003-03-21 2004-09-23 Garthwaite Alexander T. Elision of write barriers for stores whose values are in close proximity
US7089272B1 (en) 2003-06-18 2006-08-08 Sun Microsystems, Inc. Specializing write-barriers for objects in a garbage collected heap
US7340493B2 (en) 2003-07-02 2008-03-04 International Business Machines Corporation System and method for reducing memory leaks in virtual machine programs
US7149762B1 (en) 2003-08-20 2006-12-12 Sun Microsystems, Inc. Handling futile collections in the train algorithm through selective extension of the collection set
US7412694B2 (en) * 2003-09-18 2008-08-12 International Business Machines Corporation Detecting program phases with periodic call-stack sampling during garbage collection
US7404182B1 (en) 2003-10-03 2008-07-22 Sun Microsystems, Inc. Deferring and combining write barriers for a garbage-collected heap
US20050198088A1 (en) * 2004-03-03 2005-09-08 Sreenivas Subramoney Method and system for improving the concurrency and parallelism of mark-sweep-compact garbage collection
US7620943B1 (en) 2004-06-30 2009-11-17 Sun Microsystems, Inc. Using class properties to segregate objects in a generation managed by the train algorithm
US7380087B2 (en) * 2004-08-25 2008-05-27 Microsoft Corporation Reclaiming application isolated storage
US7676801B1 (en) 2004-08-31 2010-03-09 Sun Microsystems, Inc. Scanning of evacuated objects in a generation managed by the train algorithm
US7321909B1 (en) 2004-12-23 2008-01-22 Sun Microsystems, Inc. Method and apparatus for forwarding references to objects concurrently with space-incremental garbage collection
US7870170B2 (en) * 2005-05-03 2011-01-11 International Business Machines Corporation Method and apparatus for determining leaks in a Java heap
US7904493B2 (en) * 2007-03-30 2011-03-08 Sap Ag Method and system for object age detection in garbage collection heaps
US8356286B2 (en) * 2007-03-30 2013-01-15 Sap Ag Method and system for providing on-demand profiling infrastructure for profiling at virtual machines
US8522209B2 (en) * 2007-03-30 2013-08-27 Sap Ag Method and system for integrating profiling and debugging
US8336033B2 (en) * 2007-03-30 2012-12-18 Sap Ag Method and system for generating a hierarchical tree representing stack traces
US8601469B2 (en) * 2007-03-30 2013-12-03 Sap Ag Method and system for customizing allocation statistics
US8667471B2 (en) 2007-03-30 2014-03-04 Sap Ag Method and system for customizing profiling sessions
US20080243970A1 (en) * 2007-03-30 2008-10-02 Sap Ag Method and system for providing loitering trace in virtual machines
US8140597B2 (en) * 2007-08-29 2012-03-20 International Business Machines Corporation Computer system memory management
US7991808B2 (en) * 2008-05-21 2011-08-02 Apple Inc. Per thread garbage collection
US8880775B2 (en) * 2008-06-20 2014-11-04 Seagate Technology Llc System and method of garbage collection in a memory device
US8200718B2 (en) * 2009-07-02 2012-06-12 Roberts Michael L Parallelized, incremental garbage collector
GB2499187A (en) * 2012-01-31 2013-08-14 Ibm Evicting from a cache objects which are not referenced by other objects in the cache
US9021050B2 (en) * 2012-08-31 2015-04-28 Yume, Inc. Network service system and method with off-heap caching
US9489297B2 (en) * 2013-01-21 2016-11-08 Sandisk Technologies Llc Pregroomer for storage array
US9355029B2 (en) * 2013-06-28 2016-05-31 Sap Se Thread-based memory management with garbage collection
US9880743B1 (en) * 2016-03-31 2018-01-30 EMC IP Holding Company LLC Tracking compressed fragments for efficient free space management
US11971817B2 (en) * 2022-04-29 2024-04-30 Oracle International Corporation Managing lifecycles of sets of foreign resources

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4797810A (en) * 1986-06-26 1989-01-10 Texas Instruments Incorporated Incremental, multi-area, generational, copying garbage collector for use in a virtual address space
US5136706A (en) 1987-04-30 1992-08-04 Texas Instruments Incorporated Adaptive memory management system for collection of garbage in a digital computer
US5088036A (en) * 1989-01-17 1992-02-11 Digital Equipment Corporation Real time, concurrent garbage collection system and method
US5560003A (en) * 1992-12-21 1996-09-24 Iowa State University Research Foundation, Inc. System and hardware module for incremental real time garbage collection and memory management
US5535390A (en) * 1994-07-22 1996-07-09 Hildebrandt; Thomas H. Method for reusing temporaries and reclaiming shared memory
US5960087A (en) 1996-07-01 1999-09-28 Sun Microsystems, Inc. Distributed garbage collection system and method
US5893121A (en) * 1997-04-23 1999-04-06 Sun Microsystems, Inc. System and method for swapping blocks of tagged stack entries between a tagged stack cache and an untagged main memory storage
US5848423A (en) * 1997-04-23 1998-12-08 Sun Microsystems, Inc. Garbage collection system and method for locating root set pointers in method activation records
US5873104A (en) * 1997-06-26 1999-02-16 Sun Microsystems, Inc. Bounded-pause time garbage collection system and method including write barrier associated with source and target instances of a partially relocated object
US6070173A (en) * 1997-11-26 2000-05-30 International Business Machines Corporation Method and apparatus for assisting garbage collection process within a java virtual machine
US6047295A (en) * 1998-05-05 2000-04-04 International Business Machines Corporation Computer system, program product and method of managing weak references with a concurrent mark sweep collector

Also Published As

Publication number Publication date
DE69814170D1 (de) 2003-06-05
DE69814170T2 (de) 2004-04-01
US6353838B2 (en) 2002-03-05
JP4177960B2 (ja) 2008-11-05
US20010037336A1 (en) 2001-11-01
EP1049979A1 (en) 2000-11-08
ATE239253T1 (de) 2003-05-15
HK1032130A1 (en) 2001-07-06
WO1999032978A1 (en) 1999-07-01
EP1049979B1 (en) 2003-05-02

Similar Documents

Publication Publication Date Title
JP2001527237A (ja) 増分不要情報収集
US7707232B2 (en) Implementation for collecting unmanaged memory
US7111294B2 (en) Thread-specific heaps
US7092978B2 (en) Space-efficient, depth-first parallel copying collection technique making use of work—stealing on the same structures that maintain the stack of items to be scanned
US6757890B1 (en) Methods and apparatus for enabling local Java object allocation and collection
US7610434B2 (en) File recording apparatus
US6529919B1 (en) Incremental class unloading in a train-algorithm-based garbage collector
US7143124B2 (en) Detection of dead regions during incremental collection
US7310718B1 (en) Method for enabling comprehensive profiling of garbage-collected memory systems
US6449626B1 (en) Reduced-cost remembered-set processing in a train-algorithm-based garbage collector
US6185581B1 (en) Train-algorithm-based garbage collector employing fixed-size remembered sets
US6434577B1 (en) Scalable-remembered-set garbage collection
US6820101B2 (en) Methods and apparatus for optimizing garbage collection using separate heaps of memory for storing local objects and non-local objects
US20020161792A1 (en) Garbage collector employing multiple-car collection sets
JP2001506037A (ja) 追跡型ゴミ集め用のスペースの限られた標識付け構造
US7062519B2 (en) Incremental scanning of enormous objects to improve scheduling and pause-time behavior of garbage collection
US6804761B1 (en) Memory allocation system and method
US6999979B2 (en) Efficient encoding of references into a collection set
US8478738B2 (en) Object deallocation system and method
US20070203959A1 (en) Apparatus and method for managing resources using virtual ID in multiple Java application environment
US7870171B2 (en) Method and system for garbage collection in a multitasking environment
US7062518B2 (en) Efficiently supporting the existence of long trains in a generation managed by the train algorithm
US20090228537A1 (en) Object Allocation System and Method
US20040172507A1 (en) Better placement of objects promoted into a generation managed by the train algorithm
US20050268053A1 (en) Architecture for a scalable heap analysis tool

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051019

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070522

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070731

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071030

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080728

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080825

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120829

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130829

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees