JP2010182016A - メモリリーク検出装置および方法ならびにプログラム - Google Patents
メモリリーク検出装置および方法ならびにプログラム Download PDFInfo
- Publication number
- JP2010182016A JP2010182016A JP2009023824A JP2009023824A JP2010182016A JP 2010182016 A JP2010182016 A JP 2010182016A JP 2009023824 A JP2009023824 A JP 2009023824A JP 2009023824 A JP2009023824 A JP 2009023824A JP 2010182016 A JP2010182016 A JP 2010182016A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- garbage collection
- related information
- memory leak
- information
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Memory System (AREA)
Abstract
【解決手段】 ガベージコレクションを実装したコンピュータシステムにおけるメモリリーク検出装置であって、演算処理手段10は、ガベージコレクションの前後に生成されるオブジェクト数の変化に関する情報を参照し、メモリリーク発生の可能性の有無を判定する。
【選択図】 図1
Description
本発明の目的は、メモリリークの発生箇所の特定を精度良く、かつ検出に至るまでの時間を短縮する、メモリリーク検出装置および方法ならびにプログラムを提供することにある。
図1は、本発明の第1の実施の形態によるメモリリーク検出装置1の構成を示すブロック図である。
次に、本発明の第1の実施の形態によるメモリリーク検出装置1の動作について図3に示すフローチャート、図4に示すメモリ情報テーブルのデータ構造の一例、および、図5に示すメモリリーク可能性候補一覧を参照して説明する。
本実施の形態によるメモリリーク検出装置1では、ガベージコレクションの前後に生成されるオブジェクト数の変化を考慮してメモリリーク発生の可能性の有無を判定することにより、プログラム上のどのルートで作成されたオブジェクトがメモリに残り続けているかを発見するのが容易になり、また、メモリリークが少量の場合でもその発見箇所の特定が容易になる。
10:メモリを含む演算処理手段
11:仮想マシン処理部
12:サーバ処理部
13:クライアント処理部
111:プログラム
112:ヒープ
113:スタック
121:メモリ情報取得部
122:ID付与部
123:メモリ情報整理部
124:メモリ情報保存部
125:メモリ情報送信部
131:メモリ情報受信部
132:メモリ情報解析部
133:メモリ情報保存部、
134:メモリリーク警告表示部
Claims (12)
- ガベージコレクションを実装したコンピュータシステムにおけるメモリリーク検出装置であって、
前記ガベージコレクションの前後に生成されるオブジェクト数の変化に関する情報を参照し、メモリリーク発生の可能性の有無を判定する演算処理手段、
を備えたことを特徴とするメモリリーク検出装置。 - 前記演算処理手段は、
仮想マシン上で動作するプログラムにより生成されるメモリ情報を取得し、当該取得したメモリ情報から前記オブジェクトが生成されたときのスタックトレースと、前記オブジェクト生成後のガベージコレクション発生回数とを組にした関連情報を生成するサーバ処理部と、
前記サーバ処理部から前記関連情報を取得し、前記関連情報と過去に取得した関連情報とを比較して同種スタックトレースの合計数に変化があり、合計カベージコレクション発生回数が増加傾向にあるスタックトレースをメモリリークの可能性ありと判定し、外部に報知するクライアント処理部と、
を備えることを特徴とする請求項1に記載のメモリリーク検出装置。 - 前記サーバ処理部は、
前記取得したメモリ情報から各オブジェクトを生成したスタックトレースの取得を行い、
前記取得したスタックトレースに一意の識別情報を付与し、
前記取得した1以上のスタックトレースについて前回取得したスタックトレースと比較し、同じスタックトレースの識別情報があれば前記カベージコレクション発生回数を更新して、前記識別情報と、前記スタックトレースと、前記オブジェクトが生成されてから発生したガベージコレクション発生回数とを組みにした第1の関連情報を生成し、
更に同種のスタックトレースの有無を判定し、同種スタックトレースがある場合は、当該同種スタックトレース合計数と、カベージコレクション発生合計数とからなる第2の関連情報を生成し、
前記生成した第2の関連情報を前記クライアント処理部に引き渡す、
ことを特徴とする請求項2に記載のメモリリーク検出装置。 - 前記クライアント処理部は、
前記サーバ処理部から取得した第2の関連情報を参照し、前記第2の関連情報に含まれる前記スタクトレース合計数について前回取得した分との変化の有無を判定し、
変化ありと判定された場合、前記カベージコレクション発生回数を前記スタックトレースの合計数で割った平均値を計算し、前回平均値と比較して増加していた場合にメモリリーク発生の可能性ありと判定して外部に報知する、
ことを特徴とする請求項3に記載のメモリリーク検出装置。 - 少なくともメモリを含む演算処理手段を備え、ガベージコレクションを実装したコンピュータシステムにおけるメモリリーク検出方法であって、
前記ガベージコレクションの前後に生成されるオブジェクト数の変化に関する情報を参照し、メモリリーク発生の可能性の有無を判定する演算処理ステップ、
を有することを特徴とするメモリリーク検出方法。 - 前記演算処理ステップは、
仮想マシン上で動作するプログラムにより生成されるメモリ情報を取得し、当該取得したメモリ情報から前記オブジェクトが生成されたときのスタックトレースと、前記オブジェクト生成後のガベージコレクション発生回数とを組にした関連情報を生成する第1の演算処理ステップと、
前記第1のステップで生成された前記関連情報を取得し、前記関連情報と過去に取得した関連情報とを比較して同種スタックトレースの合計数に変化があり、合計ガベージコレクション発生回数が増加傾向にあるスタックトレースをメモリリークの可能性ありと判定し、外部に報知する第2の演算処理ステップと、
を含むことを特徴とする請求項5に記載のメモリリーク検出方法。 - 前記第1の演算処理ステップは、
前記取得したメモリ情報から各オブジェクトを生成したスタックトレースの取得を行うサブステップと、
前記取得したスタックトレースに一意の識別情報を付与するサブステップと、
前記取得した1以上のスタックトレースについて前回取得したスタックトレースと比較し、同じスタックトレースの識別情報があれば前記カベージコレクション発生回数を更新して、前記識別情報と、前記スタックトレースと、前記オブジェクトが生成されてから発生したガベージコレクション発生回数とを組みにした第1の関連情報を生成するサブステップと、
更に同種のスタックトレースの有無を判定し、同種スタックトレースがある場合は、当該同種スタックトレース合計数と、カベージコレクション発生合計数とからなる第2の関連情報を生成するサブステップと、
前記生成した第2の関連情報を前記第2の演算処理ステップに引き渡すサブステップと、
を含むことを特徴とする請求項6に記載のメモリリーク検出方法。 - 前記第2の演算処理ステップは、
前記第1の演算処理ステップから引き渡される前記第2の関連情報を参照し、前記第2の関連情報に含まれる前記スタクトレース合計数について前回取得した分との変化の有無を判定するサブステップと、
変化ありと判定された場合、前記カベージコレクション発生回数を前記スタックトレースの合計数で割った平均値を計算し、前回平均値と比較して増加していた場合にメモリリーク発生の可能性ありと判定して外部に報知するサブステップと、
を含むことを特徴とする請求項7に記載のメモリリーク検出方法。 - コンピュータ上で実行され、ガベージコレクションを実装したコンピュータシステムにおけるメモリリーク検出プログラムであって、
前記コンピュータに、
前記ガベージコレクションの前後に生成されるオブジェクト数の変化に関する情報を参照し、メモリリーク発生の可能性の有無を判定するメモリリーク検出処理、
を実行させることを特徴とするメモリリーク検出プログラム。 - 前記メモリリーク検出処理は、
仮想マシン上で動作するプログラムにより生成されるメモリ情報を取得し、当該取得したメモリ情報から前記オブジェクトが生成されたときのスタックトレースと、前記オブジェクト生成後のガベージコレクション発生回数とを組にした関連情報を生成する関連情報生成処理と、
前記関連情報生成処理で生成された前記関連情報を取得し、前記関連情報と過去に取得した関連情報とを比較して同種スタックトレースの合計数に変化があり、合計ガベージコレクション発生回数が増加傾向にあるスタックトレースをメモリリークの可能性ありと判定し、外部に報知する判定および報知処理と、
を含むことを特徴とする請求項9に記載のメモリリーク検出プログラム。 - 前記関連情報生成処理は、
前記取得したメモリ情報から各オブジェクトを生成したスタックトレースの取得を行うスタックトレース取得処理と、
前記取得したスタックトレースに一意の識別情報を付与する識別情報付与処理と、
前記取得した1以上のスタックトレースについて前回取得したスタックトレースと比較し、同じスタックトレースの識別情報があれば前記カベージコレクション発生回数を更新して、前記識別情報と、前記スタックトレースと、前記オブジェクトが生成されてから発生したガベージコレクション発生回数とを組みにした第1の関連情報を生成する第1の関連情報生成処理と、
更に同種のスタックトレースの有無を判定し、同種スタックトレースがある場合は、当該同種スタックトレース合計数と、カベージコレクション発生合計数とからなる第2の関連情報を生成する第2の関連情報生成処理と、
前記生成した第2の関連情報を前記判定および報知処理に引き渡す関連情報出力処理と、
を含むことを特徴とする請求項10に記載のメモリリーク検出プログラム。 - 前記判定および報知処理は、
前記関連情報生成処理から引き渡される前記第2の関連情報を参照し、前記第2の関連情報に含まれる前記スタクトレース合計数について前回取得した分との変化の有無を判定する判定処理と、
変化ありと判定された場合、前記カベージコレクション発生回数を前記スタックトレースの合計数で割った平均値を計算し、前回平均値と比較して増加していた場合にメモリリーク発生の可能性ありと判定して外部に報知する報知処理と、
を含むことを特徴とする請求項11に記載のメモリリーク検出プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009023824A JP5458589B2 (ja) | 2009-02-04 | 2009-02-04 | メモリリーク検出装置および方法ならびにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009023824A JP5458589B2 (ja) | 2009-02-04 | 2009-02-04 | メモリリーク検出装置および方法ならびにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010182016A true JP2010182016A (ja) | 2010-08-19 |
JP5458589B2 JP5458589B2 (ja) | 2014-04-02 |
Family
ID=42763571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009023824A Expired - Fee Related JP5458589B2 (ja) | 2009-02-04 | 2009-02-04 | メモリリーク検出装置および方法ならびにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5458589B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101494328B1 (ko) | 2013-06-28 | 2015-02-23 | 부산대학교 산학협력단 | 힙 분석을 이용한 메모리 누수 탐지 장치 및 방법 |
JP2018147068A (ja) * | 2017-03-02 | 2018-09-20 | 富士通株式会社 | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060080364A1 (en) * | 2004-10-07 | 2006-04-13 | International Business Machines Corporation | Method, system, and computer program product for detecting memory management anti-patterns |
US20060206885A1 (en) * | 2005-03-10 | 2006-09-14 | Seidman David I | Identifying memory leaks in computer systems |
US7325106B1 (en) * | 2004-07-16 | 2008-01-29 | Sun Microsystems, Inc. | Method for monitoring heap for memory leaks |
-
2009
- 2009-02-04 JP JP2009023824A patent/JP5458589B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7325106B1 (en) * | 2004-07-16 | 2008-01-29 | Sun Microsystems, Inc. | Method for monitoring heap for memory leaks |
US20060080364A1 (en) * | 2004-10-07 | 2006-04-13 | International Business Machines Corporation | Method, system, and computer program product for detecting memory management anti-patterns |
US20060206885A1 (en) * | 2005-03-10 | 2006-09-14 | Seidman David I | Identifying memory leaks in computer systems |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101494328B1 (ko) | 2013-06-28 | 2015-02-23 | 부산대학교 산학협력단 | 힙 분석을 이용한 메모리 누수 탐지 장치 및 방법 |
JP2018147068A (ja) * | 2017-03-02 | 2018-09-20 | 富士通株式会社 | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP5458589B2 (ja) | 2014-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111049705A (zh) | 一种监控分布式存储系统的方法及装置 | |
US10365964B1 (en) | Data processing platform monitoring | |
US7352481B2 (en) | Systems and methods for recovery of a failed raster image processor partition | |
JP4880376B2 (ja) | 支援装置、プログラム、情報処理システム及び支援方法 | |
US9535666B2 (en) | Dynamic agent delivery | |
CN107807841B (zh) | 服务器模拟方法、装置、设备及可读存储介质 | |
US11086919B2 (en) | Service regression detection using real-time anomaly detection of log data | |
CN107908679B (zh) | 脚本语句转换方法、装置及计算机可读存储介质 | |
JP5458589B2 (ja) | メモリリーク検出装置および方法ならびにプログラム | |
US10191844B2 (en) | Automatic garbage collection thrashing monitoring | |
US10565636B2 (en) | Electronic device, system, and method | |
CN107317722B (zh) | 一种数据源可扩展系统及方法 | |
CN112749062A (zh) | 服务端程序监控方法、装置、计算机设备及存储介质 | |
JP7338246B2 (ja) | 情報処理装置、ログ参照プログラム | |
JP2007275558A (ja) | 医用画像読影装置、及びカーソル移動プログラム | |
CN115576737A (zh) | 异常检测方法、装置、电子设备及存储介质 | |
US10977146B2 (en) | Application operation monitoring apparatus and application operation monitoring method | |
US10165074B2 (en) | Asynchronous custom exit points | |
CN112698879A (zh) | 加载源文件的方法及装置 | |
US9838488B2 (en) | Agent asynchronous transaction monitor | |
JP2017151594A (ja) | 支援装置、支援方法及びプログラム | |
CN110780983A (zh) | 任务异常处理方法、装置、计算机设备以及存储介质 | |
WO2022107406A1 (ja) | 情報処理システム、情報処理方法及び計算機 | |
JPWO2010035480A1 (ja) | 分散処理システム、分散処理方法およびプログラム | |
JP2019047188A (ja) | 分析管理システムおよび分析管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120111 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130724 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130726 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130924 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131004 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20131010 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131202 |
|
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: 20131217 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131230 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5458589 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |