JP2005025727A - 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム - Google Patents

情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム Download PDF

Info

Publication number
JP2005025727A
JP2005025727A JP2004142425A JP2004142425A JP2005025727A JP 2005025727 A JP2005025727 A JP 2005025727A JP 2004142425 A JP2004142425 A JP 2004142425A JP 2004142425 A JP2004142425 A JP 2004142425A JP 2005025727 A JP2005025727 A JP 2005025727A
Authority
JP
Japan
Prior art keywords
garbage collection
memory
information storage
collection process
amount
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
JP2004142425A
Other languages
English (en)
Other versions
JP3688286B2 (ja
Inventor
Ryozo Kiyohara
良三 清原
Katsuhide Takahashi
克英 高橋
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004142425A priority Critical patent/JP3688286B2/ja
Publication of JP2005025727A publication Critical patent/JP2005025727A/ja
Application granted granted Critical
Publication of JP3688286B2 publication Critical patent/JP3688286B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

【課題】 ガーベージコレクション要求時に、必要なければ呼ばないという処理を入れることにより処理の効率低下を防ぐことを目的とする。
【解決手段】 メモリ10中の使用されていない記憶領域を回収するガーベージコレクション処理によって、回収した記憶領域をプログラムに割り当てる情報記憶制御装置100であって、メモリ10はプログラムの実行に必要な記憶領域を有し、空きメモリ算出手段7は、ガーベージコレクション処理前のメモリの空き記憶領域の合計量を算出する。ガーベージコレクション制御手段4は、ガーベージコレクション処理要求手段2からのメモリ10を対象としたガーベージコレクション処理の要求に対し、算出したガーベージコレクション処理前のメモリ10の空き記憶領域の合計量に基づいて、要求するガーベージコレクション処理を実行するか否かを制御する。
【選択図】 図1

Description

本発明は、動的にメモリを確保して実行する処理系において、構造が複雑で一旦使用したメモリが不要になったかどうかを判定するために決まったルートから順番にメモリをたぐりマークをつけていき、マークのなかったメモリが不要であるとして回収し、必要に応じてメモリのコンパクションを行うガーベージコレクション処理に関するものである。
特に、ガーベージコレクション処理をアプリケーションプログラムが実際にメモリが必要になり要求した時点で必要性に応じて実行するのではなく、アプリケーションプログラムから要求されて実行するときのガーベージコレクションの制御に関するものである。
情報処理学会会誌 Vol.35,1994年には、特集として、主要なほとんどのガーベージコレクションに関する技術が掲載され開示されている。
通常の動的メモリを利用するプログラム実行環境においては、アプリケーションプログラムの実行により必要なメモリ量が動的に処理系に要求され、処理系で適切な大きさのメモリを用意してアプリケーションプログラムに使わせる。複雑にポインタなどでリンクされていく使い方をする場合には、一旦利用したメモリが不要になる場合も多々あり、これをリアルタイムに管理していくのは手間のかかる処理である。実際に動的なメモリが複雑に何箇所も利用されている場合を想定すると、アプリケーションプログラムが陽に不要であるという指定をしないかぎりは、ポインタが切れる処理のたびにメモリ内を走査していく必要が生じる。
このような問題を解決する手法として、従来からガーベージコレクションという手法が利用されている。ガーベージコレクション処理は動的にメモリが必要になったけれど、メモリが確保できない場合に走らせることが多く、システムの決まったルートと呼ばれるところから生きているメモリを順番に手繰ってマークし、まだ必要なメモリを特定する。マークされなかったメモリはシステムからアクセス不可能だったエリアであり、もう利用されなかったと判断し、これを回収し要求された処理に対してメモリとして提供する。
このような処理中はアプリケーションプログラムの動作は一旦停止し、ガーベージコレクションの処理が終了してから再開するという場合が多い。しかし、これはゲームアプリケーションプログラムのようにリアルタイム性を要求するアプリケーションプログラムには致命的である。そこで、従来からリアルタイムガーベージコレクションという方式が提案されている。これはそのメモリの参照数を常時カウントしておき、参照数が0になった時点で即時回収する方式や、アプリケーションプログラムの実行と並行してマーク処理を動作させていく方法などである。
いずれにしろ処理は複雑になり処理全体としての効率は落ちざるを得ない。あるいは特開2001−14215号公報に開示されているようにガーベージコレクションの実行時間を制限する方法や、特開2002−268912号公報にあるようにガーベージコレクションの処理を分割する方法においても同様に処理の効率が落ちてしまう問題があった。
そこで、ゲームなどのアプリケーションプログラムは限られたキーの入力を要求するときのみガーベージコレクションの処理を起こして欲しくないため、ガーベージコレクションを起こして欲しくない処理の直前にアプリケーションプログラムから要求してガーベージコレクションを呼び出すケースがある。この方法はアプリケーションプログラムから見た場合は非常に有効であり多くのアプリケーションプログラムで使われている。
「ごみ集めの基礎と最近の動向」、情報処理学会会誌、Vol.35,1994年、p.991〜1032 特開2001−14215号公報 特開2002−268912号公報
しかし、アプリケーションプログラムからすると、一定の期間、ガーベージコレクション処理を起こして欲しくない場合にガーベージコレクション処理を呼ぶので、アプリケーションプログラムの立ち上げ時など頻繁にガーベージコレクション処理を呼ぶことになる。これは、立ち上げ時間など処理時間の低下を生んでいた。
本発明は、アプリケーションプログラムからガーベージコレクションを要求されたとしても実際にガーベージコレクションを呼ぶべきかどうかを判定し、必要なければ呼ばないという処理を入れることにより処理の効率低下を防ぐことを目的とする。
具体的には、ガーベージコレクション制御手段を設けて、ガーベージコレクション処理を実際に呼ぶか呼ばないかの判断を行い、これにより不要なガーベージコレクションを行わないようにすることを目的とする。
本発明に係る情報記憶制御装置は、
メモリ中の使用されていない記憶領域を回収するガーベージコレクション処理によって、回収した記憶領域をプログラムに割り当てる情報記憶制御装置であって、
プログラムの実行に必要な記憶領域を有するメモリと、
ガーベージコレクション処理前のメモリの空き記憶領域の合計量を算出する空きメモリ算出手段と、
前記メモリを対象としたガーベージコレクション処理を要求するガーベージコレクション処理要求手段と、
前記空きメモリ算出手段が算出したガーベージコレクション処理前のメモリの空き記憶領域の合計量に基づいて、前記ガーベージコレクション処理要求手段が要求するガーベージコレクション処理を実行するか否かを制御するガーベージコレクション制御手段を備えることを特徴とする。
ガーベージコレクション処理を実行せずに済む場合には、実行しないで済むことができるため、情報処理システム全体の処理を高速化することができる。
実施の形態1.
以下、実施の形態1について説明する。
図1は実施の形態1及び実施の形態2に係る情報記憶制御装置100の構成図である。情報記憶制御装置100は、メモリ10中の使用されていない記憶領域を回収するガーベージコレクション処理によって、回収した記憶領域をプログラムに動的に割り当てるプログラム実行環境を備えている。
アプリケーションプログラム1は、一定の期間、ガーベージコレクションを起こして欲しくないような場合にガーベージコレクションを陽に呼ぶプログラムである。
API(APPLICATION INTERFACE)3は、アプリケーションプログラム1がシステムの機能を呼び出すために通常用意されているアプリケーションインタフェースである。
ガーベージコレクション処理要求手段2は、API3の中でもガーベージコレクション処理を呼び出すためのインタフェースである。ここで、ガーベージコレクション処理とは、メモリ10中の、現在使用されていない記憶領域を回収する処理をいう。ガーベージコレクション処理要求手段2は、ガーベージコレクション制御手段は、ガーベージコレクション処理要求の累積又は一定期間の回数を保持することができる。また、ガーベージコレクション処理要求手段2は、一定期間毎に、要求回数を初期値0に設定する処理を有している。さらに、ガーベージコレクション処理要求手段2は、ガーベージコレクション制御手段に対して、ガーベージコレクションの実行を行うか判断を行わないように、ガーベージコレクションの処理を呼び出すことができる。
ここで、メモリ10中の使用されていない記憶領域を回収するとは、メモリ10中に分散された記憶領域であって、使用されていない記憶領域を一箇所に集めることをいう。具体的には、動的にメモリ10を確保して実行する処理系において、構造が複雑で一旦使用したメモリ10が不要になったかどうかを判定するために、決まったルートから順番にメモリ10をたぐりマークをつけていき、マークのなかったメモリ10が不要であるとして回収し、必要に応じてメモリ10のコンパクションを行う処理をいう。
メモリ10は、ガーベージコレクション処理の対象となるメモリであり、アプリケーションプログラム1の実行に必要な記憶領域を有する。
ガーベージコレクション制御手段4は、アプリケーションプログラムからガーベージコレクション処理が呼ばれた場合に、実際にガーベージコレクション処理を行うプログラムを呼んで、ガーベージコレクション処理を実行するかどうか判断するガーベージコレクションの呼び出し制御を行うモジュールであり、比較手段5は、ガーベージコレクション処理を実行するか否かを制御するために、予め定められた条件を比較するモジュールである。
比較手段5は、ガーベージコレクション制御手段4が、後記、空きメモリ算出手段7、メモリ消費量算出手段8の算出した値から比較手段5が行う条件を設定する。
処理系6は、動的メモリを管理する必要のあるような言語処理系またはOSにあたるもので、空きメモリ算出手段7は最初にあったフリーなメモリ領域からどれだけ記憶領域が各々のプログラムに割り当てられたかを管理しているモジュールであり、メモリ消費量算出手段8は、所定期間にどれだけメモリを消費したかを算出する手段である。 また、メモリ消費量算出手段8は、メモリの使用種別を判断し、重み付けを行ってメモリ消費量の算出を行うことができる。ここで、メモリの使用種別とは、C++,Java(登録商標)等のオブジェクト指向言語の情報記憶制御系であれば、メモリを確保する際に、その役割が明確にされたクラスである。また、FORTRANやCでも、メモリ確保関数を用意し、確保された関数を特定することである。さらに、確保されたメモリの一部に書き込まれたヘッダ情報である。
メモリ消費量算出手段8に、メモリの使用種別を判断し、重み付けを行ったメモリ使用量を算出する処理を設ける目的は、短命なメモリ消費の積み重ねによるガーベージコレクションの発生を抑制するためである。ここで、短命なメモリ消費とは、メッセージ通知に用いるイベント通知やデータ引渡しに用いるバッファ領域等の利用された後に、すぐにガーベージコレクションの対象となるものである。
ガーベージコレクション処理9は、現在、プログラムに利用しているメモリ10の記憶領域をマークして、使用していないメモリ10の記憶領域を回収するガーベージコレクターを実行する。
本実施の形態に係るガーベージコレクション処理の実行制御について、図2を利用して説明する。
図2は、本実施の形態に係るガーベージコレクション処理の実行制御フローである。
まず、ステップ201で、アプリケーションプログラム1は、所定の処理の実行に必要なメモリ量を処理実行メモリ量として指定して、ガーベージコレクション処理の呼び出しを要求する。これはアプリケーションプログラム1としては、これから指定した処理実行メモリ量を使用した所定の処理を実行する間は、ガーベージコレクション処理を発生して欲しくない場合に、所定の処理中にガーベージコレクション処理が実行されることを回避するために、前記所定の処理の実行前に要求するものである。通常のOSなどにメモリ要求して利用する場合と異なり、ここで指定した処理実行メモリ量をメモリ10の記憶領域に空けることができなかった場合でも、そのまま所定の処理を動作することができる可能性がある。
アプリケーションプログラム1から、このようなガーベージコレクション処理の呼び出し要求を受けて、ガーベージコレクション処理要求手段2は、メモリ10を対象としたガーベージコレクション処理をガーベージコレクション制御手段4に要求する。
次に、ステップ202で、空きメモリ算出手段7が、現状のメモリ10を対象として空き状況のチェック処理を行い、メモリ10の空き記憶領域の合計量を算出する。この処理は後で詳細に説明する図3で示すように、メモリ10を利用するたびに利用したメモリ量をチェックしておき、残りのメモリ量からメモリ10の空き記憶領域の合計量を計算することができる。例えば、メモリ10には、1Mバイトのメモリ量があることがわかっており、前回のガーベージコレクション処理時に変わったメモリ量、または、初期状態のメモリ量から実際に利用したメモリ量が800Kバイトであれば、空きメモリ算出手段7は、残りの200Kバイトをメモリ10の空き記憶領域の合計量として計算することができる。ここで、実際には使用した800Kバイトの中にも未使用状態になってしまったものも存在するが、それはガーベージコレクション処理を実行しない限りはわからないものである。
ステップ203で、比較手段5は、ステップ202で得たメモリ10の空き容量(メモリ10の空き記憶領域の合計量)が要求された処理実行メモリ量に比べて大きいかどうかを比較する。
ガーベージコレクション制御手段4は、空きメモリ算出手段7が算出したメモリ10の空き記憶領域の合計量に基づいて、ガーベージコレクション処理要求手段2が要求するガーベージコレクション処理を実行するか否かを制御する。
すなわち、ガーベージコレクション制御手段4は、比較手段5が比較した結果、上述したように、メモリ10の空き記憶領域の合計量が処理実行メモリ量以上である場合には、ガーベージコレクション処理を実行せずに終了し、メモリ10の空き記憶領域の合計量が処理実行メモリ量未満である場合には、ステップ204でガーベージコレクション処理を実行するように制御する。
ここで、アプリケーションプログラム1に対して実際にガーベージコレクション処理を実行したかどうかや、ガーベージコレクション処理を実行した結果、どの程度、メモリ10に空いた記憶領域があったかなどの値を返しても良いし、返さなくてもよい。
次に、図3を用いて、メモリ10を利用するたびに、空きメモリ算出手段7が行う、利用したメモリ量のチェックの方法に関して説明する。
図3は、空きメモリ算出手段7が行う、空きメモリのチェック方法を示した図である。
まず、ステップ301で、空きメモリ算出手段7は、メモリ10の初期状態の情報を設定する。例えば、メモリ10には、全体で800Kバイトの記憶領域が存在するなら、初期値として800Kバイトを設定する。
ステップ302では、空きメモリ算出手段7は、メモリ10を使用する際に発生するイベントを待ちに行く。
メモリ10を使用する場合に必ずイベントを発生するようにしておき、このイベントがステップ303に示すような、新たにメモリ10の記憶領域を使用するというイベントであれば、ステップ304で、空きメモリ算出手段7は、その使用量(メモリ10の内、新たに使用した記憶領域)を新たに追加設定し、その使用量以外の記憶領域をメモリ10の空き記憶領域の合計量とする。
ステップ305に示すように、ガーベージコレクション処理を実行したというイベントであれば、ステップ306で、空きメモリ算出手段7は、ガーベージコレクション実行後、新たにメモリ10を使用したメモリ量を設定する。
ステップ307に示すように、メモリ10の空きメモリ容量確認イベントの場合は、ステップ308で、空きメモリ算出手段7は、設定されているメモリ使用量に関する情報を返す処理、または、メモリ使用量から算出した空き記憶領域に関する情報を返す処理を行う。
以上、アプリケーションプログラム1の言語解釈実行手段またはコンパイルされた機械語を実行する手段を備えた情報処理システムの内、動的にメモリ10を確保して利用し、構造が複雑であってすでに利用したメモリ10が不要になったかどうかは限られたスタックなどのエリアから参照されているメモリ10を順に手繰るなどしてメモリ10にマークをつけることにより使用中か使用してないかを決めていくガーべコレクション処理を備えている情報記憶制御装置100において、アプリケーションプログラム1からのガーベージコレクション処理の呼び出しに応じて、ガーベージコレクション処理を要求するガーベージコレクション処理要求手段2と、アプリケーションプログラム1に応じてガーベージコレクション処理要求手段2からのガーベージコレクション呼び出しに対して実際のガーベージコレクション処理を実行するか実行しないかを制御するガーベージコレクション制御手段4とを備えることを特徴とする情報記憶制御装置100について説明した。
また、前記情報記憶制御装置100のガーベージコレクション処理要求手段2において、アプリケーションプログラム1が次に処理する所定の処理の間にガーベージコレクション処理を呼び出したくない場合に、所定の処理に必要なメモリ量を処理実行メモリ量として指定して、ガーベージコレクション処理を呼び出すガーベージコレクション処理要求手段2と、必要な空きメモリ領域を確保するガーベージコレクション処理9と、実際にガーベージコレクション処理をするかどうかを制御するガーベージコレクション制御手段4とを備えたことを特徴とする情報記憶制御装置100について説明した。
また、前記情報記憶制御装置100のガーベージコレクション制御手段4において、所定の処理に必要な処理実行メモリ量が十分確保済みかどうかを計算する空きメモリ算出手段7を備え、ガーベージコレクション処理実行前に、空きメモリ量の算出結果が処理実行メモリ量より大きいかどうかを比較する比較手段5を備え、比較の結果必要なければガーベージコレクション処理を実行しないという特徴をもつガーベージコレクション制御手段4を備えた情報記憶制御装置100について説明した。
以上に説明した本実施の形態の情報記憶制御装置100によれば、起動時などに頻繁に呼ばれることが予想されるガーベージコレクション処理の実際の実行を制御し、アプリケーションプログラム1にとってガーベージコレクション処理を実行して欲しくない状況の場合で、ガーベージコレクション処理を実行せずに済む場合には、確実に実行しないで済むことができるため、結果として情報処理システム全体の処理を高速化することができるという効果がある。すなわち、本実施の形態の情報記憶制御装置100によれば、そこでアプリケーションプログラム1からガーベージコレクション処理を要求されたとしても、ガーベージコレクション制御手段4が実際にガーベージコレクション処理を呼ぶべきかどうかを判定し、必要なければ呼ばないという処理を入れることにより処理の低下を防ぐことができる。
これにより、本情報記憶制御装置100によれば、不要なガーベージコレクション処理を行わないようにすることができる。ガーベージコレクション処理9を呼ぶか呼ばないかの判断のためには、その時点でのメモリ10の使用状況を把握しておく必要があるため、空きメモリ算出手段7により、メモリ10の空き記憶領域の合計量の算出を行っている。
実施の形態2.
以下、実施の形態2について、図4を用いて説明する。
図4は、本実施の形態に係るガーベージコレクション処理の実行制御フローである。
ステップ401で、アプリケーションプログラム1がガーベージコレクションを要求し、これに応答する形でガーベージコレクション処理要求手段2がガーベージコレクション制御手段4にガーベージコレクション処理9を要求することによりスタートする。
ステップ402で、メモリ消費量算出手段8は、使用メモリ領域の合計量をチェックする。使用メモリ領域の合計量は、メモリ消費量算出手段8が、前回のガーベージコレクション処理が実行された後にメモリ10の割り当てが行われた場合、割り当てられたメモリ量を累積することによって、累積したメモリ量をメモリ消費量(使用メモリ領域の合計量)とすることにより算出されるが、詳細は、後述する図5に示すフローに従って説明する。
次に、ステップ403で、比較手段5が、使用メモリ領域の大きさを予め定められた閾値と比較する。予め定められた閾値としては、メモリ10の全メモリ量の半分に設定しても良いし、初期化時の空きメモリ量の半分に設定しても良い。また前回ガーベージコレクションで改修されてからの増加量が前回のガーベージコレクション時の空き容量の半分を超えるかどうかで判定しても良いし、これらの数値の最も大きな数値との比較をしてもかまわない。
上記閾値より使用メモリが少なければ、ガーベージコレクション制御手段4はガーベージコレクション処理9を実行せずに終了し、上記使用メモリが閾値以上であれば、ガーベージコレクション制御手段4は、ステップ404でガーベージコレクション処理9を実行して終了する。
図5を用いて、メモリ消費量算出手段8が実行するメモリ消費量(使用メモリ容量)の管理のフローを説明する。
図5は、メモリ10中の使用メモリのチェック方法を示した図である。
まず、メモリ消費量算出手段8は、使用メモリ量の管理用の使用量に関する変数をステップ501で初期化して0とする。
ステップ502でメモリ10使用のイベント待ちに入る。
ステップ503でメモリ10使用イベントが発生すると、ステップ504で、メモリ消費量算出手段8は、使用量が増加した分、使用メモリ量の管理用の変数の値を大きくする。
このように、メモリ消費量算出手段8は、前回のガーベージコレクション処理が実行された後にメモリの割り当てが行われた場合、割り当てられたメモリ量を累積することによって、累積したメモリ量をメモリ消費量として算出する。
ステップ505で、ガーベージコレクション発生のイベントの場合、メモリ消費量算出手段8は、ステップ506で、ガーベージコレクション実行後の使用メモリ容量の管理用の変数の値を0に変更する。
ステップ507で使用メモリ量の確認イベントが発生した場合には、ステップ508で、メモリ消費量算出手段8は、使用メモリ量の管理用の変数の値を返す。これにより、メモリ消費量算出手段8はメモリ量の管理を行うことができる。
なお、情報記憶制御装置100において、ガーベージコレクション処理前のメモリ10の空き記憶領域の合計量の算出を行う空きメモリ算出手段7を備え、ガーベージコレクション処理要求手段2がガーベージコレクション処理を呼んだ際に、比較手段5がフリーのメモリ領域(ガーベージコレクション処理前のメモリ10の空き記憶領域の合計量)が一定の閾値を超えているかどうかを判定し、判定の結果、ガーベージコレクション制御手段4がガーベージコレクション処理を実行する必要がないと判断した場合には、ガーベージコレクション処理を実行しないという方法を取ることもできる。
実施の形態2の情報記憶制御装置100によれば、情報記憶制御装置100が前回ガーベージコレクション処理が起こってから消費されたメモリ量(メモリ消費量)を算出するメモリ消費量算出手段8を備え、前回ガーベージコレクション処理が起こってから消費したメモリ量(メモリ消費量)が閾値を超えているかどうかを判定する比較手段5を備え、必要がなければガーベージコレクションを実行しないという特徴を持つことによって、アプリケーションプログラムが頻繁にガーベージコレクション処理を呼ぶ場合において、一定の回数のガーベージコレクション処理要求を間引くことができ、全体の実行時間を小さくすることができるという効果がある。
なお、ガーベージコレクションを起こして欲しくない期間にガーベージコレクションが起こってしまうケースもありうるが、閾値を変更チューニングすることによりメモリの大きさに応じて効果的に利用することができる。
また、本実施の形態の発明によれば、逆に、いままでの使用メモリ量を知ることにより、閾値を設ければ、それ以上かどうかで判断することができる。
実施の形態3.
以下、実施の形態3について、図6を用いて説明する。
図6は、本実施の形態に係るガーベージコレクション処理の実行制御フローである。
まず、ガーベージ処理要求について説明する。ステップ601で、アプリケーションプログラム1は、所定の処理の実行に必要なメモリ量を処理実行メモリ量として指定して、ガーベージコレクション処理の呼び出しを要求する。これはアプリケーションプログラム1としては、これから指定した処理実行メモリ量を使用した所定の処理を実行する間は、ガーベージコレクション処理を発生して欲しくない場合に、所定の処理中にガーベージコレクション処理が実行されることを回避するために、前記所定の処理の実行前に要求するものである。通常のOSなどにメモリ要求して利用する場合と異なり、ここで指定した処理実行メモリ量をメモリ10の記憶領域に空けることができなかった場合でも、そのまま所定の処理を動作することができる可能性がある。
アプリケーションプログラム1から、このようなガーベージコレクション処理の呼び出し要求を受けて、ガーベージコレクション処理要求手段2は、ステップS602にて、一定期間の要求回数の保持する値を1増加させて、メモリ10を対象としたガーベージコレクション処理をガーベージコレクション制御手段4に要求する。
次に、メモリ消費量算出と処理要求回数を判断する閾値の設定について説明する。ステップ603で、メモリ消費量算出手段8が、現状のメモリ10を対象として使用メモリ領域の合計量のチェック処理を行い、メモリ10のメモリ消費量の合計量を算出する。この処理は後で詳細に説明する図9で示すように、メモリ10を利用する度に利用したメモリ量をチェックしておき、メモリ10の使用メモリ領域の合計量を計算することができる。例えば、メモリ10には、1Mバイトのメモリ量があることがわかっており、前回のガーベージコレクション処理時に変わったメモリ量、または、初期状態のメモリ量から実際に利用したメモリ量を求めることができる。
閾値との比較とガーベージコレクションの実行制御について説明する。ステップ604で、比較手段5は、ステップ603で得たメモリ10の使用メモリ領域の合計量から、一定期間に行われたガーベージコレクション処理要求回数の閾値を設定する。本実施例では、図8に示したグラフの様に、使用メモリ量が少ない場合には、閾値を大きくし、使用メモリ量が多い場合には、閾値を小さくする。また、下限値を設けて、使用メモリ量が一定未満であれば、閾値は無限大である。さらに、上限値を設けて、使用メモリ量が一定以上であれば、閾値は0である。
ステップ605で、比較手段5は、ステップ602で得た一定期間内のガーベージコレクション処理要求回数と、ステップ604で得た閾値に比べて大きいかどうかを比較する。
ガーベージコレクション制御手段4は、メモリ消費量算出手段8が算出したメモリ10のメモリ消費量の合計量に基づいて閾値を設定し、ガーベージコレクション処理要求回数に応じて、ガーベージコレクション処理要求手段2が要求するガーベージコレクション処理を実行するか否かを制御する。
すなわち、ガーベージコレクション制御手段4は、比較手段5が比較した結果、上述したように、一定期間内のガーベージコレクション処理要求回数が、メモリ10のメモリ消費量の合計量に基づいて求められた閾値未満である場合には、ガーベージコレクション処理を実行せずに終了し、一定期間内のガーベージコレクション処理要求回数が、メモリ10のメモリ消費量の合計量に基づいて求められた閾値以上である場合には、ステップ606でガーベージコレクション処理を実行するように制御する。
ここで、アプリケーションプログラム1に対して実際にガーベージコレクション処理を実行したかどうかや、ガーベージコレクション処理を実行した結果、どの程度、メモリ10に空いた記憶領域があったかなどの値を返しても良いし、返さなくてもよい。
メモリ使用用途により重み付けられたメモリ消費量の算出に関して、図9を用いて、メモリ消費量算出手段8が実行するメモリ消費量(使用メモリ容量)の管理のフローを説明する。
図9は、メモリ10中の使用メモリのチェック方法と重み付け計算を示した図である。まず、メモリ消費量算出手段8は、使用メモリ量の管理用の使用量に関する変数をステップ901で初期化して0とする。
ステップ902でメモリ10使用のイベント待ちに入る。
ステップ903でメモリ10使用イベントが発生すると、ステップ904で、メモリ消費量算出手段8は、使用量が増加した分に対して、重み付け計算を行う。具体的には、メモリの使用用途を確認し、図10に示したメモリ消費量の重み付けテーブルから重み付けの設定値を取得し、使用量に対して積を取る。例えば、メモリ確保されるクラスとして、KeyEvent(1001)を指定されていた場合には、0.1(1006)を重み付けの設定値として取得する。メモリ確保された100バイトであれば、重み付けられた10バイト程度の量として換算する。
ステップS904にて、使用メモリ量の管理用変数の値を大きくする。
このように、メモリ消費量算出手段8は、前回のガーベージコレクション処理が実行された後にメモリの割り当てが行われた場合、割り当てられたメモリ量を重み付けし、累積することによって、累積したメモリ量をメモリ消費量として算出する。
ステップS905で、ガーベージコレクション発生のイベントの場合、メモリ消費量算出手段8は、ステップ906で、ガーベージコレクション実行後の使用メモリ容量の管理用変数値を0に変更する。
ステップS907で使用メモリ量の確認イベントが発生した場合には、ステップ908で、メモリ消費量算出手段8は、使用メモリ量の管理用変数の値を返す。これにより、メモリ消費量算出手段8はメモリ量の管理を行うことができる。
処理要求回数のクリアとガーベージコレクションの遅延実行について説明する。図11は、ガーベージコレクション処理要求手段2が保持するガーベージコレクション処理要求回数を定期にクリアする際に、ガーベージコレクション処理を実行するステップを記載した流れ図である。
まず、ステップS1101にて、一定期間毎に、ガーベージコレクション処理要求回数を0に戻す処理の開始が行われる。一定期間後の処理の呼出は、OSの機能のタイマー処理イベント通知関数を用いても良いし、H/Wのタイマーを用いても良い。
次に、ステップS1102にて、ガーベージコレクション処理要求手段2は、要求回数が0であるか判定を行う。要求回数が0であれば終了する。
要求回数が0でなければ、ステップS1103に進み、ガーベージコレクション処理要求手段2は、要求回数を0に設定し、ガーベージコレクション制御手段4に対して、ガーベージコレクションの処理を実行するか否かの判断が不要であることを示すガーベージコレクション処理要求を行う。
ステップS1105にて、ガーベージコレクション制御手段4は、ガーベージコレクション処理要求手段2からの要求内容を判定し、制御が必要ではないガーベージコレクション処理要求であれば、ステップS1107に進み、ガーベージコレクション処理を実行する。
ステップS1105にて、ガーベージコレクション制御手段4は、ガーベージコレクション処理要求手段2から要求内容を判定し、制御が必要である場合には、ステップS1106にて、上記のガーベージコレクションの判断処理を行う。
実施の形態3の情報記憶制御装置100によれば、メモリの使用用途に関連付けられた重み付けを用いて、前回ガーベージコレクション処理が起こってから消費されたメモリ量(メモリ消費量)を算出するメモリ消費量算出手段8を備え、前回ガーベージコレクション処理が起こってから消費したメモリ量(メモリ消費量)に応じた、ガーベージコレクション処理要求回数が閾値を超えているかどうかを判定する比較手段5を備え、必要がなければガーベージコレクションを実行しないという特徴を持つことによって、アプリケーションプログラムが頻繁にガーベージコレクション処理の要求を行う場合において、メモリ消費量に応じた回数のガーベージコレクション処理要求を間引くことができ、全体の実行時間を小さくすることができるという効果がある。
また、メモリ使用費量の計算において、確保、使用された後に、直ちに開放されるイベント通知用のメモリを少なく重み付けを行うことにより、アプリケーションが行うガーベージコレクション処理要求の必要性をより正確に判断することができる。
さらに、一定時間毎に処理要求回数を0に設定し、その際、ガーベージコレクション処理を実行することで、アプリケーションが要求したガーベージコレクション処理を、完全に無視されることなく、一定時間後には、ガーベージコレクションを実行することを保証することができる。
実施の形態4.
以下、実施の形態4について、図12を用いて説明する。
図12は、本実施の形態に係るガーベージコレクション処理の実行制御フローである。
まず、ガーベージコレクション処理要求について説明する。ステップ1201で、アプリケーションプログラム1は、所定の処理の実行に必要なメモリ量を処理実行メモリ量として指定して、ガーベージコレクション処理の呼び出しを要求する。これはアプリケーションプログラム1としては、これから指定した処理実行メモリ量を使用した所定の処理を実行する間は、ガーベージコレクション処理を発生して欲しくない場合に、所定の処理中にガーベージコレクション処理が実行されることを回避するために、前記所定の処理の実行前に要求するものである。通常のOSなどにメモリ要求して利用する場合と異なり、ここで指定した処理実行メモリ量をメモリ10の記憶領域に空けることができなかった場合でも、そのまま所定の処理を動作することができる可能性がある。
アプリケーションプログラム1から、このようなガーベージコレクション処理の呼び出し要求を受けて、ガーベージコレクション処理要求手段2は、メモリ10を対象としたガーベージコレクション処理をガーベージコレクション制御手段4に要求する。
アプリケーションプログラム1から、このようなガーベージコレクション処理の呼び出し要求を受けて、ガーベージコレクション処理要求手段2は、ステップS1202にて、ガーベージコレクション処理要求回数の増加数を保持する値を1増加させて、メモリ10を対象としたガーベージコレクション処理をガーベージコレクション制御手段4に要求する。
次に、空き領域算出と処理要求回数を判断する閾値の設定について説明する。ステップ1203で、空きメモリ算出手段7が、現状のメモリ10を対象として空き状況のチェック処理を行い、メモリ10の空き記憶領域の合計量を算出する。この処理は先に図3を用いて示したように、メモリ10を利用するたびに利用したメモリ量をチェックしておき、残りのメモリ量からメモリ10の空き記憶領域の合計量を計算することができる。例えば、メモリ10には、1Mバイトのメモリ量があることがわかっており、前回のガーベージコレクション処理時に変わったメモリ量、または、初期状態のメモリ量から実際に利用したメモリ量が800Kバイトであれば、空きメモリ算出手段7は、残りの200Kバイトをメモリ10の空き記憶領域の合計量として計算することができる。ここで、実際には使用した800Kバイトの中にも未使用状態になってしまったものも存在するが、それはガーベージコレクション処理を実行しない限りはわからないものである。
ステップ1204で、比較手段5は、ステップ1203で得たメモリ10の空き記憶領域の合計量から、一定期間に行われたガーベージコレクション処理要求回数の増加分の閾値を設定する。本実施例では、図7に示したグラフの様に、空き記憶領域が少ない場合には、閾値を小さくし、空き記憶領域が多い場合には、閾値を大きくする。また、下限値を設けて、空き記憶領域の容量が一定未満であれば、閾値は0である。さらに、上限値を設けて、空き記憶領域の容量が一定以上であれば、閾値は無限大である。
閾値との比較とガーベージコレクションの実行制御について説明する。ステップ1205で、比較手段5は、ステップ1203で得たメモリ10の空き容量(メモリ10の空き記憶領域の合計量)が要求された処理実行メモリ量に比べて大きいかどうかを比較する。
ガーベージコレクション制御手段4は、空きメモリ算出手段7が算出したメモリ10の空き記憶領域の合計量に基づいて、ガーベージコレクション処理要求の増加回数を判断する閾値を設定し、ガーベージコレクション処理要求回数の増加数に応じて、ガーベージコレクション処理要求手段2が要求するガーベージコレクション処理を実行するか否かを制御する。
すなわち、ガーベージコレクション制御手段4は、比較手段5が比較した結果、上述したように、ガーベージコレクション処理要求回数の増加数が、メモリ10の空き容量の合計量に基づいて求められた閾値以上である場合には、ガーベージコレクション処理を実行せずに終了し、ガーベージコレクション処理要求回数の増加数が、メモリ10のメモリ消費量の合計量に基づいて求められた閾値未満である場合には、ステップ1206でガーベージコレクション処理を実行するように制御する。
ステップ1207にて、再度、ガーベージコレクション処理要求回数をカウントできる様に、ガーベージコレクション処理要求回数の増加数を0に設定して、終了する。
ここで、アプリケーションプログラム1に対して実際にガーベージコレクション処理を実行したかどうかや、ガーベージコレクション処理を実行した結果、どの程度、メモリ10に空いた記憶領域があったかなどの値を返しても良いし、返さなくてもよい。
実施の形態4の情報記憶制御装置100によれば、メモリ空き容量に応じた、ガーベージコレクション処理要求回数の増加数が閾値を超えているかどうかを判定する比較手段5を備え、必要がなければガーベージコレクションを実行しないという特徴を持つことによって、アプリケーションプログラムが頻繁にガーベージコレクション処理の要求を行う場合において、メモリ空き容量に応じた回数のガーベージコレクション処理要求を間引くことができ、全体の実行時間を小さくすることができるという効果がある。
実施の形態5.
実施の形態3では、メモリの使用用途に応じて重み付けを行った使用メモリ量の合計量により、要求回数の閾値を設定したが、重み付けを行わない使用メモリ量の合計により、要求回数の閾値を設定してもよい。
この場合には、S909の処理を省略し、図3と同様に処理する。
実施の形態6.
実施の形態3におけるメモリの使用用途に応じて重み付けを行った使用メモリ量の合計量を、実施の形態2に適用することも有効である。
この場合には、図4の使用メモリチェック処理の際に、実施の形態3と同様の使用用途に応じた重み付けの処理を行う。
本発明は、各実施の形態に記載した以上の要素、方法を組み合わせて利用することが可能であり、組み合わせて利用することによって、より顕著な効果を得ることができる。
ガーベージコレクション処理要求手段2、ガーベージコレクション制御手段4、空きメモリ算出手段7、メモリ消費量算出手段8、比較手段5が行う動作は、H/Wのみでも実施でき、S/Wのみでも実施でき、H/WとS/Wを組み合わせても実施することができる。
すべての実施の形態では、各構成要素の各動作はお互いに関連しており、各構成要素の動作は、上記に示された動作の関連を考慮しながら、一連の動作として置き換えることができる。そして、このように置き換えることにより、方法の発明の実施形態とすることができる。
また、上記各構成要素の動作を、各構成要素の処理と置き換えることにより、プログラムの実施の形態とすることができる。
また、プログラムを、プログラムを記録したコンピュータ読み取り可能な記録媒体に記憶させることで、プログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
プログラムの実施の形態及びプログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態は、すべてコンピュータで動作可能なプログラムにより構成することができる。
プログラムの実施の形態およびプログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態における各処理はプログラムで実行されるが、このプログラムは、記録装置に記録されていて、記録装置から中央処理装置(CPU)に読み込まれ、中央処理装置によって、各プログラムが実行されることになる。
また、各実施の形態のソフトウェアやプログラムは、ROM(READ ONLY MEMORY)に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアとファームウェアとハードウェアとの組み合わせで前述したプログラムの各機能を実現しても構わない。
情報記憶制御装置100の構成図である。 実施の形態1に係るガーベージコレクション処理の実行制御フローである。 空きメモリのチェック方法を示した図である。 実施の形態2に係るガーベージコレクション処理の実行制御フローである。 使用メモリのチェック方法を示した図である。 一定期間の要求回数によるガーベージコレクション判断処理フローを示す図である。 一定期間の要求回数によるガーベージコレクション判断の閾値を示す図である。 一定期間の要求回数によるガーベージコレクション判断の閾値を示す図である。 メモリ消費量の重み付けの処理フローを示す図である。 メモリ消費量の重み付けテーブルを示す図である。 一定期間毎満了の判断スキップの処理フローを示す図である。 要求回数の増加によるガーベージコレクション判断の処理フローを示す図である。
符号の説明
1 アプリケーションプログラム、2 ガーベージコレクション処理要求手段、3 API、4 ガーベージコレクション制御手段、5 比較手段、6 処理系、7 空きメモリ算出手段、8 メモリ消費量算出手段、9 ガーベージコレクション処理、10 メモリ、100 情報記憶制御装置。

Claims (17)

  1. メモリ中の使用されていない記憶領域を回収するガーベージコレクション処理によって、回収した記憶領域をプログラムに割り当てる情報記憶制御装置であって、
    プログラムの実行に必要な記憶領域を有するメモリと、
    ガーベージコレクション処理前のメモリの空き記憶領域の合計量を算出する空きメモリ算出手段と、
    前記メモリを対象としたガーベージコレクション処理を要求するガーベージコレクション処理要求手段と、
    前記空きメモリ算出手段が算出したガーベージコレクション処理前のメモリの空き記憶領域の合計量に基づいて、前記ガーベージコレクション処理要求手段が要求するガーベージコレクション処理を実行するか否かを制御するガーベージコレクション制御手段を備える情報記憶制御装置。
  2. 前記ガーベージコレクション処理要求手段は、所定のプログラムによって実行が予定されている所定の処理中にガーベージコレクション処理が実行されることを回避するために、所定の処理の実行に必要なメモリ量を処理実行メモリ量として指定して、前記所定の処理を実行する前に、前記処理実行メモリ量を回収するためのガーベージコレクション処理を要求する請求項1に記載された情報記憶制御装置。
  3. 前記情報記憶制御装置は、さらに、
    前記空きメモリ算出手段が算出したガーベージコレクション処理前のメモリの空き記憶領域の合計量と前記処理実行メモリ量とを比較する比較手段を備え、
    前記ガーベージコレクション制御手段は、上記比較手段が比較した結果、メモリの空き記憶領域の合計量が前記処理実行メモリ量以上である場合には、ガーベージコレクション処理を実行しないように制御する請求項2に記載された情報記憶制御装置。
  4. 前記情報記憶制御装置は、さらに、
    前記空きメモリ算出手段が算出したガーベージコレクション処理前のメモリの空き記憶領域の合計量と予め定められた閾値とを比較する比較手段を備え、
    前記ガーベージコレクション制御手段は、上記比較手段が比較した結果に基づいて、ガーベージコレクション処理を実行するか否かを制御する請求項1に記載された情報記憶制御装置。
  5. 前記情報記憶制御装置は、さらに、
    前回のガーベージコレクション処理が実行された後にメモリの割り当てが行われた場合、割り当てられたメモリ量を累積することによって、累積したメモリ量をメモリ消費量として算出するメモリ消費量算出手段と、
    前記メモリ消費量算出手段が算出したメモリ消費量と予め定められた閾値とを比較する比較手段を備え、
    前記ガーベージコレクション制御手段は、上記比較手段が比較した結果、前記メモリ消費量が予め定められた閾値以内である場合には、ガーベージコレクション処理を実行しないように制御する請求項1に記載された情報記憶制御装置。
  6. メモリ中の使用されていない記憶領域を回収するガーベージコレクション処理によって、回収した記憶領域をプログラムに割り当てる情報記憶制御方法であって、
    プログラムの実行に必要な記憶領域をメモリに記憶し、
    ガーベージコレクション処理前のメモリの空き記憶領域の合計量を算出し、
    前記メモリを対象としたガーベージコレクション処理を要求し、
    前記算出したガーベージコレクション処理前のメモリの空き記憶領域の合計量に基づいて、前記要求するガーベージコレクション処理を実行するか否かを制御する情報記憶制御方法。
  7. メモリ中の使用されていない記憶領域を回収するガーベージコレクション処理によって、回収した記憶領域をプログラムに割り当てる情報記憶制御プログラムであって、
    プログラムの実行に必要な記憶領域をメモリに記憶する処理と、
    ガーベージコレクション処理前のメモリの空き記憶領域の合計量を算出する処理と、
    前記メモリを対象としたガーベージコレクション処理を要求する処理と、
    前記算出したガーベージコレクション処理前のメモリの空き記憶領域の合計量に基づいて、前記要求するガーベージコレクション処理を実行するか否かを制御する処理とをコンピュータに実行させる情報記憶制御プログラム。
  8. 前記ガーベージコレクション処理要求手段は、ガーベージコレクション処理要求回数を保持し、前記ガーベージコレクション制御手段は、ガーベージコレクション処理要求回数に基づいて、ガーベージコレクション処理を実行するか否かを制御する請求項1に記載された情報記憶制御装置。
  9. 前記ガーベージコレクション制御手段は、ガーベージコレクション処理要求回数がある一定の回数増加した場合に、ガーベージコレクション処理を実行すると判断する請求項8に記載された情報記憶制御装置。
  10. 前記ガーベージコレクション制御手段は、空きメモリ算出手段が算出したガーベージコレクション処理前のメモリ空き記憶領域の合計量に基づいて、ガーベージコレクション処理を実行すると判断する増加回数を決定する請求項9に記載された情報記憶制御装置。
  11. 前記情報記憶制御装置は、さらに、
    前回のガーベージコレクション処理が実行された後にメモリの割り当てが行われた場合、割り当てられたメモリ量を累積することによって、累積したメモリ量をメモリ消費量として算出するメモリ消費量算出手段を備え
    前記ガーベージコレクション制御手段は、メモリ消費量算出手段が算出したメモリ消費量に基づいて、ガーベージコレクション処理を実行すると判断する増加回数を決定する請求項9に記載された情報記憶制御装置。
  12. 前記メモリ消費量算出手段は、メモリの使用種別を判断し、各メモリ量に対して重み付けを行うことでメモリ消費量を算出し、
    前記ガーベージコレクション制御手段は、メモリ消費量算出手段が算出した重み付けされたメモリ消費量に基づいて、ガーベージコレクション処理を実行すると判断する増加回数を決定する請求項11に記載された情報記憶制御装置。
  13. 前記ガーベージコレクション処理要求手段は、ガーベージコレクション処理要求回数を一定期間毎に保持し、前記ガーベージコレクション制御手段は、ガーベージコレクション処理の一定期間毎の要求回数が閾値以内である場合には、ガーベージコレクション処理を実行すると判断する請求項8に記載された情報記憶制御装置。
  14. 前記ガーベージコレクション制御手段は、空きメモリ算出手段が算出したガーベジコレクション処理前のメモリ空き記憶領域の合計量に基づいて、ガーベージコレクション処理を実行すると判断する一定期間毎要求回数の閾値を決定する請求項13に記載された情報記憶制御装置。
  15. 前記情報記憶制御装置は、さらに、
    前回のガーベージコレクション処理が実行された後にメモリの割り当てが行われた場合、割り当てられたメモリ量を累積することによって、累積したメモリ量をメモリ消費量として算出するメモリ消費量算出手段を備え
    前記ガーベージコレクション制御手段は、メモリ消費量算出手段が算出したメモリ消費量に基づいて、ガーベージコレクション処理を実行すると判断する一定期間毎要求回数の閾値を決定する請求項13に記載された情報記憶制御装置。
  16. 前記メモリ消費量算出手段は、メモリの使用種別を判断し、各メモリ量に対して重み付けを行うことでメモリ消費量を算出し、
    前記ガーベージコレクション制御手段は、メモリ消費量算出手段が算出した重み付けされたメモリ消費量に基づいて、ガーベージコレクション処理を実行すると判断する一定期間毎要求回数の閾値を決定する請求項15に記載された情報記憶制御装置。
  17. 前記ガーベージコレクション処理要求手段は、一定期間毎に保持したガーベージコレクション処理要求回数を、一定時間ごとに初期値0に設定し直し、ガーベージコレクション制御手段に対して、ガーベージコレクション処理を実行するか否か判断することが不要であるガーベージコレクション処理要求を行い、ガーベージコレクション制御手段は、ガーベージコレクション処理要求手段の前記要求により、ガーベージコレクション処理を行う請求項13に記載された情報記憶制御装置。
JP2004142425A 2003-06-09 2004-05-12 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム Expired - Fee Related JP3688286B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004142425A JP3688286B2 (ja) 2003-06-09 2004-05-12 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003163715 2003-06-09
JP2004142425A JP3688286B2 (ja) 2003-06-09 2004-05-12 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム

Publications (2)

Publication Number Publication Date
JP2005025727A true JP2005025727A (ja) 2005-01-27
JP3688286B2 JP3688286B2 (ja) 2005-08-24

Family

ID=34196875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004142425A Expired - Fee Related JP3688286B2 (ja) 2003-06-09 2004-05-12 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム

Country Status (1)

Country Link
JP (1) JP3688286B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007034769A1 (ja) * 2005-09-20 2007-03-29 National Institute Of Advanced Industrial Science And Technology ゼロガベージコレクション通信仲介装置
JP2011209963A (ja) * 2010-03-29 2011-10-20 Mitsubishi Electric Corp メモリ制御装置及びメモリ制御方法
JP2011253405A (ja) * 2010-06-03 2011-12-15 Nec Casio Mobile Communications Ltd 電子機器、及びプログラム
US9032178B2 (en) 2012-02-28 2015-05-12 Ricoh Company, Ltd. Electronic apparatus for memory allocation and reorganization
JP2016525249A (ja) * 2013-11-14 2016-08-22 華為技術有限公司Huawei Technologies Co.,Ltd. ガベージデータを収集するための方法及び記憶装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61202250A (ja) * 1985-03-06 1986-09-08 Hitachi Ltd デ−タ領域管理方式
JPS63131246A (ja) * 1986-11-20 1988-06-03 Fujitsu Ltd ペ−ジ解放装置
JPS63231643A (ja) * 1987-03-20 1988-09-27 Fujitsu Ltd 実時間ガ−ベジコレクシヨン方式
JPH04220735A (ja) * 1990-12-21 1992-08-11 Fuji Xerox Co Ltd ガーベッジコレクションシステム
JPH09188011A (ja) * 1996-01-09 1997-07-22 Brother Ind Ltd 記憶手段の管理装置及び記憶手段の管理方法
JPH11312117A (ja) * 1998-04-28 1999-11-09 Fujitsu Ltd メモリ管理装置およびメモリ管理プログラムを記憶した記憶媒体
JP2000339214A (ja) * 1999-05-28 2000-12-08 Nec Corp 実時間メモリ管理システム、及び実時間メモリ管理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61202250A (ja) * 1985-03-06 1986-09-08 Hitachi Ltd デ−タ領域管理方式
JPS63131246A (ja) * 1986-11-20 1988-06-03 Fujitsu Ltd ペ−ジ解放装置
JPS63231643A (ja) * 1987-03-20 1988-09-27 Fujitsu Ltd 実時間ガ−ベジコレクシヨン方式
JPH04220735A (ja) * 1990-12-21 1992-08-11 Fuji Xerox Co Ltd ガーベッジコレクションシステム
JPH09188011A (ja) * 1996-01-09 1997-07-22 Brother Ind Ltd 記憶手段の管理装置及び記憶手段の管理方法
JPH11312117A (ja) * 1998-04-28 1999-11-09 Fujitsu Ltd メモリ管理装置およびメモリ管理プログラムを記憶した記憶媒体
JP2000339214A (ja) * 1999-05-28 2000-12-08 Nec Corp 実時間メモリ管理システム、及び実時間メモリ管理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007034769A1 (ja) * 2005-09-20 2007-03-29 National Institute Of Advanced Industrial Science And Technology ゼロガベージコレクション通信仲介装置
JP2011209963A (ja) * 2010-03-29 2011-10-20 Mitsubishi Electric Corp メモリ制御装置及びメモリ制御方法
JP2011253405A (ja) * 2010-06-03 2011-12-15 Nec Casio Mobile Communications Ltd 電子機器、及びプログラム
US9032178B2 (en) 2012-02-28 2015-05-12 Ricoh Company, Ltd. Electronic apparatus for memory allocation and reorganization
JP2016525249A (ja) * 2013-11-14 2016-08-22 華為技術有限公司Huawei Technologies Co.,Ltd. ガベージデータを収集するための方法及び記憶装置
JP2017123177A (ja) * 2013-11-14 2017-07-13 華為技術有限公司Huawei Technologies Co.,Ltd. ガベージデータを収集するための方法及び記憶装置
US10303600B2 (en) 2013-11-14 2019-05-28 Huawei Technologies Co., Ltd. Method and storage device for collecting garbage data

Also Published As

Publication number Publication date
JP3688286B2 (ja) 2005-08-24

Similar Documents

Publication Publication Date Title
US7149866B2 (en) Free item distribution among multiple free lists during garbage collection for more efficient object allocation
US9361300B2 (en) Controlling filling levels of storage pools
US7565507B2 (en) Cooperative memory management allowing program request and release memory as needed
US20140380017A1 (en) Memory management and method for allocation using free-list
US8051265B2 (en) Apparatus for managing memory in real-time embedded system and method of allocating, deallocating and managing memory in real-time embedded system
CN110018899B (zh) 回收内存的方法及装置
US8180991B2 (en) Adaptive memory allocation
EP1736885A2 (en) Method for managing a memory in a mobile terminal
JP2004005486A (ja) コンピュータアプリケーションのメモリ使用状況を最適化する方法
JP2007157131A (ja) ガベージ・コレクション対応の仮想マシンにおいて、将来のメモリ不足例外を自動予測する方法、コンピュータ読み取り可能な媒体、及びコンピューティング・デバイス
US7822938B2 (en) System and method for performing garbage collection based on unmanaged memory allocations
CN114207571B (zh) 计算装置及其操作方法
US20070180002A1 (en) Method and apparatus for reducing object pre-tenuring overhead in a generational garbage collector
CN111857992B (zh) 一种Radosgw模块中线程资源分配方法和装置
CN109062666A (zh) 一种虚拟机集群管理方法及相关装置
JP3688286B2 (ja) 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム
CN112631504A (zh) 利用堆外内存实现本地缓存的方法和装置
JP2004030567A (ja) キューを維持するための方法及び装置
JP2006107197A (ja) メモリ制御方法およびプログラムならびに端末装置
CN112131005B (zh) 一种资源调整策略确定方法和装置
CN111090627B (zh) 基于池化的日志存储方法、装置、计算机设备及存储介质
US20030084265A1 (en) Preemptive memory-block splitting
JP2008257607A (ja) ログファイル保存装置及びログファイル管理方法
EP2386957B1 (en) Apparatus and method for managing memory in consideration of user response time
CN110750330A (zh) 一种虚拟机创建方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041206

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20041207

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20041217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050511

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050523

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: 20050607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050607

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: 20080617

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090617

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100617

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100617

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110617

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees