説明

メモリ消費量測定方法及びメモリ消費量測定プログラム

【課題】ソフトウェアプラットフォームの実装に依存せず、細かな粒度で、任意のタイミングにおけるヒープメモリ使用量を測定する。
【解決手段】ソフトウェアプラットフォーム2上で、測定対象プログラム21とともにメモリ確保プログラム22を動作させ、メモリ確保プログラム22が確保するメモリ確保量Yを変化させて、そのときのソフトウェアプラットフォーム2の状態が正常であるか異常であるかを調べ、正常な状態における最大のメモリ確保量Ymaxを測定し、ソフトウェアプラットフォーム2のヒープメモリ量Xからメモリ確保量Ymaxを引いてヒープメモリ使用量を求める。これにより、ソフトウェアプラットフォーム2に設定できるヒープメモリ量Xの粒度に依存せず、より細かな粒度で測定対象プログラム21が使用するヒープメモリ量を求めることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムのメモリ消費量を測定する技術に関する。
【背景技術】
【0002】
既存の技術として、図9に示すように、あるハードウェア9に起動したソフトウェアプラットフォーム91上で1つ以上のプログラムモジュール92A,92B,・・を動作させることがある。例えば、Java(登録商標)は、JavaVMというプラットフォーム上でJavaプログラムを動作させる。vmware(登録商標)やxen(登録商標)などの仮想化技術を利用したプログラムも、仮想的なマシンとなるソフトウェアプラットフォーム上で、様々なプログラムモジュールを動作させるものである。また、Open Services Gateway initiative(OSGi)は、ソフトウェアプラットフォームとしてJavaVMを利用してOSGiフレームワークを動作させ、その上でOSGiバンドルと呼ばれるJavaプログラムモジュールを複数動作させるものである。
【0003】
ソフトウェアプラットフォームは一般的に起動オプションとしてヒープメモリ量、もしくは最大のヒープメモリ量を設定可能である。ヒープメモリとは、ソフトウェアプラットフォームがプログラムモジュールを動作させるために用意するメモリ領域である。例えば、ソフトウェアプラットフォームがJavaVMである場合、Javaプログラムが生成するインスタンスを確保する為にヒープメモリが利用される。このヒープメモリをどのような値として確保するかは、ソフトウェアプラットフォームを動作させるハードウェア/OSの設計に関わるため、あるプログラムモジュールを利用するために必要なヒープメモリの大きさを測定することは重要である。
【0004】
ここで、ソフトウェアプラットフォーム上で動作するプログラムモジュールAが正常動作するために最小限必要なヒープメモリ量を測定したいとする。測定するヒープメモリ量には、(a)ある定常状態においてプログラムモジュールAが必要とするヒープメモリ量、(b)プログラムモジュールAにある処理を行わせた際に(ピークとして)必要とするヒープメモリ量、が存在する。
【0005】
既存のヒープメモリ測定手段として、ソフトウェアプラットフォームに監視ツール向けインタフェースが規定・実装されている場合がある。例えば、ソフトウェアプラットフォームとしてJavaVMを利用する場合、JVMPIとして監視ツール向けインタフェースが規定されている(非特許文献1参照)。その場合はそのインタフェースを利用した監視ツールにより測定することができる。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】"Java Virtual Machine Profiler Interface(JVMPI)",[online],[平成22年5月17日検索],インターネット〈URL:http://java.sun.com/j2se/1.3/ja/docs/ja/guide/jvmpi/jvmpi.html〉
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記のようなインタフェースが存在しない、あるいは存在しても実装されていない場合が存在する。例えば、ソフトウェアプラットフォームとして組み込み機器上で組み込み向けJavaVMを利用する場合、小型化のために監視ツール向けインタフェースが実装されていないことが多い。
【0008】
また、測定対象プログラムモジュール自身に手を加えることが可能である場合は、任意の時点で消費ヒープメモリ量を出力させることができるが、測定対象プログラムモジュールには手を加えることができない場合が多く、このような手段は利用できない。
【0009】
このように、ヒープメモリの消費量を測定する手段に制限がある場合、以下の消費ヒープメモリ量を測定する方法が考えられる。
【0010】
手順1として、ソフトウェアプラットフォームが利用するヒープメモリ量を設定し、ソフトウェアプラットフォームと測定対象のプログラムモジュールAを起動する。
【0011】
手順2として、上記(a)についての消費ヒープメモリ量を測定する場合は、プログラムモジュールAを測定対象の定常状態に遷移させ、十分な時間を経過させる。上記(b)についての消費ヒープメモリ量を測定する場合は、プログラムモジュールAに測定対象の処理を行わせる。
【0012】
手順3として、上記の手順2が正常に完了するか否か判定し、正常に完了する場合は、ソフトウェアプラットフォームに設定するヒープメモリ量を小さくし、手順1から処理を繰り返す。一方、上記の処理が正常に完了しない場合、ヒープメモリ量を大きくし、手順1から処理を繰り返す。
【0013】
このように、手順1,2,3を複数回試行し、手順2が正常に完了する最小のヒープメモリ量を求める。求めたヒープメモリ量が目的である(a)あるいは(b)のヒープメモリ量である。
【0014】
しかしながら、上記の方法には以下に示す課題が存在する。
【0015】
第1に、ソフトウェアプラットフォームに設定できるヒープメモリ量の粒度が測定したい粒度より大きい場合がある。
【0016】
第2に、上記(a)についての消費ヒープメモリ量を測定する場合、定常状態への遷移までにヒープメモリの使用量ピークがあるときは、その使用量ピークを測定したことになる。これを回避するためには、予め十分大きなヒープメモリ量を設定し、測定対象の定常状態へ遷移した後でヒープメモリ量を小さく変更する、動的なヒープメモリ量の設定が必要となるが、通常のソフトウェアプラットフォームでは起動時に静的に設定するものがほとんどである。
【0017】
本発明は、上記に鑑みてなされたものであり、ソフトウェアプラットフォームの実装に依存せず、細かな粒度で、任意のタイミングにおけるヒープメモリ使用量を測定することを目的とする。
【課題を解決するための手段】
【0018】
第1の本発明に係るメモリ消費量測定方法は、ソフトウェアプラットフォーム上で動作する測定対象モジュールが使用するメモリ消費量を測定する方法であって、コンピュータが、前記ソフトウェアプラットフォームを起動し、当該ソフトウェアプラットフォーム上で前記測定対象モジュールと指定された量のメモリを確保するメモリ確保モジュールを動作させるステップと、前記メモリ確保モジュールにより前記指定された量のメモリが確保された後の前記ソフトウェアプラットフォームの状態を判定するステップと、前記指定された量を変化させてメモリを確保させ、前記ソフトウェアプラットフォームの状態が正常であった場合のうち最大の前記指定された量を最大メモリ確保量として取得するステップと、前記ソフトウェアプラットフォームのメモリ量から前記最大メモリ確保量を引いて前記測定対象モジュールのメモリ消費量を算出するステップと、を有することを特徴とする。
【0019】
第2の本発明に係るメモリ消費量測定プログラムは、上記メモリ消費量測定方法をコンピュータに実行させることを特徴とする。
【発明の効果】
【0020】
本発明によれば、ソフトウェアプラットフォームの実装に依存せず、細かな粒度で、任意のタイミングにおけるヒープメモリ使用量を測定することができる。
【図面の簡単な説明】
【0021】
【図1】本実施の形態におけるメモリ消費量測定装置の構成を示す機能ブロック図である。
【図2】メモリ消費量を測定する処理の流れを示すフローチャートである。
【図3】メモリ消費量の算出を説明する概略図である。
【図4】メモリ消費量を測定する別の処理の流れの一部を示すフローチャートである。
【図5】メモリ消費量を測定するさらに別の処理の流れの一部を示すフローチャートである。
【図6】実施例1のソフトウェアプラットフォームおよび各プログラムを示す概略図である。
【図7】実施例2のソフトウェアプラットフォームおよび各プログラムを示す概略図である。
【図8】実施例3のソフトウェアプラットフォームおよび各プログラムを示す概略図である。
【図9】ソフトウェアプラットフォームとその上で動作するプログラムモジュールを示す概略図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施の形態について図面を用いて説明する。
【0023】
図1は、本実施の形態におけるメモリ消費量測定装置の構成を示す機能ブロック図である。
【0024】
同図に示すメモリ消費量測定装置1は、起動部11、設定部12、操作要求部13、通信部14、停止部15、判定部16、記憶部17、計算部18、および出力部19を備える。メモリ消費量測定装置1が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムはメモリ消費量測定装置1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。以下、各部について説明する。
【0025】
起動部11は、測定対象プログラム21を動作させるソフトウェアプラットフォーム2、ソフトウェアプラットフォーム2上で動作するメモリ確保プログラム22を起動する。起動部11は、ヒープメモリ量Xを指定してソフトウェアプラットフォーム2を、メモリ確保量Yを指定してメモリ確保プログラム22を起動する。なお、ソフトウェアプラットフォーム2は、メモリ消費量測定装置1内で動作させてもよいし、別のコンピュータ上で動作させてもよい。また、実際に確保されるヒープメモリ量は、設定したヒープメモリ量Xと同値になっているものとする。そのようなヒープメモリ量Xの値は事前に測定し分かっているものとする。以下、ヒープメモリ量Xに関しては同様である。
【0026】
設定部12は、ヒープメモリ量X、メモリ確保量Yなどの設定を保持する。起動部11は、ソフトウェアプラットフォーム2、メモリ確保プログラム22を起動する際に、設定部12を参照してヒープメモリ量X、メモリ確保量Yを得る。
【0027】
操作要求部13は、測定対象プログラム21が測定対象の状態となるために必要な操作を要求する。操作の要求は、通信部14により、測定対象プログラム21を操作する外部ツール3に送信される。あるいは、出力部19により、ユーザ4に操作内容を提示し、ユーザ4に測定対象プログラム21を操作させる。
【0028】
通信部14は、操作要求部13が要求する操作を外部ツール3へ送信する。あるいは、ソフトウェアプラットフォーム2上で動作するプログラムとの通信を行う。
【0029】
停止部15は、測定対象プログラム21が測定対象の状態に遷移し、ソフトウェアプラットフォーム2の状態が得られたときに、ソフトウェアプラットフォーム2を停止する。ソフトウェアプラットフォーム2の停止に伴い、測定対象プログラム21とメモリ確保プログラム22も停止する。
【0030】
判定部16は、測定対象プログラム21が測定対象の状態に遷移したとき、ソフトウェアプラットフォーム2が正常な状態か異常な状態か判定する。異常な状態とは、例えば、メモリ不足を示すOut of Memory Errorが出力されている状態である。
【0031】
記憶部17は、ヒープメモリ量X、メモリ確保量Yなどの設定と判定部16の判定結果を記憶する。
【0032】
計算部18は、記憶部17からヒープメモリ量X、メモリ確保量Y、および判定結果を読み出し、測定対象プログラム21が使用するヒープメモリ量を計算する。具体的には、測定対象プログラム21が測定対象の状態に遷移したときに、ソフトウェアプラットフォーム2が正常な状態である最大のメモリ確保量Ymaxを求め、ヒープメモリ量Xからメモリ確保量Ymaxを引くことで、測定対象プログラム21が使用するヒープメモリ量を計算する。
【0033】
出力部19は、計算部18が計算したヒープメモリ量やユーザに対する指示の表示や出力を行う。
【0034】
続いて、メモリ確保プログラム22について説明する。
【0035】
メモリ確保プログラム22は、コンピュータを起動部221、メモリ確保部222、および設定部223として機能させる。起動部221は、測定対象プログラム21をソフトウェアプラットフォーム2上で起動する。メモリ確保部222は、設定部223の保持する設定に従って、ヒープメモリを確保する。設定部223は、起動時に指定されたオプションなどの設定を保持する。なお、メモリ確保プログラム22が測定対象プログラム21を起動せず、別の方法により測定対象プログラム21を起動するものでもよい。
【0036】
次に、処理の流れについて説明する。
【0037】
図2は、測定対象プログラム21のメモリ消費量を測定する処理の流れを示すフローチャートである。
【0038】
まず、設定部12において、ソフトウェアプラットフォーム2に設定するヒープメモリ量Xとメモリ確保プログラム22に設定するメモリ確保量Yを決定する(ステップS101)。ヒープメモリ量Xの初期値には適切な値を指定しておく。メモリ確保量Yの初期値は0とする。なお、メモリ確保量Yの初期値は、ソフトウェアプラットフォーム2が正常に動作する値であれば0に限るものではない。
【0039】
続いて、起動部11が、ヒープメモリ量Xを指定してソフトウェアプラットフォーム2を起動し、メモリ確保量Yを指定してメモリ確保プログラム22を実行する(ステップS102)。
【0040】
続いて、メモリ確保プログラム22により機能するメモリ確保部222は、メモリ確保量Yに基づいて確保すべき配列やインスタンスの量を計算し、ヒープメモリを確保する(ステップS103)。
【0041】
そして、メモリ確保プログラム22により機能する起動部221が測定対象プログラム21を起動する(ステップS104)。
【0042】
その後、操作要求部13は、測定対象プログラム21が測定対象の状態となるために必要な操作を要求し、測定対象プログラム21を測定対象の状態へ遷移させる(ステップS105)。具体的には、操作要求を通信部14により外部ツール3へ送信する、あるいは、操作要求を出力部19によりユーザ4へ提示する。そして、外部ツール3あるいはユーザ4が測定対象プログラム21を操作して測定対象の状態へ遷移させる。
【0043】
測定対象プログラム21が測定対象の状態へ遷移した後、判定部16がソフトウェアプラットフォーム2が正常な状態であるか異常な状態であるか判定する(ステップS106)。
【0044】
そして、ヒープメモリ量X、メモリ確保量Yと判定部16の判定結果を記憶部17に記録し(ステップS107)、停止部15がソフトウェアプラットフォーム2を停止する(ステップS108)。
【0045】
そして、判定部16は、メモリ消費量を求める次の処理を実行する。
【0046】
まず、判定結果が正常であるか否か判定し(ステップS109)、判定結果が正常である場合、メモリ確保プログラム22に設定するメモリ確保量Yをより大きな値に設定する(ステップS110)。測定したい粒度に応じて、メモリ確保量Yをより大きな値にし、設定部12が再設定した値を保持する。そして、ステップS102に戻り、新たなメモリ確保量Yを用いてソフトウェアプラットフォーム2、メモリ確保プログラム22を起動する。なお、メモリ確保量Yをより大きな値に変化させる刻み幅は、必ずしも一定である必要はなく、動的に変化させてもよい。
【0047】
判定結果が異常の場合、メモリ確保量Yが0であるか否か判定する(ステップS111)。メモリ確保量Yが0である場合、ソフトウェアプラットフォーム2に設定したヒープメモリ量Xが不足しているので、ヒープメモリ量Xをより大きな値に設定し(ステップS112)、ステップS102に戻り、新たなヒープメモリ量Xを用いてソフトウェアプラットフォーム2、メモリ確保プログラム22を起動する。
【0048】
メモリ確保量Yが0でない場合、計算部18が、前回の判定結果が正常である場合のメモリ確保量YをYmaxとして測定対象プログラム21が使用するヒープメモリ量を計算し(ステップS113)、出力部19がその結果を出力あるいは表示する(ステップS114)。図3に示すように、測定対象プログラム21が使用するヒープメモリ量は、ソフトウェアプラットフォーム2に設定したヒープメモリ量Xからメモリ確保量Ymaxを引くことで計算できる。
【0049】
なお、メモリ確保量Yの初期値をヒープメモリ量Xと同じ、あるいは、ソフトウェアプラットフォーム2が異常となる値に設定し、ソフトウェアプラットフォーム2が正常に動作するまでメモリ確保量Yを小さくしつつ上記ステップS102〜S108を繰り返し、ソフトウェアプラットフォーム2が正常に動作したときのメモリ確保量Yを求めて、その時のメモリ確保量YをYmaxとして測定対象プログラム21が使用するヒープメモリ量を計算してもよい。
【0050】
次に、ヒープメモリを確保するタイミングが異なる別の処理の流れについて説明する。ここで説明する処理は、図2で示したものに対して、メモリ確保部222がヒープメモリを確保するタイミングが異なる。以下、図2との差異点について説明する。
【0051】
図4は、測定対象プログラム21のメモリ消費量を測定する別の処理の流れの一部を示すフローチャートである。
【0052】
図2のステップS102の処理の後、メモリ確保部222は、一定時間T待機するタイマーを起動する(ステップS201)。一定時間Tは、設定部12において設定されており、図2のステップS102においてメモリ確保プログラム22を実行する際に指定される。
【0053】
続いて、図2と同様に、測定対象プログラム21を起動し(ステップS202)、測定対象プログラム21を測定対象の状態へ遷移させる(ステップS203)。
【0054】
タイマーが一定時間Tに達すると、メモリ確保部222はヒープメモリを確保する(ステップS204)。
【0055】
その後、図2のステップS106へ進み、測定対象プログラム21が使用するヒープメモリ量を計算する。なお、メモリ確保プログラム22を再起動するときは、一定時間Tの値は変化させない。
【0056】
次に、ヒープメモリを確保するタイミングが異なるさらに別の処理の流れについて説明する。ここで説明する処理では、メモリ確保部222が、メモリ消費量測定装置1の指示により、ヒープメモリを確保する。以下、図2との差異点について説明する。
【0057】
図5は、測定対象プログラム21のメモリ消費量を測定するさらに別の処理の流れの一部を示すフローチャートである。
【0058】
図2のステップS102の処理の後、測定対象プログラムを起動し(ステップS301)、測定対象プログラムを測定対象の状態へ遷移させる(ステップS302)。この段階では、メモリ確保部222はヒープメモリの確保を行わない。
【0059】
メモリ消費量測定装置1の通信部14がメモリ確保部222にメモリ確保の指示を出すと、メモリ確保部222はヒープメモリを確保する(ステップS303)。
【0060】
その後、図2のステップS106へ進み、測定対象プログラム21が使用するヒープメモリ量を計算する。
【0061】
以上説明したように、本実施の形態によれば、ソフトウェアプラットフォーム2上で、測定対象プログラム21とともにメモリ確保プログラム22を動作させ、メモリ確保プログラム22が確保するメモリ確保量Yを変化させて、そのときのソフトウェアプラットフォーム2の状態が正常であるか異常であるかを調べ、正常な状態における最大のメモリ確保量Ymaxを測定することにより、ソフトウェアプラットフォーム2のヒープメモリ量Xからメモリ確保量Ymaxを引くことで、ソフトウェアプラットフォーム2に設定できるヒープメモリ量Xの粒度に依存せず、より細かな粒度で測定対象プログラム21が使用するヒープメモリ量を求めることができる。
【0062】
本実施の形態によれば、測定対象プログラム21が所望の状態に遷移した後でメモリ確保プログラム22がヒープメモリを確保することにより、測定対象プログラム21の起動から測定対象とする定常状態へ遷移するまでの状態に依存することなく、定常状態での消費ヒープメモリ量を測定することができる。
【0063】
次に、ソフトウェアプラットフォーム2、測定対象プログラム21、およびメモリ確保プログラム22の具体的な3つの実施例について説明する。
【0064】
[実施例1]
図6は、ソフトウェアプラットフォーム6がJavaVM、測定対象プログラム61とメモリ確保プログラム62がJavaプログラムである場合のソフトウェアプラットフォームおよび各プログラムを示す概略図である。メモリ確保プログラム62は、コンピュータを起動部621、メモリ確保部622、および設定部623として機能させる。
【0065】
ソフトウェアプラットフォーム6、およびメモリ確保プログラム62は、図示しないメモリ消費量測定装置1により起動される。メモリ確保プログラム62は、起動する際にメモリ確保量Yを指定され、メモリ確保部622は、設定部623からメモリ確保量Yを読み出し、メモリ確保量Y分のメモリを配列やインスタンスなどの形で確保し続ける。メモリ確保部622が確保したヒープメモリは、JavaVMのガベージコレクションの対象とならない。なお、メモリ確保量Yと確保するメモリ量(配列の大きさ)との対応関係は、事前に従来手法によって測定し、測定点を一次関数などで内挿することにより、指定されたメモリ確保量Y分のメモリを確保する配列の大きさなどを決定し、より小さな粒度での設定を可能とする。
【0066】
また、起動部621は、測定対象プログラム61のmainメソッドを呼び出すランチャープログラムとする。一般的なJavaプログラムは必ずmainメソッドを有する。メモリ確保プログラム62は、メモリ確保部622が所定のメモリ確保量Yを確保した後、自分自身は動作したまま、測定対象プログラム61のmainメソッドを呼び出すことにより、測定対象プログラム61を起動する。
【0067】
[実施例2]
図7は、ソフトウェアプラットフォーム7がJavaVM、測定対象プログラム71がOSGiバンドルプログラムであり、メモリ確保プログラム72がOSGiフレームワーク73を起動するJavaプログラムである場合のソフトウェアプラットフォームおよび各プログラムを示す概略図である。メモリ確保プログラム72は、コンピュータを起動部721、メモリ確保部722、および設定部723として機能させる。
【0068】
ソフトウェアプラットフォーム7、およびメモリ確保プログラム72は、図示しないメモリ消費量測定装置1により起動される。メモリ確保プログラム72は、起動後所定のメモリ確保量Yを確保した後、自分自身は動作したまま、OSGiフレームワーク73のmainメソッドを呼びOSGiフレームワーク73を起動する。そして、OSGiフレームワーク73は、OSGiバンドルプログラムである測定対象プログラム71を起動する。なお、複数の測定対象プログラム71を起動させてもよい。
【0069】
この実施例では、測定対象プログラム71とOSGiフレームワーク73が消費するヒープメモリ量を合算して測定できる。
【0070】
[実施例3]
図8は、ソフトウェアプラットフォーム8がJavaVM、測定対象プログラム81とメモリ確保プログラム82がOSGiバンドルプログラムである場合のソフトウェアプラットフォームおよび各プログラムを示す概略図である。OSGiフレームワーク83が測定対象プログラム81とメモリ確保プログラム82を起動し、メモリ確保プログラム82は、コンピュータをメモリ確保部821、および設定部822として機能させる。
【0071】
図示しないメモリ消費量測定装置1が、ソフトウェアプラットフォーム8とOSGiフレームワーク83を起動する。メモリ消費量測定装置1は、OSGiフレームワーク83と通信することで、測定対象プログラム81、メモリ確保プログラム82を任意のタイミングで起動することができる。測定対象プログラム81が所望の状態に遷移した後でメモリ確保プログラム82を起動しメモリを確保させてもよいし、メモリ確保プログラム82を起動しメモリを確保したあとで測定対象プログラム81を起動させてもよい。
【0072】
なお、事前にOSGiフレームワーク83のみが消費するヒープメモリ量を測定することで、OSGiフレームワーク83が表紙するヒープメモリ量を除いた測定対象プログラム81の消費するヒープメモリ量を測定することができる。
【符号の説明】
【0073】
1…メモリ消費量測定装置
11…起動部
12…設定部
13…操作要求部
14…通信部
15…停止部
16…判定部
17…記憶部
18…計算部
19…出力部
2…ソフトウェアプラットフォーム
21…測定対象プログラム
22…メモリ確保プログラム
221…起動部
222…メモリ確保部
223…設定部
3…外部ツール
4…ユーザ
6,7,8…ソフトウェアプラットフォーム
61,71,81…測定対象プログラム
62,72,83…メモリ確保プログラム
621,721…起動部
622,722,821…メモリ確保部
623,723,822…設定部
73,83…OSGiフレームワーク
9…ハードウェア
91…ソフトウェアプラットフォーム
92A,92B…プログラムモジュール

【特許請求の範囲】
【請求項1】
ソフトウェアプラットフォーム上で動作する測定対象モジュールが使用するメモリ消費量を測定する方法であって、
コンピュータが、
前記ソフトウェアプラットフォームを起動し、当該ソフトウェアプラットフォーム上で前記測定対象モジュールと指定された量のメモリを確保するメモリ確保モジュールを動作させるステップと、
前記メモリ確保モジュールにより前記指定された量のメモリが確保された後の前記ソフトウェアプラットフォームの状態を判定するステップと、
前記指定された量を変化させてメモリを確保させ、前記ソフトウェアプラットフォームの状態が正常であった場合のうち最大の前記指定された量を最大メモリ確保量として取得するステップと、
前記ソフトウェアプラットフォームのメモリ量から前記最大メモリ確保量を引いて前記測定対象モジュールのメモリ消費量を算出するステップと、
を有することを特徴とするメモリ消費量測定方法。
【請求項2】
前記取得するステップは、前記指定された量の初期値を0あるいは前記ソフトウェアプラットフォームの状態が正常となる値とし、測定したいメモリ消費量の粒度に応じて前記指定された量を大きくしていき、前記ソフトウェアプラットフォームの状態が異常となる直前の前記指定された量を最大メモリ確保量とすることを特徴とする請求項1記載のメモリ消費量測定方法。
【請求項3】
前記取得するステップは、前記指定された量の初期値を前記ソフトウェアプラットフォームのメモリ量と同じあるいは前記ソフトウェアプラットフォームの状態が異常となる値とし、測定したいメモリ消費量の粒度に応じて前記指定された量を小さくしていき、前記ソフトウェアプラットフォームの状態が正常となったときの前記指定された量を最大メモリ確保量とすることを特徴とする請求項1記載のメモリ消費量測定方法。
【請求項4】
前記動作させるステップは、待機時間を指定して前記メモリ確保モジュールを動作させるものであって、
前記メモリ確保モジュールは、前記測定対象モジュールが動作してから前記待機時間経過した後で前記指定された量のメモリを確保することを特徴とする請求項1乃至3のいずれかに記載のメモリ消費量測定方法。
【請求項5】
前記メモリ確保モジュールにメモリの確保を指示するステップを有し、
前記メモリ確保モジュールは、前記指示を受けたときに前記指定された量のメモリを確保することを特徴とする請求項1乃至3のいずれかに記載のメモリ消費量測定方法。
【請求項6】
請求項1乃至5のいずれかに記載のメモリ消費量測定方法をコンピュータに実行させることを特徴とするメモリ消費量測定プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate