JP2002278828A - ガーベージコレクション実行方法、コンピュータプログラム、プログラム格納媒体、および情報処理装置 - Google Patents

ガーベージコレクション実行方法、コンピュータプログラム、プログラム格納媒体、および情報処理装置

Info

Publication number
JP2002278828A
JP2002278828A JP2001080816A JP2001080816A JP2002278828A JP 2002278828 A JP2002278828 A JP 2002278828A JP 2001080816 A JP2001080816 A JP 2001080816A JP 2001080816 A JP2001080816 A JP 2001080816A JP 2002278828 A JP2002278828 A JP 2002278828A
Authority
JP
Japan
Prior art keywords
data
memory area
type
garbage collection
storing
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.)
Withdrawn
Application number
JP2001080816A
Other languages
English (en)
Inventor
Takeshi Miyashita
健 宮下
Hiroyuki Yasuga
広幸 安賀
Koichi Matsuda
晃一 松田
Takaaki Kagawa
能明 賀川
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2001080816A priority Critical patent/JP2002278828A/ja
Publication of JP2002278828A publication Critical patent/JP2002278828A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】動的に生成、消滅を繰り返すデータ群を取り扱
う特定のアプリケーションに適したガーベージコレクシ
ョンを行う。 【解決手段】データを格納するメモリ領域を、ライフタ
イムの比較的短い第1の種類のデータ群を記憶する第1
のメモリ領域と、ライフタイムの比較的長い第2の種類
のデータ群を記憶する第2のメモリ領域とに分割し、デ
ータを記憶する記憶ブロックを新規に確保する際に、当
該データが第1の種類のデータと第2の種類のデータの
いずれに属するかを判定する。この判定の結果、第1の
種類のデータは第1のメモリ領域に格納し、第2の種類
のデータは第2のメモリ領域に記憶する。第1のメモリ
領域に対するガーベージコレクションの実行頻度を高く
するとともに、前記第2のメモリ領域に対するガーベー
ジコレクションの実行頻度を低くする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理装置(コ
ンピュータ)のメモリ管理に関し、特に、メモリを有効
活用する技術の一つであるガーベージコレクションの実
行方法、コンピュータプログラム、プログラム格納媒
体、および情報処理装置に関する。
【0002】
【従来の技術】従来多くのシステムの実装に用いられて
きているC/C++言語の上で動的に生成消滅するデータ
を取り扱おうとするときには、プログラマが明示的にメ
モリの確保、解放を行う必要がある。しかしプログラマ
に依存する従来の方式には以下のような問題がある。 ・インタラクティブなシステムでは複雑な構造をもった
データを長期間にわたってメモリ上に保持することが多
く、プログラマの小さなミスによるメモリ破壊、メモリ
リークがシステム全体の安定性に影響を与えやすい。 ・システムが大規模になり、多数のプログラマが1つの
システムを分担して開発する場合、メモリ管理の一貫性
を保つことは困難であり、メモリ破壊やメモリリークを
招きやすい。 ・長期間にわたってメモリを確保、解放しつづけている
とフラグメンテーションが起き、メモリ使用効率が下が
る。
【0003】これに対して、ガーベージコレクション
(garbage collection:以下GC)は、メモリに残って
いる不要なデータや、プログラムで取り出せないデータ
が占有している無駄なメモリ領域(ガーベージ:ゴミ)
を洗い出し、そのメモリ領域を再び使えるようにする技
術である。すなわち、ガーベージコレクションは、一般
に、プログラマによる明示的なメモリ管理のかわりに、
プログラムコードからポインタを経由して到達可能な領
域を使用中と判定するとともに、到達不可能な領域を使
用済みと判定し、使用済み領域を自動的に再利用するメ
カニズムである。よって、解放済み領域に誤ってアクセ
スしてしまうことはありえない。これは堅牢なシステム
を構築する上では非常に大きなメリットとなる。
【0004】なお、本明細書において、「システム」と
は、複数の装置が論理的に集合した物をいい、各構成の
装置が同一筐体中にあるか否かは問わない。
【0005】
【発明が解決しようとする課題】取り扱うデータの量、
構造が動的に変化するソフトウェアでは効率的なメモリ
管理が欠かせない。よって、システムにガーベージコレ
クション機能を組み込むことは、前述のように、プログ
ラマによる煩雑なメモリ管理をなくしシステムを堅牢に
する効果がある。
【0006】しかし、システムの特性を考慮しない一般
的なガーベージコレクション(GC)機能を組み込むと、
システムの速度低下を招くことが多い。すなわち、古典
的なGCアルゴリズムではGCの最中はシステム全体を
止める必要があるため、インタラクティブなシステムに
は適用しづらいと考えられてきた。
【0007】しかしながら、すべてのアプリケーション
に適したガーベージコレクションの手法(アルゴリズ
ム)を構築することは困難であっても、特定のアプリケ
ーションに対して効率的なガーベージコレクションの手
法を追求することは可能である。
【0008】したがって、本発明は、動的に生成、消滅
を繰り返すデータ群を取り扱う特定のアプリケーション
に適したガーベージコレクション実行方法、コンピュー
タプログラム、プログラム格納媒体、および情報処理装
置を提供することを目的とする。
【0009】本発明の他の目的は、3次元データ表示ア
プリケーションとしての3次元ブラウザの特性にあわせ
てガーベージコレクションを設計することにより、ガー
ベージコレクションによるシステム全体の中断時間を短
縮し、インタラクティブシステムにガーベージコレクシ
ョンを適用することが可能なガーベージコレクション実
行方法、コンピュータプログラム、プログラム格納媒
体、および情報処理装置を提供することにある。
【0010】
【課題を解決するための手段】上記目的を達成するため
に、本発明によるガーベージコレクション実行方法およ
びそのコンピュータプログラムは、動的に生成、消滅を
繰り返すデータ群を取り扱うアプリケーションに適用す
るガーベージコレクション実行方法であって、データを
格納するメモリ領域を、ライフタイムの比較的短い第1
の種類のデータ群を記憶する第1のメモリ領域と、ライ
フタイムの比較的長い第2の種類のデータ群を記憶する
第2のメモリ領域とに分割し、データを記憶する記憶ブ
ロックを新規に確保する際に、当該データが前記第1の
種類のデータと第2の種類のデータのいずれに属するか
を判定し、前記第1の種類のデータは前記第1のメモリ
領域に格納し、前記第2の種類のデータは前記第2のメ
モリ領域に格納し、前記第1のメモリ領域に対するガー
ベージコレクションの実行頻度を高くするとともに、前
記第2のメモリ領域に対するガーベージコレクションの
実行頻度を低くしたことを特徴とする。
【0011】本発明では、動的に生成、消滅を繰り返す
データ群を取り扱うアプリケーション、例えば、例えば
3次元データを表示するアプリケーションにガーベージ
コレクションを組み込むにあたり、そのデータの特性を
考慮して、データの種別に応じたメモリ領域の特化およ
びガーベージコレクションの実行頻度の差別化により、
ガーベージコレクションに要する処理時間を総体的に短
縮し、システムの反応速度低下を抑えることが可能にな
る。
【0012】前記第1および第2のメモリ領域の各々
は、例えば、ページ単位に確保する。これにより、ペー
ジ単位に、そこに格納されているデータの種類を分別す
るとともに認識することができるようになる。
【0013】前記第1の種類のデータ群は、例えば、3
次元データ表示プログラムの取り扱うオブジェクト群で
あり、前記第2の種類のデータ群は当該オブジェクト群
に関連した座標データ群である。
【0014】本発明は、また、コンピュータプログラム
を格納したプログラム格納媒体としても把握することが
できる。プログラム格納媒体としては、例えばフロッピ
ー(登録商標)ディスク、CD−ROM(Compact Disc
-Read Only Memory)、DVD(Digital Versatile Dis
c)等のパッケージメディアのみならず、プログラムが
一時的もしくは永続的に格納される半導体メモリや磁気
ディスク等で実現してもよい。
【0015】本発明による情報処理装置は、動的に生
成、消滅を繰り返すデータ群を取り扱うアプリケーショ
ンに適用するガーベージコレクションを実行する情報処
理装置であって、少なくともデータを記憶するメモリ
と、このメモリに対してガーベージコレクションを実行
するガーベージコレクション実行手段と、データを格納
するメモリ領域を、ライフタイムの比較的短い第1の種
類のデータ群を記憶する第1のメモリ領域と、ライフタ
イムの比較的長い第2の種類のデータ群を記憶する第2
のメモリ領域とに分割し、データを記憶する記憶ブロッ
クを新規に確保する際に、当該データが前記第1の種類
のデータと第2の種類のデータのいずれに属するかを判
定し、前記第1の種類のデータは前記第1のメモリ領域
に格納し、前記第2の種類のデータは前記第2のメモリ
領域に格納し、前記第1のメモリ領域に対するガーベー
ジコレクションの実行頻度を高くするとともに、前記第
2のメモリ領域に対するガーベージコレクションの実行
頻度を低くするよう制御を行う制御手段とを備えたこと
を特徴とする。
【0016】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照して詳細に説明する。
【0017】まず、図1に本発明による情報処理装置の
一例としての3次元表示装置の概略構成を示す。この装
置は、既存のパーソナルコンピュータ(PC)と同様の
構成であり、制御部100、この制御部100により制
御されるI/Oインタフェース部103、ハードディス
ク装置等の外部記憶装置120、および外部の例えばイ
ンターネットのようなネットワークと接続するための通
信部109を備えて構成される。I/Oインタフェース
部103には、CRT,LCDのようなディスプレイか
らなる表示部104、スピーカ105、キーボードやポ
インティングデバイス(マウス等)などの入力部10
6、およびマイク107などが接続される。制御部10
0内には、CPU101およびメモリ102を有し、メ
モリ102は、本実施の形態に関するガーベージコレク
タ114、HTMLブラウザ111、VRMLブラウザ
113等の実行対象のアプリケーションプログラムを格
納する他、データ等を一時記憶するデータメモリ領域1
15、作業領域(図示せず)等として、CPU101に
より利用される。ブラウザ111,113、ガーベージ
コレクタ114などのプログラムは、ROMなどの不揮
発性メモリに予め格納されておいてもよいが、外部記憶
装置120に格納しておき必要時にメモリ102に読み
込むようにしてもよい。HTMLブラウザ111は、Ne
tscape Navigator(商標)のような2次元表示のための
WWWブラウザであり、その各種付属機能を含めて、V
RMLブラウザ113と共に用いることが好ましい。外
部記憶装置120には、HTMLファイル121、VR
MLファイル122、Java(商標)スクリプト12
3等が格納される。Javaスクリプト123は、VR
ML2.0とともに用いることにより、より高度なイン
タラクティブ性をもつシーンを記述することを可能とす
る。そのためにHTMLブラウザ111にはJavaイ
ンタプリタ112も内蔵している。ガーベージコレクタ
114は、本実施の形態におけるコピーイング方式のガ
ーベージコレクションを実行するプログラムである。
【0018】ここで、本発明の前提として、まず、コン
ピュータ内部でのメモリ領域の利用方法および既存のG
Cのアルゴリズムについて、簡単に説明する。
【0019】メモリ領域の利用方法のひとつとして、動
的割り当てという考え方がある。動的割り当ては以下の
ような手順をとる。 (a)初期状態では、メモリ管理ルーチンが大きなメモ
リ領域を確保している。 (b)アプリケーション等の各サブルーチンは、何らか
の処理をするのにメモリ領域が必要になると、メモリ管
理ルーチンに対して、必要な大きさ(nバイト)のメモ
リ領域の割り当てを要求する。 (c)メモリ管理ルーチンは、ステップ(a)で確保し
ている領域のうちステップ(b)で要求された量だけを
ステップ(b)のサブルーチンに割り当てる。そのとき
に内部テーブルにメモリ全体のうちのどの部分を割り当
てたのかを記憶しておく。 (d)ステップ(b)のサブルーチンはメモリを使用し
おえたら、メモリ管理ルーチンを呼び出して「先ほどの
n バイトはもう使い終えた」と通知する。 (e)メモリ管理ルーチンはその通知にもとづいて前記
内部テーブルを更新する。 以後、ステップ(d)で
「返却」されたメモリ領域は、別のサブルーチンに割り
当て可能になる。
【0020】このようなロジックでメモリ管理をすると
きに、ステップ(b)で確保したメモリ領域をステップ
(d)できちんと「返却」するようなプログラムになっ
ていないと、有効に使用していないメモリ領域が増えて
しまい、メモリが「漏れて」しまう。これがメモリリー
クである。一般に複雑なデータ構造をもつ大規模なプロ
グラムの場合、このステップ(b)と ステップ(d)
のタイミングが複雑にからんでいるため、メモリリーク
が起きがちである。
【0021】一方、従来、例えば、Richard Jones, Raf
ael Lins: Garbage Collection, JOHN WILEY & SONS(19
96)(以下、第1の文献という)に記載されているよう
に、GCには、リファレンスカウント(reference coun
t)方式、マークアンドスウィープ(mark and sweep)
方式、コピーイング(copying)方式が知られている。
【0022】リファレンスカウント方式は、第1の文献
pp19-25に記載のように、メモリの各セルについて、そ
れを参照しているポインタの個数を管理しておくことに
より、当該セルが使用中(生きている)かどうかを判断
し、使用中でない(ポインタの個数が0である)セルを
フリーセルとしてプールする。この方式は最も実装が簡
単であるが、オブジェクト間のポインタがループを形成
したときにうまく機能しないなどの問題がある。
【0023】また、マークアンドスウィープ方式は、第
1の文献pp25-28に記載のように、すべての生きている
セルを特定する”マーキング”と、このマーキング結果
に基づいてすべてのゴミセルをフリープールへ戻す”ス
ウィープ”の二つのフェーズからなる。しかし、この方
式は、メモリのフラグメンテーションを起こすため望ま
しくない。
【0024】よって、本実施の形態では、コピーイング
方式を採用した。コピーイング方式は、第1の文献pp28
-33に記載のように、それぞれ現在のデータと廃データ
とを格納する二つのセミ空間(semi-space)を設け、G
Cの度にその役割を反転する。すなわち、古いセミ空間
(Fromspace)内の有効な(active)データ構造を探索し
て、生きている(live cell)セルを新たなセミ空間(T
ospace)内へコピーする。これにより、生きているデー
タ構造の複製がTospace内に生成される。古いセミ空間F
romspace内に残ったゴミセルは廃棄される。このコピー
イング方式には、ポインタがループを形成していても動
作し、かつフラグメンテーションを起こさないという特
徴がある。
【0025】GCによるシステム全体の中断時間を短縮
するための改良としては、ジェネレーショナル(genera
tional)GCとコンカレント(concurrent)GCがあ
る。ジェネレーショナルGCは、メモリ領域をいくつか
の世代(generation)に分割しオブジェクトをそのライ
フタイム(オブジェクトの年齢)に従って適切な世代領
域に配置し、ライフタイムの短いオブジェクト群が配置
されている世代領域を頻繁にGCするものである。これ
によって、短い時間で効率よくメモリの再利用を実現し
ている。他方、コンカレントGCはアプリケーションの
実行とは別のスレッドで並行してGCを行うことで、シ
ステム全体の中断時間をなくしている。しかし、いずれ
の方式も、効率的な実装をするためにはライトバリア
(write barrier)の仕組みが必要である。ここで、ラ
イトバリアとは、メモリ上のある特定領域(通常はオペ
レーティングシステムの都合で決まるページなどの単
位)にプログラムが書き込みを行うと割り込みが発生
し、実行中の他の特定のプログラムに対して「書き込も
うとしている」旨の通知がOSから発せられる仕組みを
いう。本実施の形態では、マイクロソフト社のオペレー
ティングシステム(OS)Windows95/98の上でシステム
を構築しており、これらのOSではアプリケーションレ
ベルでのライトバリアの実装が困難であるため、本実施
の形態では一般的なジェネレーショナルGCおよびコン
カレントGCは採用しなかった。
【0026】本実施の形態で導入したアルゴリズムは基
本的にはジェネレーショナルGCの変形であり、VRM
Lブラウザのデータ特性を考慮してデータ用のメモリ
(記憶ブロック)の確保を行う段階でそのデータがどの
世代領域に属するかを決定している。すわなち、データ
種別に応じてデータの世代を固定的に決めているため、
ライトバリアを利用することなくジェネレーショナルG
Cと同等の高い効率を実現することができる。
【0027】本実施の形態における特定のアプリケーシ
ョンとしてのVRMLデータの特性について説明する。
VRML(Virtual Reality Modeling Language)の詳
細については、例えば、VRML97の仕様書(specif
ication): http:〃www.web3d.org/technicalinfo/spe
cifications/vrml97/index.htmを参照されたい。また、
VRMLブラウザの詳細に関しては、例えば、松本英
明:SCA(Simple Component Architecture)の改
良,SRF99 Technical Digests, P253を参照されたい。
【0028】VRMLでは、個々の3次元オブジェクト
(円錐体、球体など)が階層構造を構成することで複雑
な3次元形状を構成している。図4は、VRMLファイ
ルの一部の一例を示している。これはVRML v2.
0によるオブジェクトの記述例である。この記述中の"t
ransform"はVRMLの基本構成要素であり、多くのオ
ブジェクトのコンテナとして機能する一般的なグループ
ノードである。この例では、このノードにCone(円
錐)とBox(立方体)のオブジェクトがつながれてい
る。各オブジェクトにはそれを定義するための座標デー
タが付加されている。図5は、図4の記述例に対応し
て、ポインタを含むオブジェクトと座標データの関係を
模式的に示したものである。
【0029】メモリ中のこのようなVRMLのデータに
は以下のような特性が見られる。 1.メモリの使われ方を大別すると、ポインタを含む一
般的なオブジェクトと、ポインタを含まない座標データ
に分かれる。 2.全メモリ消費量のうちで、座標データは平均30〜
40%を占める。典型的なVRMLデータをいくつか本
発明者らのシステムに読み込ませたときのテスト例にお
ける消費メモリ量に対する座標データ量の割合を図6に
示す。ここに挙げたすべての割合は、上記範囲内に入っ
ていることが分かる。 3.座標データは比較的ライフタイムが長い。つまりな
かなかゴミにならない。図8に、座標データのライフタ
イムを説明するためのグラフを示す。このグラフにおい
て“GC”軸(奥行き方向)はシステム稼動中の何回目
のGCかを表している。また、1回のGCでゴミとなっ
たメモリ領域群はそのライフタイムごとに分類され、各
ライフタイムごとの総メモリ量を集計している。
【0030】図8のグラフによると大量のゴミがでてい
るタイミングが2ヶ所ある。S1〜S3におけるゴミは
システム起動時に大量の座標計算をしたことによるもの
であり、このときのゴミのライフタイムは短い。一方、
S17〜S18におけるゴミは、システムの稼動時間を
通して保持されていた座標データがシステム終了時に解
放されたことによるものである。
【0031】一般的なオブジェクトはライフタイムが短
い傾向にある。図9に、オブジェクトのライフタイムを
説明するためのグラフを示す。このグラフを見ると、S
1からS17までのGCで、ほぼ毎回、ライフタイムが
短いゴミが一定量でていることがわかる。
【0032】そこで、このような特性を有するVRML
データに適合したGCを考慮する。前記第1の文献のp
p.28-33に記載のように、コピーイング方式のGCで
は、生きているメモリ領域をGCの度に毎回コピーして
パッキングすることでフラグメンテーションを避けてい
る。つまり、生きているメモリ領域の量が多いとフラグ
メンテーションがないにもかかわらず無意味にコピーを
続けることになり、時間を無駄にすることになる。ま
た、前述したように、VRMLの座標データの多くはシ
ステムの稼働時間を通して生き続ける確率が高いので、
毎回GCの対象とすると時間が無駄になる。
【0033】そこで、本発明者らは以下のような戦略を
とることでGCの速度向上を図った。 1.図2に示すように、メモリ領域を2つの世代領域に
分ける。すなわち、一般のオブジェクトと座標データと
を、それぞれオブジェクト用メモリ領域10と座標デー
タメモリ領域20とに分けて記憶するようにする。前者
をオブジェクト世代領域、後者を座標データ世代領域と
呼ぶ。各メモリ領域10,20は、ページ単位でメモリ
を確保する。なお、図中、11,21はポインタ配列を
示しており、これらのポインタから目的のページが指示
される。使用するページ数が増加すれば、ポインタ配列
11,21のポインタ数も増大する。 2.GCアルゴリズムを2つに分ける。第1段階ではオ
ブジェクト世代領域のみを対象としたGC、第2段階で
は両方の世代領域を対象としたGCを行う。 3.オブジェクト世代領域のGCは頻繁に行ない、両方
共の世代領域のGCはあまり頻繁には行なわない。
【0034】図3に、本実施の形態におけるGC処理の
フローチャートを示す。まず、メモリの記憶ブロックを
新規に確保する必要か否かを判断する(S21)。必要
ない場合には、後述するステップS25へ移行する。
【0035】記憶ブロックの新規確保が必要である場
合、そのブロックがオブジェクト用かどうかをチェック
する(S22)。オブジェクト用でなければ、そのブロ
ックが座標データ用であると判断して、座標データ用領
域からブロックを新規に確保する(S23)。オブジェ
クト用であれば、オブジェクト用領域からブロックを新
規に確保する(S24)。
【0036】その後、ステップS25において、GCを
行うか否かを判断する。この具体的な判断手法について
は後述する。GCを行わない場合には、その他の処理を
行う(S31)。その後、最初のステップS21へ戻
る。
【0037】GCを行う必要がある場合、カウンタ値
(COUNTER)を所定の最大値(MAX)と比較する(S
26)。カウンタ値が最大値以下であれば(S26,N
o)、オブジェクト用領域のみについてGCを実行する
(S27)。この処理は高速に(短時間内に)行われる
ことが期待される。この実行後、カウンタ値をインクリ
メント(+1)して(S28)、ステップS31へ進
む。
【0038】カウンタ値が最大値より大きければ(S2
6,Yes)、オブジェクト用領域だけでなく座標デー
タ用領域についてもGCを実行する(S29)。この処
理には比較的長い時間を要することになるが、この実行
頻度は小さいので問題は少ないといえる。この実行後、
カウンタ値を0にリセットして(S30)、ステップS
31へ進む。
【0039】前記ステップS25における、GCを行う
かどうかの判断の手法としては、次のような幾つかの方
法が考えられる。 (a)一定時間毎にGCを実行する。 (b)初期に確保したメモリ領域をすべて割り当ててし
まい、新規に割り当て要求が発生したときに割り当てる
べきメモリがなくなった場合にGCを実行する。
【0040】本実施の形態では(a)の手法を採用して
いる。但し、(b)の手法を採用することもできる。
【0041】なお、カウンタ値を利用する上記の手法は
メモリ領域別にGCの実行頻度を変える一つの方法にす
ぎない。これ以外の手法で実行頻度を変更してもよい。
【0042】このような本実施の形態により、GCの対
象とするメモリ量を抑えつつ効率的にメモリの再利用が
できると期待される。実際にこのような改良を加えた結
果、インテル社製PentiumIII 500MHzCPUでの実装に
おいて、図7に示すようにGCにかかる時間をおよそ2
5%〜30%ほど改善できた。GCにかかる時間が10
0ms以下であれば画面の表示スピードはGCの瞬間で
も10[frame/秒]程度に維持できるため実用化
へのめどが立ちつつあると言える。
【0043】今までインタラクティブなシステムにGC
が導入されなかったことの大きな理由としてGCによる
システムの反応速度低下があげられてきていたが、本発
明者らはデータの特性を考慮にいれてGC対象となるメ
モリを限定することで十分実用的な速度でGCを行なう
ことができることを示した。このようにアプリケーショ
ンと密接に連携したGCを導入すれば、反応速度が重要
なさまざまなリアルタイムアプリケーションでもGCの
導入による堅牢なシステム構築が可能であろう。
【0044】以上、本発明の好適な実施の形態について
説明したが、上記で言及した以外にも種々の変形、変更
が可能である。例えば、GCを行うタイミングを、ユー
ザが3次元空間内で静止しているときとしてもよい。画
面が静止しているときにはGCに時間がかかってもユー
ザには認識されにくいからである。
【0045】また、上記の実施の形態では、ライトバリ
アが利用できないのでジェネレーショナルGCを行わな
いとしたが、ライトバリアを用いないでジェネレーショ
ナルGCを行うことも可能である。計測の結果、GC全
体にかかる時間の中でコピーそのものにかかる時間の割
合が大きいことがわかったので、ライトバリアなしであ
ってもコピーの量を減らすことができれば効果は大きい
と期待される。
【0046】さらに、3次元データ表示を例として説明
したが、ライフタイムがほぼ二分されるような二群のデ
ータを取り扱う任意のアプリケーションに本発明を適用
することが可能である。
【0047】
【発明の効果】本発明によれば、特定のアプリケーショ
ンに適したガーベージコレクションを実行することがで
きる。例えば、3次元データ表示アプリケーションとし
ての3次元ブラウザの特性にあわせてガーベージコレク
ションを設計することにより、ガーベージコレクション
によるシステム全体の中断時間を短縮し、インタラクテ
ィブシステムにガーベージコレクションを適用すること
が可能となる。これにより、インタラクティブシステム
を堅牢にし、その信頼性の向上を図ることができる。
【図面の簡単な説明】
【図1】本発明による情報処理装置の一例としての3次
元表示装置の概略構成を示すブロック図である。
【図2】本発明の実施の形態におけるメモリ領域の説明
図である。
【図3】本発明の実施の形態におけるGC処理の一例を
示すフローチャートである。
【図4】本発明の実施の形態におけるVRMLファイル
の一部の一例を示す図である。
【図5】図4の記述例に対応して、ポインタを含むオブ
ジェクトと座標データの関係を模式的に示した図であ
る。
【図6】典型的なVRMLデータをシステムに読み込ま
せたときの座標データの割合を示す図である。
【図7】本発明の実施の形態においてGCにかかる時間
の改善例を示す図である。
【図8】本発明の実施の形態における座標データのライ
フタイムを説明するためのグラフである。
【図9】本発明の実施の形態におけるオブジェクトのラ
イフタイムを説明するためのグラフである。
【符号の説明】
10…オブジェクト用メモリ領域、20…座標データ用
メモリ領域、100…制御部、101…CPU、102
…メモリ、103…I/Oインタフェース部、104…
表示部、105…スピーカ、106…入力部、107…
マイク、120…外部記憶装置、111…HTMLブラ
ウザ、112…Javaインタプリタ、113…VRM
Lブラウザ、114…ガーベージコレクタ、115…デ
ータメモリ領域、121…HTMLファイル、122…
VRMLファイル、123…Javaスクリプト
───────────────────────────────────────────────────── フロントページの続き (72)発明者 松田 晃一 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 (72)発明者 賀川 能明 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 Fターム(参考) 5B060 AA06 AA10 5B080 AA10 CA08 FA08

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】動的に生成、消滅を繰り返すデータ群を取
    り扱うアプリケーションに適用するガーベージコレクシ
    ョン実行方法であって、 データを格納するメモリ領域を、ライフタイムの比較的
    短い第1の種類のデータ群を記憶する第1のメモリ領域
    と、ライフタイムの比較的長い第2の種類のデータ群を
    記憶する第2のメモリ領域とに分割し、 データを記憶する記憶ブロックを新規に確保する際に、
    当該データが前記第1の種類のデータと第2の種類のデ
    ータのいずれに属するかを判定し、 前記第1の種類のデータは前記第1のメモリ領域に格納
    し、前記第2の種類のデータは前記第2のメモリ領域に
    格納し、 前記第1のメモリ領域に対するガーベージコレクション
    の実行頻度を高くするとともに、前記第2のメモリ領域
    に対するガーベージコレクションの実行頻度を低くした
    ことを特徴とするガーベージコレクション実行方法。
  2. 【請求項2】前記第1および第2のメモリ領域の各々は
    ページ単位に確保されることを特徴とする請求項1記載
    のガーベージコレクション実行方法。
  3. 【請求項3】前記第1の種類のデータ群は3次元データ
    表示プログラムの取り扱うオブジェクト群であり、前記
    第2の種類のデータ群は当該オブジェクト群に関連した
    座標データ群であることを特徴とする請求項1記載のガ
    ーベージコレクション実行方法。
  4. 【請求項4】前記ガーベージコレクションは、コピーイ
    ング方式のガーベージコレクションであることを特徴と
    する請求項1記載のガーベージコレクション実行方法。
  5. 【請求項5】動的に生成、消滅を繰り返すデータ群を取
    り扱うアプリケーションに適用するガーベージコレクシ
    ョンを実行するコンピュータプログラムであって、 データを格納するメモリ領域を、ライフタイムの比較的
    短い第1の種類のデータ群を記憶する第1のメモリ領域
    と、ライフタイムの比較的長い第2の種類のデータ群を
    記憶する第2のメモリ領域とに分割し、 データを記憶する記憶ブロックを新規に確保する際に、
    当該データが前記第1の種類のデータと第2の種類のデ
    ータのいずれに属するかを判定し、 前記第1の種類のデータは前記第1のメモリ領域に格納
    し、前記第2の種類のデータは前記第2のメモリ領域に
    格納し、 前記第1のメモリ領域に対するガーベージコレクション
    の実行頻度を高くするとともに、前記第2のメモリ領域
    に対するガーベージコレクションの実行頻度を低くした
    ことを特徴とするガーベージコレクションを実行するコ
    ンピュータプログラム。
  6. 【請求項6】動的に生成、消滅を繰り返すデータ群を取
    り扱うアプリケーションに適用するガーベージコレクシ
    ョンを実行するコンピュータプログラムを格納したプロ
    グラム格納媒体であって、 データを格納するメモリ領域を、ライフタイムの比較的
    短い第1の種類のデータ群を記憶する第1のメモリ領域
    と、ライフタイムの比較的長い第2の種類のデータ群を
    記憶する第2のメモリ領域とに分割し、 データを記憶する記憶ブロックを新規に確保する際に、
    当該データが前記第1の種類のデータと第2の種類のデ
    ータのいずれに属するかを判定し、 前記第1の種類のデータは前記第1のメモリ領域に格納
    し、前記第2の種類のデータは前記第2のメモリ領域に
    格納し、 前記第1のメモリ領域に対するガーベージコレクション
    の実行頻度を高くするとともに、前記第2のメモリ領域
    に対するガーベージコレクションの実行頻度を低くした
    ことを特徴とするガーベージコレクションを実行するコ
    ンピュータプログラムを格納したプログラム格納媒体。
  7. 【請求項7】動的に生成、消滅を繰り返すデータ群を取
    り扱うアプリケーションに適用するガーベージコレクシ
    ョンを実行する情報処理装置であって、 少なくともデータを記憶するメモリと、 このメモリに対してガーベージコレクションを実行する
    ガーベージコレクション実行手段と、 データを格納するメモリ領域を、ライフタイムの比較的
    短い第1の種類のデータ群を記憶する第1のメモリ領域
    と、ライフタイムの比較的長い第2の種類のデータ群を
    記憶する第2のメモリ領域とに分割し、データを記憶す
    る記憶ブロックを新規に確保する際に、当該データが前
    記第1の種類のデータと第2の種類のデータのいずれに
    属するかを判定し、前記第1の種類のデータは前記第1
    のメモリ領域に格納し、前記第2の種類のデータは前記
    第2のメモリ領域に格納し、前記第1のメモリ領域に対
    するガーベージコレクションの実行頻度を高くするとと
    もに、前記第2のメモリ領域に対するガーベージコレク
    ションの実行頻度を低くするよう制御を行う制御手段
    と、 を備えたことを特徴とする情報処理装置。
JP2001080816A 2001-03-21 2001-03-21 ガーベージコレクション実行方法、コンピュータプログラム、プログラム格納媒体、および情報処理装置 Withdrawn JP2002278828A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001080816A JP2002278828A (ja) 2001-03-21 2001-03-21 ガーベージコレクション実行方法、コンピュータプログラム、プログラム格納媒体、および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001080816A JP2002278828A (ja) 2001-03-21 2001-03-21 ガーベージコレクション実行方法、コンピュータプログラム、プログラム格納媒体、および情報処理装置

Publications (1)

Publication Number Publication Date
JP2002278828A true JP2002278828A (ja) 2002-09-27

Family

ID=18937027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001080816A Withdrawn JP2002278828A (ja) 2001-03-21 2001-03-21 ガーベージコレクション実行方法、コンピュータプログラム、プログラム格納媒体、および情報処理装置

Country Status (1)

Country Link
JP (1) JP2002278828A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100402A (ja) * 2003-09-23 2005-04-14 Microsoft Corp オブジェクト指向プログラムのための領域ベースのメモリ管理
JP2006039878A (ja) * 2004-07-26 2006-02-09 Aplix Corp Java(R)実行環境におけるメモリ管理方法及びメモリ管理プログラム
JP2006171927A (ja) * 2004-12-14 2006-06-29 Mitsubishi Electric Corp プログラム実行装置及びプログラム実行方法及びデータ領域管理プログラム
JP2007004506A (ja) * 2005-06-24 2007-01-11 Mitsubishi Electric Corp 記憶管理装置
US7302544B2 (en) 2004-01-28 2007-11-27 Samsung Electronics Co., Ltd. Method and apparatus for adaptive garbage collection
JP2009026081A (ja) * 2007-07-19 2009-02-05 Hitachi Ltd メモリ管理方法、情報処理装置及びメモリ管理プログラム
JP2010015223A (ja) * 2008-07-01 2010-01-21 Internatl Business Mach Corp <Ibm> メモリ領域中のオブジェクトを隔離するための方法
US7953920B2 (en) 2007-12-28 2011-05-31 Kabushiki Kaisha Toshiba Semiconductor storage device with volatile and nonvolatile memories, method of controlling the same, controller and information processing apparatus
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
JP2014052953A (ja) * 2012-09-10 2014-03-20 Nippon Telegr & Teleph Corp <Ntt> 仮想マシン停止時間予測装置およびプログラム停止時間予測値計算方法
KR20150048311A (ko) * 2013-10-25 2015-05-07 삼성전자주식회사 메모리 관리 장치 및 메모리 관리 방법
US9244619B2 (en) 2012-09-27 2016-01-26 Samsung Electronics Co., Ltd. Method of managing data storage device and data storage device
US11036630B2 (en) * 2018-09-27 2021-06-15 SK Hynix Inc. Memory system and operating method thereof
CN113608702A (zh) * 2021-08-18 2021-11-05 合肥大唐存储科技有限公司 一种实现数据处理的方法、装置、计算机存储介质及终端

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
JP2005100402A (ja) * 2003-09-23 2005-04-14 Microsoft Corp オブジェクト指向プログラムのための領域ベースのメモリ管理
US7302544B2 (en) 2004-01-28 2007-11-27 Samsung Electronics Co., Ltd. Method and apparatus for adaptive garbage collection
JP2006039878A (ja) * 2004-07-26 2006-02-09 Aplix Corp Java(R)実行環境におけるメモリ管理方法及びメモリ管理プログラム
JP4504756B2 (ja) * 2004-07-26 2010-07-14 株式会社アプリックス Java(登録商標名)実行環境におけるメモリ管理方法及びメモリ管理プログラム
JP2006171927A (ja) * 2004-12-14 2006-06-29 Mitsubishi Electric Corp プログラム実行装置及びプログラム実行方法及びデータ領域管理プログラム
JP4589095B2 (ja) * 2004-12-14 2010-12-01 三菱電機株式会社 プログラム実行装置及びプログラム実行方法及びデータ領域管理プログラム
JP2007004506A (ja) * 2005-06-24 2007-01-11 Mitsubishi Electric Corp 記憶管理装置
JP2009026081A (ja) * 2007-07-19 2009-02-05 Hitachi Ltd メモリ管理方法、情報処理装置及びメモリ管理プログラム
US7962688B2 (en) 2007-12-28 2011-06-14 Kabushiki Kaisha Toshiba Semiconductor storage device with nonvolatile and volatile memories, method of controlling the same, controller and information processing apparatus
US8782331B2 (en) 2007-12-28 2014-07-15 Kabushiki Kaisha Toshiba Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
US7953920B2 (en) 2007-12-28 2011-05-31 Kabushiki Kaisha Toshiba Semiconductor storage device with volatile and nonvolatile memories, method of controlling the same, controller and information processing apparatus
US8065471B2 (en) 2007-12-28 2011-11-22 Kabushiki Kaisha Toshiba Semiconductor device having a volatile semiconductor memory and a nonvolatile semiconductor memory which performs read/write using different size data units
US8065470B2 (en) 2007-12-28 2011-11-22 Kabushiki Kaisha Toshiba Semiconductor storage device with volatile and nonvolatile memories
US11513682B2 (en) 2007-12-28 2022-11-29 Kioxia Corporation Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
US10845992B2 (en) 2007-12-28 2020-11-24 Toshiba Memory Corporation Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
US11960719B2 (en) 2007-12-28 2024-04-16 Kioxia Corporation Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
US10248317B2 (en) 2007-12-28 2019-04-02 Toshiba Memory Corporation Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
US9703486B2 (en) 2007-12-28 2017-07-11 Kabushiki Kaisha Toshiba Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
US9134924B2 (en) 2007-12-28 2015-09-15 Kabushiki Kaisha Toshiba Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
US8625344B2 (en) 2008-06-13 2014-01-07 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8760918B2 (en) 2008-06-13 2014-06-24 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8705272B2 (en) 2008-06-13 2014-04-22 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8638585B2 (en) 2008-06-13 2014-01-28 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8614919B2 (en) 2008-06-13 2013-12-24 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8565021B2 (en) 2008-06-13 2013-10-22 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
JP2010015223A (ja) * 2008-07-01 2010-01-21 Internatl Business Mach Corp <Ibm> メモリ領域中のオブジェクトを隔離するための方法
JP2014052953A (ja) * 2012-09-10 2014-03-20 Nippon Telegr & Teleph Corp <Ntt> 仮想マシン停止時間予測装置およびプログラム停止時間予測値計算方法
US9244619B2 (en) 2012-09-27 2016-01-26 Samsung Electronics Co., Ltd. Method of managing data storage device and data storage device
KR20150048311A (ko) * 2013-10-25 2015-05-07 삼성전자주식회사 메모리 관리 장치 및 메모리 관리 방법
KR102166332B1 (ko) 2013-10-25 2020-10-16 삼성전자주식회사 메모리 관리 장치 및 메모리 관리 방법
US11036630B2 (en) * 2018-09-27 2021-06-15 SK Hynix Inc. Memory system and operating method thereof
CN113608702A (zh) * 2021-08-18 2021-11-05 合肥大唐存储科技有限公司 一种实现数据处理的方法、装置、计算机存储介质及终端

Similar Documents

Publication Publication Date Title
CN110663019B (zh) 用于叠瓦式磁记录(smr)的文件系统
JP4177960B2 (ja) 増分不要情報収集
US11232026B2 (en) Deferred destruction for efficient resource reclamation
JP2002278828A (ja) ガーベージコレクション実行方法、コンピュータプログラム、プログラム格納媒体、および情報処理装置
TWI539280B (zh) 用於分析未經特定設計以提供記憶體分配資訊之應用程式及擷取記憶體分配資訊的方法、及其電腦系統和電腦可讀儲存媒體
JP2009532761A (ja) フラッシュ・ストレージの離散領域を記述して問い合わせること
US6804761B1 (en) Memory allocation system and method
AU2014281290A1 (en) Latch-free, log-structured storage for multiple access methods
JP4801761B2 (ja) データベース管理方法およびシステム並びにその処理プログラム
RU2641244C2 (ru) Унифицированный доступ к совместно используемой и управляемой памяти
JPH08234921A (ja) アドレス・スペースを管理するための方法及び記憶サブシステム
CN111984425B (zh) 用于操作系统的内存管理方法、装置及设备
CN101968755B (zh) 一种自适应应用负载变化的快照生成方法
TW201712527A (zh) 用於新應用程式之記憶體管理模型與介面
WO2001090899A2 (en) System and method for memory management using fixed-size blocks
US11500828B1 (en) Method and device for constructing database model with ID-based data indexing-enabled data accessing
US8972629B2 (en) Low-contention update buffer queuing for large systems
US9348819B1 (en) Method and system for file data management in virtual environment
WO2024078429A1 (zh) 内存管理方法、装置、计算机设备及存储介质
CN115934102B (zh) 通用寄存器动态分配方法、装置、计算机设备和存储介质
US9552295B2 (en) Performance and energy efficiency while using large pages
CN109582649A (zh) 一种元数据存储方法、装置、设备及可读存储介质
CN115421924A (zh) 一种内存分配方法、装置及设备
GB2497172A (en) Reserving space on a storage device for new data based on predicted changes in access frequencies of storage devices
US20090228537A1 (en) Object Allocation System and Method

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050801

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050926

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080603