(57)【要約】【課題】オブジェクトプーリングが有効なオブジェクトを自動的に判定して、オブジェクト生成に必要な処理ステップ数を削減する。【解決手段】オブジェクト管理部２０は、オブジェクト管理テーブル４０を参照することにより、生成・消去頻度の高いクラスの属性を“プール”としてプーリング対象とする。オブジェクト回収部３０は、属性が“プール”となっているクラスのオブジェクトは消去しない。そのため、生成・消去が煩雑に行われるオブジェクトは、予めプーリング対象として設定されていなくても自動的にオブジェクトプーリングが実施され、同一のオブジェクトの生成が何度も繰り返されることを防いでオブジェクト生成に必要な処理ステップ数を削減することが可能となる。【選択図】　　　図１
2004078651.tif 000002
【特許請求の範囲】
【請求項１】
一度生成したオブジェクトを実行状態でなくなった後も消去せずに保存しておき、次にそのオブジェクトが必要となったときに生成済みのオブジェクトを再利用するためのオブジェクトプーリング装置であって、
プーリング対象となっているクラスのオブジェクトの一覧を示すためのオブジェクトプーリングテーブルと、
オブジェクトのクラスがプーリング対象となっているか否かの属性およびオブジェクトの生成・消去の頻度に関する情報を記憶するためのオブジェクト管理テーブルと、
前記オブジェクト管理テーブルに記憶されたオブジェクトの生成・消去頻度情報に基づいて、オブジェクトの生成・消去頻度を監視し、該生成・消去頻度が予め設定されている頻度閾値よりも大きい場合、当該クラスをプーリング対象に設定するオブジェクト管理手段と、
実行状態ではなくなったオブジェクトの消去を行う際に、前記オブジェクト管理テーブルを参照することにより、プーリング対象となっているクラスのオブジェクトについては消去を行わないようにするオブジェクト回収手段と、
を備えたオブジェクトプーリング装置。
【請求項２】
前記オブジェクト管理手段は、アプリケーションプログラムからのオブジェクト生成要求を受けた場合、前記オブジェクト管理テーブルにおける、生成要求を受けたクラスの属性がプーリング対象でないことを示している場合は、当該クラスの生成カウントを１つ増加させた後に、生成要求されたオブジェクトを生成して生成したオブジェクトのリファレンスをアプリケーションプログラムに返却し、生成要求を受けたクラスの属性がプーリング対象であることを示している場合は、前記オブジェクトプーリングテーブルから未使用のオブジェクトを検索し、未使用のオブジェクトを発見した場合はそのオブジェクトのリファレンスをアプリケーションプログラムに返却しオブジェクトプーリングテーブル上での該オブジェクトの属性を使用中とし、前記オブジェクトプーリングテーブルから未使用のオブジェクトが発見できず該テーブル上の空きレコードが存在した場合は、オブジェクトを生成してそのオブジェクトのリファレンスをオブジェクトプーリングテーブルに保存しオブジェクトプーリングテーブルにおける該オブジェクトの属性を使用中とするとともにそのオブジェクトのリファレンスをアプリケーションプログラムに返却し、未使用のオブジェクトも該テーブル上の空きレコードも存在しない場合は、生成要求されたオブジェクトを生成しそのオブジェクトのリファレンスをアプリケーションプログラムに返却する請求項１記載のオブジェクトプーリング装置。
【請求項３】
前記オブジェクト管理手段は、一定時間ごとに、前記オブジェクト管理テーブルの生成カウントおよび消去カウントを監視し、これらの値のいずれかが生成・消去閾値を超えている場合は前記オブジェクト管理テーブルにおける閾値カウントを１増加させ、該閾値カウントが予め設定された頻度閾値を超えた場合、当該クラスの属性をプーリング対象である旨に変更するとともに当該クラスのオブジェクトプーリングテーブルを生成させ、前記一定時間が経過すると前記生成カウントおよび前記消去カウントをそれぞれ０に設定する請求項２記載のオブジェクトプーリング装置。
【請求項４】
一度生成したオブジェクトを実行状態でなくなった後も消去せずに保存しておき、次にそのオブジェクトが必要となったときに生成済みのオブジェクトを再利用するためのオブジェクトプーリング方法であって、
オブジェクトの生成・消去の際に、オブジェクトの生成・消去の頻度に関する情報をオブジェクト管理テーブルに記憶するステップと、
前記オブジェクト管理テーブルに記憶されたオブジェクトの生成・消去頻度情報に基づいて、オブジェクトの生成・消去頻度を監視するステップと、
該生成・消去頻度が予め設定されている頻度閾値よりも大きい場合、当該クラスをプーリング対象に設定するステップと、
実行状態ではなくなったオブジェクトの消去を行う際に、プーリング対象となっているクラスのオブジェクトについては消去を行わないようにするステップと、を備えたオブジェクトプーリング方法。
【請求項５】
前記オブジェクトの生成・消去の頻度に関する情報をオブジェクト管理テーブルに記憶するステップが、
アプリケーションプログラムからのオブジェクト生成要求を受けた場合、前記オブジェクト管理テーブルにおける、生成要求を受けたクラスの属性がプーリング対象でないことを示している場合は、当該クラスの生成カウントを１つ増加させた後に、生成要求されたオブジェクトを生成して生成したオブジェクトのリファレンスをアプリケーションプログラムに返却するステップと、
生成要求を受けたクラスの属性がプーリング対象であることを示している場合は、前記オブジェクトプーリングテーブルから未使用のオブジェクトを検索し、未使用のオブジェクトを発見した場合はそのオブジェクトのリファレンスをアプリケーションプログラムに返却し、オブジェクトプーリングテーブル上での該オブジェクトの属性を使用中とするステップと、
前記オブジェクトプーリングテーブルから未使用のオブジェクトが発見できず該テーブル上の空きレコードが存在した場合は、オブジェクトを生成してそのオブジェクトのリファレンスをオブジェクトプーリングテーブルに保存し、オブジェクトプーリングテーブル上での該オブジェクトの属性を使用中とするとともにそのオブジェクトのリファレンスをアプリケーションプログラムに返却するステップと、
未使用のオブジェクトも該テーブル上の空きのレコードも存在しない場合は、生成要求されたオブジェクトを生成しそのオブジェクトのリファレンスをアプリケーションプログラムに返却するステップとから構成されている請求項４記載のオブジェクトプーリング方法。
【請求項６】
前記オブジェクトの生成・消去の頻度に関する情報をオブジェクト管理テーブルに記憶するステップが、
一定時間ごとに、前記オブジェクト管理テーブルの生成カウントおよび消去カウントを監視し、これらの値のいずれかが生成・消去閾値を超えている場合は前記オブジェクト管理テーブルにおける閾値カウントを１増加させるステップと、
該閾値カウントが予め設定された頻度閾値を超えた場合、当該クラスの属性をプーリング対象である旨に変更するとともに当該クラスのオブジェクトプーリングテーブルを生成させるステップと、
前記一定時間が経過すると前記生成カウントおよび前記消去カウントをそれぞれ０に設定するステップとをさらに備えた請求項５記載のオブジェクトプーリング方法。
【請求項７】
一度生成したオブジェクトを実行状態でなくなった後も消去せずに保存しておき、次にそのオブジェクトが必要となったときに生成済みのオブジェクトを再利用するためのオブジェクトプーリング方法をコンピュータに実行させるためのプログラムであって、
オブジェクトの生成・消去の際に、オブジェクトの生成・消去の頻度に関する情報をオブジェクト管理テーブルに記憶する処理と、
前記オブジェクト管理テーブルに記憶されたオブジェクトの生成・消去頻度情報に基づいて、オブジェクトの生成・消去頻度を監視する処理と、
該生成・消去頻度が予め設定されている頻度閾値よりも大きい場合、当該クラスをプーリング対象に設定する処理と、
実行状態ではなくなったオブジェクトの消去を行う際に、プーリング対象となっているクラスのオブジェクトについては消去を行わないようにする処理とをコンピュータに実行させるためのプログラム。
【請求項８】
前記オブジェクトの生成・消去の頻度に関する情報をオブジェクト管理テーブルに記憶する処理が、
アプリケーションプログラムからのオブジェクト生成要求を受けた場合、前記オブジェクト管理テーブルにおける、生成要求を受けたクラスの属性がプーリング対象でないことを示している場合は、当該クラスの生成カウントを１つ増加させた後に、生成要求されたオブジェクトを生成して生成したオブジェクトのリファレンスをアプリケーションプログラムに返却する処理と、
生成要求を受けたクラスの属性がプーリング対象であることを示している場合は、前記オブジェクトプーリングテーブルから未使用のオブジェクトを検索し、未使用のオブジェクトを発見した場合はそのオブジェクトのリファレンスをアプリケーションプログラムに返却し、オブジェクトプーリングテーブル上での該オブジェクトの属性を使用中とする処理と、
前記オブジェクトプーリングテーブルから未使用のオブジェクトが発見できず該テーブル上の空きレコードが存在した場合は、オブジェクトを生成してそのオブジェクトのリファレンスをオブジェクトプーリングテーブルに保存し、オブジェクトプーリングテーブル上での該オブジェクトの属性を使用中とするとともにそのオブジェクトのリファレンスをアプリケーションプログラムに返却する処理と、
未使用のオブジェクトも該テーブル上の空きのレコードも存在しない場合は、生成要求されたオブジェクトを生成しそのオブジェクトのリファレンスをアプリケーションプログラムに返却する処理とから構成されている請求項７記載のプログラム。
【請求項９】
前記オブジェクトの生成・消去の頻度に関する情報をオブジェクト管理テーブルに記憶する処理が、
一定時間ごとに、前記オブジェクト管理テーブルの生成カウントおよび消去カウントを監視し、これらの値のいずれかが生成・消去閾値を超えている場合は前記オブジェクト管理テーブルにおける閾値カウントを１増加させる処理と、
該閾値カウントが予め設定された頻度閾値を超えた場合、当該クラスの属性をプーリング対象である旨に変更するとともに当該クラスのオブジェクトプーリングテーブルを生成させる処理と、
前記一定時間が経過すると前記生成カウントおよび前記消去カウントをそれぞれ０に設定する処理とをさらに備えた請求項８記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する分野】
本発明は、複数のクラス、複数のオブジェクト、オブジェクト管理機能、オブジェクト回収機能、オブジェクト管理テーブル、およびオブジェクトプーリングテーブルを構成要素とする仮想命令コード実行環境において、一度生成したオブジェクトを実行状態でなくなった後も消去せずに保存しておき、次にそのオブジェクトが必要となったときに生成済みのオブジェクトを再利用するオブジェクトプーリング装置および方法およびプログラムに関する。
【０００２】
【従来の技術】
複数のクラス、複数のオブジェクト、オブジェクト管理機能、オブジェクト回収機能、オブジェクト管理テーブル、およびオブジェクトプーリングテーブルを構成要素とするＪａｖａ（登録商標）の仮想マシン（Ｊａｖａ　ＶＭ）等の既存の仮想命令コード実行環境では、オブジェクトの生成には、オブジェクトの大きさに応じた時間が必要となっており、生成・消去が頻繁に起きるオブジェクトが存在する場合、プログラムの実行効率が悪くなっていた。
【０００３】
このような問題を解消するため、一度生成したオブジェクトを実行状態でなくなった後も消去せずに保存しておき、次にそのオブジェクトが必要となったときに生成済みのオブジェクトを再利用するオブジェクトプーリング方法がアプリケーションプログラム側で一般に行われている。しかし、生成した全てのオブジェクトを全て保存したのでは不必要な記憶容量を消費することとなり現実的ではない。そのため、生成したオブジェクトのうち再度使用される可能性の高いオブジェクトのみを保存するようにしなければならない。従来のオブジェクトプーリング装置では、プログラマがアプリケーションプログラムを設計する際に、オブジェクトプーリングの対象とするオブジェクトを見極め、そのオブジェクトをプーリングするか否かを予め指定しなければならなかった。
【０００４】
しかし、このような従来のオブジェクトプーリング装置では、アプリケーションプログラムの設計の際にプーリング対象のオブジェクトを設定しているため、プーリングの対象とされなかったオブジェクトが煩雑に使用された場合、このオブジェクトの生成が何度も行われることになり、オブジェクト生成に必要な処理ステップ数が増大してしまうことになる。
【０００５】
【発明が解決しようとする課題】
上述した従来のオブジェクトプーリング装置では、プーリング対象として予め設定されたオブジェクトのみを保存するようにしているため、プーリング対象となっていないオブジェクトが煩雑に使用されるとオブジェクト生成に必要な処理ステップ数が増大してしまうという問題点があった。
【０００６】
本発明の目的は、オブジェクトプーリングが有効なオブジェクトを自動的に判定してオブジェクトプーリングを行うことにより、オブジェクト生成に必要な処理ステップ数を削減することができるオブジェクトプーリング装置を提供することである。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明のオブジェクトプーリング装置は、一度生成したオブジェクトを実行状態でなくなった後も消去せずに保存しておき、次にそのオブジェクトが必要となったときに生成済みのオブジェクトを再利用するためのオブジェクトプーリング装置であって、
プーリング対象となっているクラスのオブジェクトの一覧を示すためのオブジェクトプーリングテーブルと、
オブジェクトのクラスがプーリング対象となっているか否かの属性およびオブジェクトの生成・消去の頻度に関する情報を記憶するためのオブジェクト管理テーブルと、
前記オブジェクト管理テーブルに記憶されたオブジェクトの生成・消去頻度情報に基づいて、オブジェクトの生成・消去頻度を監視し、該生成・消去頻度が予め設定されている頻度閾値よりも大きい場合、当該クラスをプーリング対象に設定するオブジェクト管理手段と、
実行状態ではなくなったオブジェクトの消去を行う際に、前記オブジェクト管理テーブルを参照することにより、プーリング対象となっているクラスのオブジェクトについては消去を行わないようにするオブジェクト回収手段とを備えている。
【０００８】
本発明によれば、オブジェクト管理手段は、あるクラスののオブジェクト管理テーブルにおけるオブジェクトの生成・消去の頻度に関する情報がシステム起動時に指定された頻度閾値よりも大きい場合には、当該クラスの属性をプーリング対象である旨に変更し、オブジェクト回収手段は、属性がプーリング対象である旨を示しているクラスのオブジェクトを回収しないようにしている。そのため、生成・消去頻度の高いオブジェクトに対しては、予めプーリング対象として設定されていなくても自動的にオブジェクトプーリングが実施され、同一のオブジェクトの生成が何度も繰り返されることを防いでオブジェクト生成に必要な処理ステップ数を削減することができる。
【０００９】
また、本発明のオブジェクトプーリング装置では、前記オブジェクト管理手段は、アプリケーションプログラムからのオブジェクト生成要求を受けた場合、前記オブジェクト管理テーブルにおける、生成要求を受けたクラスの属性がプーリング対象でないことを示している場合は、当該クラスの生成カウントを１つ増加させた後に、生成要求されたオブジェクトを生成して生成したオブジェクトのリファレンスをアプリケーションプログラムに返却し、生成要求を受けたクラスの属性がプーリング対象であることを示している場合は、前記オブジェクトプーリングテーブルから未使用のオブジェクトを検索し、未使用のオブジェクトを発見した場合はそのオブジェクトのリファレンスをアプリケーションプログラムに返却しオブジェクトプーリングテーブル上での該オブジェクトの属性を使用中とし、前記オブジェクトプーリングテーブルから未使用のオブジェクトが発見できず該テーブル上の空きレコードが存在した場合は、オブジェクトを生成してそのオブジェクトのリファレンスをオブジェクトプーリングテーブルに保存しオブジェクトプーリングテーブルにおける該オブジェクトの属性を使用中とするとともにそのオブジェクトのリファレンスをアプリケーションプログラムに返却し、未使用のオブジェクトも該テーブル上の空きレコードも存在しない場合は、生成要求されたオブジェクトを生成しそのオブジェクトのリファレンスをアプリケーションプログラムに返却するようにしてもよい。
【００１０】
さらに、本発明のオブジェクトプーリング装置では、前記オブジェクト管理手段は、一定時間ごとに、前記オブジェクト管理テーブルの生成カウントおよび消去カウントを監視し、これらの値のいずれかが生成・消去閾値を超えている場合は前記オブジェクト管理テーブルにおける閾値カウントを１増加させ、該閾値カウントが予め設定された頻度閾値を超えた場合、当該クラスの属性をプーリング対象である旨に変更するとともに当該クラスのオブジェクトプーリングテーブルを生成させ、前記一定時間が経過すると前記生成カウントおよび前記消去カウントをそれぞれ０に設定するようにしてもよい。
【００１１】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。なお、本実施形態では、Ｊａｖａ　ＶＭを例として用いている。
【００１２】
図１は、本発明の一実施形態のオブジェクトプーリング装置の構成を示すブロック図である。本実施形態のオブジェクトプーリング装置は、予めプーリング対象として設定されたクラスのオブジェクトだけでなく、生成・消去の頻度が高いオブジェクトのクラスを自動的にプーリング対象とするようにして同じオブジェクトの生成・消去が繰り返されることを防ぐようにしている。
【００１３】
本実施形態のオブジェクトプーリング装置は、図１に示されるように、オブジェクト管理部２０と、オブジェクト回収部３０と、オブジェクト管理テーブル４０と、オブジェクトプーリングテーブル５０１〜５０３とから構成され、さらに複数のクラス７０１〜７０３、複数のオブジェクト６０１〜６０３とを構成要素として仮想命令コード実行環境を形成している。
【００１４】
オブジェクト管理部２０は、オブジェクト管理テーブル４０に記憶されたオブジェクトの生成・消去頻度情報に基づいて、オブジェクトの生成・消去頻度を監視し、該生成・消去頻度が予め設定されている頻度閾値よりも大きい場合、そのクラスをプーリング対象に設定する。
【００１５】
オブジェクト回収部３０は、実行状態ではなくなった、つまりアプリケーションプログラム１０により利用されなくなったオブジェクトの消去を行う際に、オブジェクト管理テーブル４０を参照することにより、プーリング対象となっているクラスのオブジェクトについては消去を行わないようにする。
【００１６】
オブジェクト管理テーブル４０は、各クラス毎に、属性、生成カウント、消去カウント、閾値カウントを格納している。ここで、属性とは、そのクラスのオブジェクトがプーリング対象となっているか否かを示していて、この属性が“通常”の場合にはプーリング対象とはなっておらず、この属性が“プール”の場合にはプーリング対象となっていることを示している。また、生成カウントは一定時間内にそのクラスのオブジェクトが生成された回数を示し、消去カウントは一定時間（例えば１０秒）内にそのクラスのオブジェクトが消去された回数を示す。そして、閾値カウントは、一定時間内の生成回数または消去回数が、生成・消去閾値（たとえば、１００）を越えた回数を示している。
【００１７】
オブジェクトプーリングテーブル５０１〜５０３は、それぞれクラスごとに生成され、クラス名の名前を付与され、プーリング対象となっているオブジェクトの一覧を示すためのテーブルであり、プーリング対象となっているオブジェクトの情報が、それぞれのオブジェクトが使用中であるのか未使用であるのかを示す情報とともに記憶されている。また、このオブジェクトプーリングテーブル５０１〜５０３のサイズを例えばシステム起動時に指定することにより、プーリングを行うオブジェクトの数の上限を決定することができる。オブジェクト６０１〜６０３は、従来のＪａｖａ　ＶＭでのオブジェクトに、そのオブジェクトがプーリング対象であるかどうかのフラグを加えたものである。通常のオブジェクト生成では、このフラグは０に設定され、プーリングされたオブジェクトでは、オブジェクトプーリングテーブルのレコードに対応したインデックスの値が設定される。
【００１８】
次に、本実施形態のオブジェクトプーリング装置におけるオブジェクト生成の処理を図２を参照して以下に説明する。
【００１９】
（ステップ１０１）先ず、アプリケーションプログラム１０がオブジェクト管理部２０にオブジェクト生成指示（たとえば、クラスＢ）を出す。
【００２０】
（ステップ１０２）次に、オブジェクト管理部２０がオブジェクト管理テーブルの当該クラス（たとえば、クラスＢ）の項目を検索する。当該クラスの属性が“通常”の場合、オブジェクト管理部２０は、そのクラスの生成カウントを１つ増加させ、ステップ４の処理に移る。当該クラスの属性が“プール”の場合、オブジェクト管理部２０は、ステップ１０３の処理に移る。
【００２１】
（ステップ１０３）オブジェクト管理部２０は、オブジェクトプーリングテーブル５０２から、未使用のオブジェクトを検索する。
【００２２】
（１０３―１）　未使用のオブジェクトが発見された場合、オブジェクト管理部２０は、オブジェクトプーリングテーブル５０２のそのオブジェクトの属性を“使用中”に変更し、そのオブジェクトのリファレンスをアプリケーションプログラム１０に返却する。
【００２３】
（１０３―２）　未使用のオブジェクトが発見されない場合、オブジェクト管理部２０は、オブジェクトプーリングテーブル５０２上で空きレコードを検索する。
【００２４】
（１０３―２―１）　空きレコードが発見された場合、オブジェクト管理部２０は、指定されたクラスのオブジェクトを新規に生成しプーリング対象であるかどうかのフラグをオブジェクトプーリングテーブル５０２のレコードに対応したインデックスの値を設定し、そのリファレンスをオブジェクトプーリングテーブル５０２に登録しオブジェクトプーリングテーブル５０２上での該オブジェクトの属性を使用中として、そのリファレンスをアプリケーションプログラム１０に返却する。
【００２５】
（１０３―２―２）　空きレコードが発見されない場合、オブジェクト管理部２０は、ステップ１０４の処理に移る。
【００２６】
（ステップ１０４）オブジェクト管理部２０は、指定されたクラスのオブジェクトを新規に生成しプーリング対象であるかどうかのフラグを０に設定し、そのリファレンスをアプリケーションプログラム１０に返却する。
【００２７】
次に、本実施形態のオブジェクトプーリング装置におけるオブジェクト管理テーブル４０の更新処理を図３を参照して以下に説明する。
【００２８】
（ステップ２０１）　オブジェクト管理部２０は、一定時間（たとえば、１０秒）ごとにオブジェクト管理テーブル４０の生成カウントおよび消去カウントをリセットし、その際これらのカウンタ値がシステム起動時に指定された生成・消去閾値（たとえば、１００）を超えている場合は閾値カウントを１増加させる。さらにオブジェクト管理部２０は、閾値カウントがシステム起動時に指定された頻度閾値（たとえば、１０）を超えている場合は当該クラスの属性を“プール”に変更するとともに当該クラスのオブジェクトプーリングテーブル５０１〜５０３を生成する。そして、最後にオブジェクト管理部２０は、一定時間が経過すると生成カウントおよび消去カウントをそれぞれ０に設定する。
【００２９】
尚、一度閾値カウントが１０を越えて属性が“プール”となったクラスの属性は永久的に“プール”のままとなる。
【００３０】
次に、本実施形態のオブジェクトプーリング装置におけるオブジェクト消去の処理を図４を参照して以下に説明する。
【００３１】
（ステップ３０１）　オブジェクト回収部３０は、実行環境において不到達と判定されたオブジェクトがあるとオブジェクト消去のための処理を開始する。
【００３２】
ここで、不到達なオブジェクトとは、ｓｔａｔｉｃ属性のオブジェクト、もしくは、Ｊａｖａ　ｓｔａｃｋに格納されたローカル変数をルートとし、それらからのリファレンスを再帰的に辿ることによって到達できないオブジェクトのことを意味している。
【００３３】
（ステップ３０２）　次に、オブジェクト回収部３０は、不到達であると判定されたオブジェクトのクラスのオブジェクト管理テーブル４０における属性が“通常”の場合、そのオブジェクトをメモリから消去し、オブジェクト管理テーブル４０の当該オブジェクトのクラスの消去カウントを１増加させる。オブジェクト管理テーブル４０における属性が“プール”の場合、オブジェクト回収部３０は、そのオブジェクトをメモリから消去せずにそのままとし、そのオブジェクトがプーリング対象であるかどうかを示すフラグ内容に対応したオブジェクトプーリングテーブル５０１〜５０３のレコードが存在する場合、そのオブジェクトの属性を「未使用」とする。
【００３４】
本実施形態のオブジェクトプーリング装置によれば、オブジェクト管理部２０は、あるクラスのオブジェクト管理テーブル４０における閾値カウントがシステム起動時に指定された頻度閾値（たとえば、１０）を超えている場合には、当該クラスの属性を“プール”に変更し、オブジェクト回収部３０は、属性が“プール”となっているクラスのオブジェクトを消去しないようにしている。そのため、生成・消去頻度の高いクラスのオブジェクトに対しては、予めプーリング対象として設定されていなくても自動的にオブジェクトプーリングが実施され、同一のオブジェクトの生成が何度も繰り返されることを防いでオブジェクト生成に必要な処理ステップ数を削減することが可能となる。
【００３５】
また、図には示されていないが、本実施形態のオブジェクトプーリング装置は、上記で説明したオブジェクトプーリング方法を実行するためのプログラムを記録した記録媒体を備えている。この記録媒体は磁気ディスク、半導体メモリまたはその他の記録媒体であってもよい。このプログラムは、記録媒体からオブジェクトプーリング装置に読み込まれ、オブジェクトプーリング装置の動作を制御する。具体的には、オブジェクトプーリング装置内のＣＰＵがこのプログラムの制御によりオブジェクトプーリング装置のハードウェア資源に特定の処理を行うように指示することにより上記の処理が実現される。
【００３６】
【発明の効果】
以上説明したように、本発明によれば、生成・消去頻度の高いクラスのオブジェクトに対しては、予めプーリング対象として設定されていなくても自動的にオブジェクトプーリングを実施することにより、同一のオブジェクトの生成が何度も繰り返されることを防いでオブジェクト生成に必要な処理ステップ数を削減することができるという効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態の実施形態のオブジェクトプーリング装置の構成を示すブロック図である。
【図２】本発明の一実施形態のオブジェクトプーリング装置におけるオブジェクト生成の処理を説明するための図である。
【図３】本発明の一実施形態のオブジェクトプーリング装置におけるオブジェクト管理テーブル更新の処理を説明するための図である。
【図４】本発明の一実施形態のオブジェクトプーリング装置におけるオブジェクト消去の処理を説明するための図である。
【符号の説明】
１０　　アプリケーションプログラム
２０　　オブジェクト管理部
３０　　オブジェクト回収部
４０　　オブジェクト管理テーブル
５０１〜５０３　　オブジェクトプーリングテーブル
６０１〜６０３　　オブジェクト
７０１〜７０３　　クラス
１０１〜１０４　　ステップ
２０１　　ステップ
３０１、３０２　　ステップ
【図１】
2004078651.tif 000003
【図２】
2004078651.tif 000004
【図３】
2004078651.tif 000005
【図４】
2004078651.tif 000006