JP5327886B2 - メモリリーク判定装置、メモリリーク判定方法およびプログラム - Google Patents
メモリリーク判定装置、メモリリーク判定方法およびプログラム Download PDFInfo
- Publication number
- JP5327886B2 JP5327886B2 JP2010105153A JP2010105153A JP5327886B2 JP 5327886 B2 JP5327886 B2 JP 5327886B2 JP 2010105153 A JP2010105153 A JP 2010105153A JP 2010105153 A JP2010105153 A JP 2010105153A JP 5327886 B2 JP5327886 B2 JP 5327886B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- memory usage
- leak
- usage
- maximum value
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
メモリリークの有無を判定する方法として、プロセス毎のメモリ使用量を検出し、いずれかのプロセスのメモリ使用量が所定の閾値を超えた場合に、メモリリーク有りと判定する方法がある。しかし、この方法では、メモリ使用量が当該閾値を超えるまでメモリリーク有りとの判定が行われず、メモリリークの検知が遅れてしまう。また、実際にはメモリリークが発生しておらず、メモリ使用量が一時的に閾値を超えたに過ぎない場合も、メモリリーク有りとの誤検出を行ってしまう。
そこで、特許文献1では、プロセス毎に、直近24時間のメモリ使用量平均値と過去のメモリ使用量平均値とを比較してメモリ使用量増加率を算出し、いずれかのプロセスのメモリ使用量増加率が予め定められた閾値を超える場合に、メモリリーク有りと判定する方法が示されている。この方法によれば、メモリ使用量増加率に基づいてメモリリークの有無を判定するので、メモリ使用量が比較的小さい早期段階でメモリリークを検知し得る。
図1は、本発明の一実施形態におけるメモリリーク判定装置の概略構成を示す構成図である。同図において、メモリリーク判定装置(資源解放漏れ判定装置)1は、操作入力部11と、表示部12と、メモリ使用量取得部(コンピュータ資源使用量取得部)21と、最大値更新回数計数部22と、メモリリーク判定部(解放漏れ判定部)23と、対策処理実行部24と、記憶部31とを具備する。記憶部31は、プロセス情報記憶部311と、メモリ使用量情報記憶部312と、判定条件情報記憶部313と、処理内容情報記憶部314と、処理結果情報記憶部315とを具備する。
記憶部31は、メモリリーク判定対象のコンピュータ(以下では、単に「コンピュータ」という)の記憶領域上に実現されて、各種情報を記憶する。プロセス情報記憶部311は、メモリリーク判定装置1が各プロセスのメモリ使用量を取得するために用いる情報であるプロセス情報をプロセス毎に記憶する。
図2は、プロセス情報記憶部311が記憶するプロセス情報の例を示す図である。同図の例では、プロセス情報には、プロセスの識別番号である「プロセスID」と、当該プロセスの「プロセス名」と、当該プロセスの「実行開始時刻」と、メモリリーク判定装置1が次に当該プロセスのメモリ使用量を取得する時刻である「次回時刻」とが含まれている。
図3は、メモリ使用量情報記憶部312が記憶するメモリ使用量情報の例を示す図である。同図の例では、メモリ使用量情報には、上述した「プロセスID」および「プロセス名」と、当該プロセスのメモリ使用量の「初期値」および「最大値」および「現在値」と、当該最大値が更新された回数を示す「最大値更新回数」と、メモリリーク判定装置1がメモリリークの判定を行う際に用いる閾値である「メモリ使用量閾値」とが含まれている。
図4は、判定条件情報記憶部313が記憶する判定条件情報の例を示す図である。同図の例では、判定条件情報には、メモリ使用量最大値の更新回数の閾値である「更新回数閾値」と、メモリ使用量の閾値の算出基準である「メモリ使用量閾値算出係数」と、メモリリーク判定装置1がメモリリークの有無を判定する時間間隔である「判定時間間隔」とが含まれている。更新回数閾値とメモリ使用量閾値算出係数と判定時間間隔とは、例えば、ユーザの操作を受けた操作入力部11が、判定条件情報記憶部313に書き込む。
図5は、処理内容情報記憶部314が記憶する処理内容情報の例を示す図である。同図の例で示すように、処理内容情報には、メモリリーク有りと判定されたプロセスに対して行う処理の「処理項目名」と、当該処理を実行するための「実行コマンド」と、当該処理を行うか否かを示す「選択フラグ」とが含まれている。処理項目名としては、メモリリーク有りと判定されたプロセスを停止させる(KILLする)「対象プロセス停止」や、予め定められたスクリプトを実行する「スクリプト実行」や、メモリリークに関する情報をログに出力する「ログ出力」と、メモリリークが発生したことをユーザ(コンピュータの管理者)に警告する「警告表示」とが示されている。実行コマンド欄には、当該処理を実行するためのコマンドが格納されている。また、選択フラグの「○」は、当該処理を行うことを示し、「×」は当該処理を行わないことを示す。選択フラグの値は、例えば、ユーザの入力操作を受けた操作入力部11が、処理内容情報記憶部314に書き込む。
図6は、処理結果情報記憶部315が記憶する処理結果情報の例を示す図である。同図の例では、処理結果情報には、メモリリーク判定装置がメモリリーク有りと判定した「判定時刻」と、メモリリーク有りと判定されたプロセスの「プロセスID」および「プロセス名」と、当該プロセスに対する「処理項目名」と、当該処理を行った結果の記録である「処理結果」とが含まれている。
最大値更新回数計数部22は、メモリ使用量取得部の取得するメモリ使用量が最大値か否かを判定し、最大値と判定した場合は、メモリ使用量情報記憶部312の記憶するメモリ使用量の最大値と最大値更新回数とを書き換える。
対策処理実行部24は、メモリリーク判定部23がメモリリーク有りと判定した場合に、処理内容情報記憶部314が記憶する処理内容情報に基づいて対策処理を行う。
表示部12は、液晶ディスプレイ等の表示画面を含み、メモリリーク発生時に警告を表示する。具体的には、警告表示の選択フラグが「○」になっている場合、メモリリークが発生すると、対策処理実行部24から表示部12に対して、警告画面の画像データが出力される。表示部12は、対策処理実行部24から出力される画像データに基づいて、メモリリーク発生を示す警告画面を表示する。
メモリリーク判定装置1がメモリリーク判定対象のコンピュータ内に実現される場合、例えば、メモリ使用量取得部21と、最大値更新回数計数部22と、メモリリーク判定部23と対策処理実行部24とは、コンピュータの中央演算装置(Central Processing Unit;CPU)上のプロセスとして実現され、記憶部31の各部は、コンピュータの記憶装置上に記憶領域を確保することにより実現される。
図7は、メモリリーク判定部23が、メモリリーク有りと判定する例を示すグラフであり、メモリ使用量取得部21が取得する、あるプロセスのメモリ使用量の変化を示す。同図の縦軸はメモリサイズを示す。また、同図の横軸は時間軸であり、プロセスが起動してからの時間を示す。点P101〜P110は、それぞれの時間においてメモリ使用量取得部21が取得する、当該プロセスのメモリ使用量を示す。また、THRはメモリ使用量閾値であり、メモリ使用量初回取得時の点P101におけるメモリ使用量VPに、判定条件情報記憶部313が記憶するメモリ使用量閾値算出係数を乗じた値を示す。
図7の例では、点P109および点P110において、メモリ使用量の現在値がメモリ使用量閾値THR以上となっている。また、最大値更新回数計数部22は、メモリ使用量初回取得時の点P101では、最大値更新回数を「0」としてメモリ使用量情報記憶部312の最大値更新回数欄に書き込む。以降、点P102で最大値更新回数を「1」、点P103で「2」というように、最大値が更新される毎に最大値更新回数に1を加算してメモリ使用量情報記憶部312の最大値更新回数欄に書き込む。図7の場合、点P106では最大値が更新されていないので、点P110において、最大値更新回数が更新回数閾値の「8」に達する。
一方、上述のように、メモリ使用量最大値の更新回数が更新回数閾値以上であることに加えて、メモリ使用量の現在値がメモリ使用量閾値THR以上であることも判定条件とすることにより、正常動作におけるメモリ使用量の漸増によりメモリリーク有りと誤判定する可能性を低減できる。
なお、プロセスが起動時に直ちにメモリ領域を確保するようプログラムされている場合は、メモリ使用量取得部21が、プロセス起動時に初回のメモリ使用量取得を行うようにしてもよい。これにより、メモリ使用量取得部21が、プロセス起動から一定時間経過後に初回のメモリ使用量取得を行う場合よりも更に早い段階でメモリリークを検出し得る。
図11は、メモリリーク判定装置1が、ある1つのプロセスに関して行う、メモリリーク有無の判定処理手順を示す図である。メモリリーク判定装置1は、新たにプロセスが実行されると同図の処理を開始する。以下では、同図でメモリリーク有無の判定対象となるプロセスを「対象プロセス」という。
新たに対象プロセスが実行されると、例えばOS(Operating System)が、対象プロセスのプロセスIDとプロセス名と実行開始時刻とをメモリ使用量取得部21に出力する。メモリ使用量取得部21は、OSから出力されたプロセスIDとプロセス名と実行開始時刻とを対応付けて、プロセス情報記憶部311が記憶するプロセス情報に追加する。また、メモリ使用量取得部21は、OSから出力されたプロセスIDとプロセス名とを対応付けて、メモリ使用量情報記憶部312が記憶するメモリ使用量情報に追加する(以上、ステップS101)。
所定の時間経過を待つのは、上述したように、対象プロセスが未だメモリ領域を確保していない状態における、極端に小さいメモリ使用量に基づいて、メモリ使用量閾値THRを算出することを防止するためである。ステップS102での待ち時間は、判定条件情報記憶部313が記憶する判定時間間隔と同じであってもよいし、判定時間間隔とは別に定められた時間であってもよい。例えば、ユーザが、プロセスの正常動作時における時間毎のメモリ使用量の統計をとり、この統計に基づいてステップS102の待ち時間とメモリ使用量閾値算出係数とを決定して判定条件情報記憶部313に書き込むようにしてもよい。
メモリ使用量取得部21は、例えば、実行中の各プロセスのプロセスIDとプロセス名とメモリ使用量との出力をOSから随時受けており、ステップS102の所定時間経過時にOSから出力されるメモリ使用量を、メモリ使用量取得値とする。
また、メモリ使用量取得部21は、プロセス情報記憶部311が記憶するプロセス情報から次回時刻を読み出す。上述したように、次回時刻は、メモリリーク判定装置1(のメモリリーク判定部23)が、次に対象プロセスのメモリリークを判定する時刻を示す情報である。また、メモリ使用量取得部21は、判定条件情報記憶部313が記憶する判定条件情報から、判定時間間隔を読み出す。メモリ使用量取得部21は、読み出した次回時刻に判定時間間隔を加えることにより新たな次回時刻を算出し、プロセス情報記憶部311の記憶する対象プロセスの次回時刻を、算出した次回時刻に更新する。
その後、最大値更新回数計数部22は、メモリ使用量取得部21から出力された、メモリ使用量の現在値を更新したことを示す信号を、メモリリーク判定部23に出力(転送)する(以上、ステップS110)。
M≧TM、かつ、U≧TU ・・・ 式(1)
対策処理実行部24は、対策処理の実行を指示する信号の出力を受けると、メモリリークに対する対策処理を実行する。具体的には、対策処理実行部24は、対策処理の実行を指示する信号から対象プロセスのプロセスIDを読み出し、また、処理内容情報記憶部314から、選択フラグが「○」になっている処理の実行コマンドを読み出す。そして、対策処理実行部24は、読み出したプロセスIDが示す対象プロセスに関して、読み出した実行コマンドを実行する(以上ステップS112)。その後、ステップS105に戻る。
また、ステップS111でメモリリーク無しと判定した場合(ステップS111:NO)はステップS105に戻る。すなわち、メモリリークに対する対策処理を行わずに、次回時刻到達を待ち受ける。
また、実際にはメモリリークが発生しておらず、対象プロセスのメモリ使用量が一時的に増加したに過ぎない場合、メモリリーク判定装置1は、対象プロセスのメモリ使用量の最大値更新回数に基づいて、メモリリーク無しと判定し得る。
さらに、メモリリークが発生している場合は、メモリ使用量の増加率の大小にかかわらず、メモリ使用量が増加し続けることが考えられる。メモリ使用量の増加率が小さい場合でも、メモリリーク検出装置1は、メモリ使用量の最大値更新回数が更新回数閾値以上、かつ、メモリ使用量がメモリ使用量閾値以上となった時点で、メモリ使用量が増加し続けていることを検出し、メモリリーク有りと判定できる。この点でも、メモリリーク判定装置1は、メモリ使用量増加率の大小にかかわらず、メモリリークの有無について誤判定を行うおそれが少ない。
また、メモリリーク判定装置1は、プロセスのメモリ使用量が閾値以上か否かのみでメモリリークの有無を判定するメモリリーク判定装置と比較すると、メモリ使用量閾値を小さい値に設定しても誤判定の可能性を低減できる。なぜなら、対象プロセスのメモリ使用量が一時的にあるいは定期的にメモリ使用量閾値以上となる場合でも、対象プロセスのメモリ使用量の最大値更新回数が最大値更新回数閾値以上か否かの判定により、メモリリークが発生していないにもかかわらずメモリリーク有りとする誤判定の可能性を低減し得るからである。
したがって、プロセスのメモリ使用量が閾値以上か否かのみでメモリリークの有無を判定するメモリリーク判定装置よりも、対象プロセスのメモリ使用量が小さい段階で、すなわち、より早期にメモリリークを検出できる。
このように、複数のプロセスについて纏めてメモリリークの有無を判定することにより、メモリ使用量情報等をプロセス毎に記憶する必要が無いので、メモリリーク判定に用いるメモリ容量を低減できる。
以上ではメモリリークの有無の判定を行う場合について説明したが、本発明は、プロセスがオープンしたファイルのクローズ漏れ(以下では、「ファイルリーク」という)の有無の判定にも適用できる。
ファイルリークが発生すると、クローズ漏れしたファイルのメモリ領域が解放されないことによりメモリリークが生じる。また、クローズ漏れしたファイルの解放を待っているプロセスが存在する場合、当該プロセスが当該ファイルを取得でないことにより、当該プロセス、ひいてはコンピュータの処理速度低下や動作不安定化が生じるおそれがある。
同図において、図1の各部と同様の機能を有する部分には、同一の符号(11、12、24、311、314、315)を付し、説明を省略する。
判定条件情報記憶部613は、メモリ使用量閾値算出係数に換えて、オープンファイル数閾値算出係数を記憶する点で、図1の判定条件情報記憶部313と異なる。オープンファイル数閾値算出係数は、オープンファイル数情報記憶部612が記憶するオープンファイル数初期値に乗じることにより、同じくオープンファイル数情報記憶部612が記憶するオープンファイル数閾値を算出するための係数である。
最大値更新回数計数部52は、オープンファイル数の最大値が更新されたか否かを判定し、更新されたと判定した場合は、オープンファイル数情報記憶部612が記憶するオープンファイル数の最大値と最大値更新回数とを更新する点で、メモリ使用量の最大値が更新されたか否かを判定し、更新されたと判定した場合には、メモリ使用量情報記憶部312が記憶するメモリ使用量の最大値と最大値更新回数とを更新する図1の最大値更新回数計数部22と異なる。
ファイルリーク判定部53は、オープンファイル数情報記憶部612からオープンファイル数の現在値と最大値更新回数とオープンファイル数閾値とを読み出し、判定条件情報記憶部613から更新回数閾値を読み出して、最大値更新回数閾値が更新回数閾値以上であり、かつ、オープンファイル数の現在値がオープンファイル数閾値以上である場合にファイルリーク有りと判定する点で、メモリ使用量情報記憶部312からメモリ使用量の現在値と最大値更新回数とメモリ使用量閾値とを読み出し、判定条件情報記憶部313から更新回数閾値を読み出して、最大値更新回数閾値が更新回数閾値以上であり、かつ、メモリ使用量の現在値がメモリ使用量閾値以上である場合にメモリリーク有りと判定する図1のメモリリーク判定部23と異なる。
また、実際にはファイルリークが発生しておらず、ファイルリーク判定対象のプロセス(以下、「対象プロセス」という)のオープンファイル数が一時的に増加したに過ぎない場合、ファイルリーク判定装置4は、対象プロセスのオープンファイル数の最大値更新回数に基づいて、ファイルリーク無しと判定し得る。
さらに、ファイルリークが発生している場合は、オープンファイル数の増加率の大小にかかわらず、オープンファイル数が増加し続けることが考えられる。オープンファイル数の増加率が小さい場合でも、ファイルリーク検出装置4は、オープンファイル数の最大値更新回数が更新回数閾値以上、かつ、オープンファイル数がオープンファイル数閾値以上となった時点で、オープンファイル数が増加し続けていることを検出し、ファイルリーク有りと判定できる。この点でも、ファイルリーク判定装置4は、オープンファイル数増加率の大小にかかわらず、ファイルリークの有無について誤判定を行うおそれが少ない。
また、ファイルリーク判定装置4は、プロセスのオープンファイル数が閾値以上か否かのみでファイルリークの有無を判定するファイルリーク判定装置と比較すると、オープンファイル数閾値を小さい値に設定しても誤判定の可能性を低減できる。なぜなら、対象プロセスのオープンファイル数が一時的にあるいは定期的にオープンファイル数閾値以上となる場合でも、対象プロセスのオープンファイル数の最大値更新回数が最大値更新回数閾値以上か否かの判定により、ファイルリークが発生していないにもかかわらずファイルリーク有りとする誤判定の可能性を低減し得るからである。
したがって、プロセスのオープンファイル数が閾値以上か否かのみでファイルリークの有無を判定するファイルリーク判定装置よりも、対象プロセスのオープンファイル数が小さい段階で、すなわち、より早期にファイルリークを検出できる。
また、本発明は、マルチスレッド処理を行うプロセスのスレッド終了漏れ(以下では、「スレッドリーク」という)の有無の判定にも適用できる。
スレッドリークが発生すると、終了漏れしたスレッドが使用する資源の解放漏れが生じ、この解放漏れした資源を他のプロセスや他のスレッドが使用でないことにより、当該プロセス、ひいてはコンピュータの処理速度低下や動作不安定化が生じるおそれがある。
同図において、図1の各部と同様の機能を有する部分には、同一の符号(11、12、24、311、314、315)を付し、説明を省略する。
判定条件情報記憶部913は、メモリ使用量閾値算出係数に換えて、スレッド数閾値算出係数を記憶する点で、図1の判定条件情報記憶部313と異なる。スレッド数閾値算出係数は、スレッド数情報記憶部912が記憶するスレッド数初期値に乗じることにより、同じくスレッド数情報記憶部912が記憶するスレッド数閾値を算出するための係数である。
最大値更新回数計数部82は、スレッド数の最大値が更新されたか否かを判定し、更新されたと判定した場合は、スレッド数情報記憶部912が記憶するスレッド数の最大値と最大値更新回数とを更新する点で、メモリ使用量の最大値が更新されたか否かを判定し、更新されたと判定した場合には、メモリ使用量情報記憶部312が記憶するメモリ使用量の最大値と最大値更新回数とを更新する図1の最大値更新回数計数部22と異なる。
スレッドリーク判定部83は、スレッド数情報記憶部912からスレッド数の現在値と最大値更新回数とスレッド数閾値とを読み出し、判定条件情報記憶部913から更新回数閾値を読み出して、最大値更新回数閾値が更新回数閾値以上であり、かつ、スレッド数の現在値がスレッド数閾値以上である場合にスレッドリーク有りと判定する点で、メモリ使用量情報記憶部312からメモリ使用量の現在値と最大値更新回数とメモリ使用量閾値とを読み出し、判定条件情報記憶部313から更新回数閾値を読み出して、最大値更新回数閾値が更新回数閾値以上であり、かつ、メモリ使用量の現在値がメモリ使用量閾値以上である場合にメモリリーク有りと判定する図1のメモリリーク判定部23と異なる。
また、実際にはスレッドリークが発生しておらず、スレッドリーク判定対象のプロセス(以下、「対象プロセス」という)のスレッド数が一時的に増加したに過ぎない場合、スレッドリーク判定装置7は、対象プロセスのスレッド数の最大値更新回数に基づいて、スレッドリーク無しと判定し得る。
さらに、スレッドリークが発生している場合は、スレッド数の増加率の大小にかかわらず、スレッド数が増加し続けることが考えられる。スレッド数の増加率が小さい場合でも、スレッドリーク検出装置7は、スレッド数の最大値更新回数が更新回数閾値以上、かつ、スレッド数がスレッド数閾値以上となった時点で、スレッド数が増加し続けていることを検出し、スレッドリーク有りと判定できる。この点でも、スレッドリーク判定装置7は、スレッド数増加率の大小にかかわらず、スレッドリークの有無について誤判定を行うおそれが少ない。
また、スレッドリーク判定装置7は、プロセスのスレッド数が閾値以上か否かのみでスレッドリークの有無を判定するスレッドリーク判定装置と比較すると、スレッド数閾値を小さい値に設定しても誤判定の可能性を低減できる。なぜなら、対象プロセスのスレッド数が一時的にあるいは定期的にスレッド数閾値以上となる場合でも、対象プロセスのスレッド数の最大値更新回数が最大値更新回数閾値以上か否かの判定により、スレッドリークが発生していないにもかかわらずスレッドリーク有りとする誤判定の可能性を低減し得るからである。
したがって、プロセスのスレッド数が閾値以上か否かのみでスレッドリークの有無を判定するスレッドリーク判定装置、対象プロセスのスレッド数が小さい段階で、すなわち、より早期にスレッドリークを検出できる。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
11 操作入力部
12 表示部
21 メモリ使用量取得部
22、52、82 最大値更新回数計数部
23 メモリリーク判定部
24 対策処理実行部
31、61、91 記憶部
311 プロセス情報記憶部
312 メモリ使用量情報記憶部
313、613、913 判定条件情報記憶部
314 処理内容情報記憶部
315 処理結果情報記憶部
4 ファイルリーク判定装置
51 オープンファイル数取得部
53 ファイルリーク判定部
612 オープンファイル数情報記憶部
7 スレッドリーク判定装置
81 スレッド数取得部
83 スレッドリーク判定部
912 スレッド数情報記憶部
Claims (4)
- プロセスがメモリを使用する際のメモリリークの有無を判定するメモリリーク判定装置であって、
前記プロセスのメモリ使用量を取得するメモリ使用量取得部と、
前記メモリ使用量取得部が取得する前記メモリ使用量の最大値更新回数を計数する最大値更新回数計数部と、
前記最大値更新回数計数部が計数する前記最大値更新回数に基づいて、前記メモリリークの有無を判定するメモリリーク判定部と、
を具備し、
前記メモリリーク判定部は、プロセス起動から一定時間経過後に前記メモリ使用量取得部が最初に取得した前記メモリ使用量であるメモリ使用量初期値を所定定数倍した値を閾値として、前記最大値更新回数が所定の回数より以上となり、かつ、前記メモリ使用量が前記閾値以上となった場合に、前記メモリリーク有りと判定する
ことを特徴とするメモリリーク判定装置。 - 前記メモリ使用量取得部は、複数の前記プロセスのメモリ使用量の合計値を前記メモリ使用量として取得することを特徴とする請求項1に記載のメモリリーク判定装置。
- プロセスがメモリを使用する際のメモリリークの有無を判定するメモリリーク判定装置のメモリリーク判定方法であって、
メモリ使用量取得部が、前記プロセスのメモリ使用量を取得するメモリ使用量取得ステップと、
最大値更新回数計数部が、前記メモリ使用量取得部が取得する前記メモリ使用量の最大値更新回数を計数する最大値更新回数計数ステップと、
メモリリーク判定部が、前記最大値更新回数計数部が計数する前記最大値更新回数に基づいて、前記メモリリークの有無を判定するメモリリーク判定ステップと、
を具備し、
前記メモリリーク判定ステップでは、前記メモリリーク判定部は、プロセス起動から一定時間経過した後に前記メモリ使用量取得部が最初に取得した前記メモリ使用量であるメモリ使用量初期値を所定定数倍した値を閾値として、前記最大値更新回数が所定の回数より以上となり、かつ、前記メモリ使用量が前記閾値以上となった場合に、前記メモリリーク有りと判定する
ことを特徴とするメモリリーク判定方法。 - プロセスがメモリを使用する際のメモリリークの有無を判定するメモリリーク判定装置としてのコンピュータに、
前記プロセスのメモリ使用量を取得するメモリ使用量取得ステップと、
前記メモリ使用量取得ステップにて取得する前記メモリ使用量の最大値更新回数を計数する最大値更新回数計数ステップと、
前記最大値更新回数計数ステップにて計数する前記最大値更新回数に基づいて、前記メモリリークの有無を判定するメモリリーク判定ステップと、
を実行させ、
前記メモリリーク判定ステップでは、プロセス起動から一定時間経過した後に最初に取得した前記メモリ使用量であるメモリ使用量初期値を所定定数倍した値を閾値として、前記最大値更新回数が所定の回数より以上となり、かつ、前記メモリ使用量が前記閾値以上となった場合に、前記メモリリーク有りと判定させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010105153A JP5327886B2 (ja) | 2010-04-30 | 2010-04-30 | メモリリーク判定装置、メモリリーク判定方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010105153A JP5327886B2 (ja) | 2010-04-30 | 2010-04-30 | メモリリーク判定装置、メモリリーク判定方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011233075A JP2011233075A (ja) | 2011-11-17 |
JP5327886B2 true JP5327886B2 (ja) | 2013-10-30 |
Family
ID=45322304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010105153A Expired - Fee Related JP5327886B2 (ja) | 2010-04-30 | 2010-04-30 | メモリリーク判定装置、メモリリーク判定方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5327886B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6237131B2 (ja) * | 2013-11-07 | 2017-11-29 | 富士通株式会社 | コンピュータプログラム、情報処理方法及び情報処理装置 |
JP6352627B2 (ja) * | 2013-12-11 | 2018-07-04 | Necプラットフォームズ株式会社 | コンピュータシステム及びその動作方法 |
JP2018018122A (ja) * | 2016-07-25 | 2018-02-01 | 富士通株式会社 | 情報処理プログラム、情報処理装置および情報処理方法 |
KR102536266B1 (ko) * | 2018-08-02 | 2023-05-25 | 삼성전자주식회사 | 메모리 누수 검출 방법 및 그 전자 장치 |
KR102148736B1 (ko) * | 2018-08-23 | 2020-10-14 | 세메스 주식회사 | 메모리 사용량 모니터링 방법 및 기판처리장치 |
KR102750979B1 (ko) | 2020-08-04 | 2025-01-08 | 삼성전자 주식회사 | 메모리 관리 방법 및 전자 장치 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06223280A (ja) * | 1993-01-06 | 1994-08-12 | Sony Corp | 電子機器 |
JP2004213122A (ja) * | 2002-12-27 | 2004-07-29 | Idemitsu Kosan Co Ltd | クライアント/サーバによる制御システムの安定稼働方法及びそのプログラム |
JP2005250751A (ja) * | 2004-03-03 | 2005-09-15 | Hitachi Ltd | メモリリーク監視方法、これを実行するプログラム及び装置 |
JP4512402B2 (ja) * | 2004-04-12 | 2010-07-28 | 株式会社日立製作所 | メモリリークの原因箇所検出方法、及びその実行プログラム |
JP2008059102A (ja) * | 2006-08-30 | 2008-03-13 | Fujitsu Ltd | コンピュータ資源監視プログラム |
-
2010
- 2010-04-30 JP JP2010105153A patent/JP5327886B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011233075A (ja) | 2011-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5327886B2 (ja) | メモリリーク判定装置、メモリリーク判定方法およびプログラム | |
US8990772B2 (en) | Dynamically recommending changes to an association between an operating system image and an update group | |
JP5440273B2 (ja) | スナップショット管理方法、スナップショット管理装置、及びプログラム | |
JP4060322B2 (ja) | アプリケーション管理装置およびそのソフトウェアを格納した記憶媒体 | |
US8930906B2 (en) | Selectively allowing changes to a system | |
US20140173327A1 (en) | Correcting a failure associated with a current firmware image | |
EP2616930A2 (en) | Message queue management | |
JP5385459B2 (ja) | 管理システム及び計算機システムの管理方法 | |
JP2009110156A (ja) | ログ出力装置及びログ出力プログラム | |
JP5998764B2 (ja) | 情報処理装置、ログ出力方法およびログ出力プログラム | |
WO2025020508A1 (zh) | 内存泄漏的检测方法、装置、电子设备及可读存储介质 | |
JP5014179B2 (ja) | Os優先度変更装置及びos優先度変更プログラム | |
US20110252256A1 (en) | Methods, systems, and computer program products for managing an idle computing component | |
CN104077210B (zh) | 一种客户端崩溃的定位方法及系统 | |
US10795657B2 (en) | Method of managing applications and computing device using the same | |
JPWO2014103037A1 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
CN107526675B (zh) | 记录应用信息的方法、装置、存储介质及电子设备 | |
US9696780B2 (en) | Information processing apparatus, system, management apparatus, and power status control method | |
US8832708B2 (en) | Process pool of empty application hosts to improve user perceived launch time of applications | |
US9098356B2 (en) | Hook re-entry prevention device and recording medium, in which program for executing method thereof in computer is recorded thereon | |
EP3070610B1 (en) | Information processing device, control method thereof, and recording medium | |
JP2017049715A (ja) | ログ管理プログラム、ログ管理方法およびログ管理装置 | |
JP6828533B2 (ja) | プログラム及び情報処理装置 | |
JP2022114158A (ja) | 情報処理装置、及びプログラム | |
JP5768086B2 (ja) | 監視装置、プログラムおよび監視方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121211 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130129 |
|
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: 20130625 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130718 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5327886 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |