JP4847300B2 - メモリリーク検出方法、メモリリーク検出装置及びメモリリーク検出プログラム - Google Patents
メモリリーク検出方法、メモリリーク検出装置及びメモリリーク検出プログラム Download PDFInfo
- Publication number
- JP4847300B2 JP4847300B2 JP2006318800A JP2006318800A JP4847300B2 JP 4847300 B2 JP4847300 B2 JP 4847300B2 JP 2006318800 A JP2006318800 A JP 2006318800A JP 2006318800 A JP2006318800 A JP 2006318800A JP 4847300 B2 JP4847300 B2 JP 4847300B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- memory leak
- processing
- trace information
- generated
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Description
20 ネットワーク
30 アプリケーション(AP)サーバ
40 メモリ領域
101 リクエスト受付部
102 プログラム群
103 ユーザメモリ領域
104 コンテナプログラム
105 ユーザプログラム
106 オブジェクト
107 リクエストトレース部
108 リクエストトレーステーブル
109 オブジェクト管理部
110 オブジェクトID管理部
111 GC処理部
112 オブジェクト管理テーブル
113 UI(GUI、CUI)
114 メモリリーク解析部
115 実行中リクエスト解析部
116 リークオブジェクト解析部
300 メモリリーク検出プログラム初期画面
301 メモリリークの疑いのあるオブジェクト一覧表示画面
302 オブジェクトを生成したリクエスト一覧表示画面
303 リクエストのトレース情報画面
Claims (12)
- アプリケーションサーバにおいて、受け付けたリクエストに基づいて実行された処理のメモリリークを検出する方法であって、
前記アプリケーションサーバは、インターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサによってアクセス可能なメモリと、プログラム及びデータを格納する記憶装置と、を備え、
前記プロセッサは、
前記受け付けたリクエストを特定する識別子と対応付けて、前記受け付けたリクエストに基づいて実行された処理の履歴をリクエストトレース情報として記録し、
前記受け付けたリクエストの処理の過程で生成されるオブジェクトを生成するとき、前記受け付けたリクエストと前記受け付けたリクエストの処理の過程で生成されるオブジェクトとの対応情報を記録し、前記受け付けたリクエストの処理の過程で生成されるオブジェクトの生成を前記リクエストトレース情報に記録し、
前記受け付けたリクエストの処理の過程で生成されるオブジェクトの使用を終了したとき、前記受け付けたリクエストと前記使用を終了したオブジェクトとの対応情報を削除し、前記使用を終了したオブジェクトの解放を前記リクエストトレース情報に記録し、
前記アプリケーションサーバが、メモリリークを検出する指示を受け付けたとき、
前記リクエストトレース情報に終了履歴が記録されていないリクエストを検索することによって、実行中のリクエストの一覧を取得し、
前記取得された実行中のリクエスト一覧に含まれず、かつ、前記受け付けたリクエストと前記受け付けたリクエストの処理の過程で生成されるオブジェクトとの対応情報に含まれる、リクエストに対応するオブジェクトを、メモリリークの疑いのあるオブジェクトとして検出する、ことを特徴とするメモリリーク検出方法。 - 前記受け付けたリクエストと前記受け付けたリクエストの処理の過程で生成されるオブジェクトとの対応情報は、前記受け付けたリクエストの処理の過程で生成されるオブジェクトを管理するオブジェクト管理情報に記録される、ことを特徴とする請求項1に記載のメモリリーク検出方法。
- 前記受け付けたリクエストと前記受け付けたリクエストの処理の過程で生成されるオブジェクトとの対応情報は、前記受け付けたリクエストの処理の過程で生成されるオブジェクトに記録される、ことを特徴とする請求項1に記載のメモリリーク検出方法。
- 前記プロセッサは、前記検出されたメモリリークの疑いのあるオブジェクトの一覧を表示する、ことを特徴とする請求項1に記載のメモリリーク検出方法。
- 前記プロセッサは、
前記検出されたメモリリークの疑いのあるオブジェクトの選択を受け付け、
前記選択されたメモリリークの疑いのあるオブジェクトを生成したリクエストの一覧を表示する、ことを特徴とする請求項4に記載のメモリリーク検出方法。 - 前記プロセッサは、
前記選択されたオブジェクトを生成したリクエストの選択を受け付け、
前記選択されたリクエストの履歴を、前記リクエストトレース情報から抽出し、
前記抽出されたリクエストの履歴を時系列順で表示する、ことを特徴とする請求項5に記載のメモリリーク検出方法。 - 前記プロセッサは、前記メモリリークを検出する指示を受け付けた後、前記メモリリークの疑いのあるオブジェクトを検出する前に、他のオブジェクトから参照されていないオブジェクトを解放する処理を実行する、ことを特徴とする請求項1に記載のメモリリーク検出方法。
- 前記プロセッサは、所定のタイミングで、
終了履歴が記録されたリクエストを、前記リクエストトレース情報から検索し、
処理が終了したリクエストとして検索されたリクエストであって、かつ、前記受け付けたリクエストと前記受け付けたリクエストの処理の過程で生成されるオブジェクトとの対応情報に対応するオブジェクトが記録されていないリクエストを抽出し、
前記抽出されたリクエストによって実行された処理のトレース情報であって、オブジェクトの生成又は解放が記録されたトレース情報を前記リクエストトレース情報から削除する、ことを特徴とする請求項1に記載のメモリリーク検出方法。 - 前記プロセッサは、周期的に、前記抽出されたリクエストによって実行された処理のトレース情報であって、オブジェクトの生成又は解放が記録されたトレース情報を前記リクエストトレース情報から削除する、ことを特徴とする請求項8に記載のメモリリーク検出方法。
- 前記プロセッサは、前記リクエストトレース情報として記録されたトレース情報の量が所定の値を超えたとき、前記抽出されたリクエストによって実行された処理のトレース情報であって、オブジェクトの生成又は解放が記録されたトレース情報を前記リクエストトレース情報から削除する、ことを特徴とする請求項8に記載のメモリリーク検出方法。
- 実行された処理のメモリリークを検出するメモリリーク検出装置であって、
インターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサによってアクセス可能なメモリと、プログラム及びデータを格納する記憶装置と、を備え、
業務処理を含んだリクエストを受け付けるリクエスト受付部と、
前記受け付けたリクエストを特定する識別子と対応付けて、前記受け付けたリクエストに基づいて実行された処理の履歴、前記受け付けたリクエストの処理の過程で生成されるオブジェクトの生成、及び、前記受け付けたリクエストの処理の過程で生成されるオブジェクトの使用を終了したときに前記使用を終了したオブジェクトの解放をリクエストトレース情報として記録するリクエストトレース部と、
前記受け付けたリクエストの処理の過程で生成されるオブジェクトを生成するとき、前記受け付けたリクエストを特定する識別子と、前記受け付けたリクエストの処理の過程で生成されるオブジェクトを特定する識別子と、の対応情報を記録し、前記受け付けたリクエストの処理の過程で生成されるオブジェクトの使用を終了したとき、前記受け付けたリクエストと前記使用を終了したオブジェクトとの対応情報を削除するオブジェクト管理部と、
メモリリークを検出する指示を受け付けたとき、前記リクエストトレース情報に終了履歴が記録されていないリクエストを検索することによって、実行中のリクエストの一覧を取得し、前記取得された実行中のリクエスト一覧に含まれず、かつ、前記受け付けたリクエストと前記受け付けたリクエストの処理の過程で生成されるオブジェクトとの対応情報に含まれる、リクエストに対応するオブジェクトを、メモリリークの疑いのあるオブジェクトとして検出するメモリリーク解析部と、を備えることを特徴とするメモリリーク検出装置。 - 受け付けたリクエストに基づいて処理を実行する計算機において、前記受け付けたリクエストに基づいて実行された処理のメモリリークを検出するプログラムであって、
前記受け付けたリクエストを特定する識別子と対応付けて、前記受け付けたリクエストに基づいて実行された処理の履歴をリクエストトレース情報として記録する手順と、
前記受け付けたリクエストの処理の過程で生成されるオブジェクトを生成するとき、
前記受け付けたリクエストを特定する識別子と、前記受け付けたリクエストの処理の過程で生成されるオブジェクトを特定する識別子と、の対応情報を記録する手順と、
前記受け付けたリクエストの処理の過程で生成されるオブジェクトの生成を前記リクエストトレース情報に記録する手順と、
前記受け付けたリクエストの処理の過程で生成されるオブジェクトの使用を終了したとき、
前記受け付けたリクエストと前記使用を終了したオブジェクトとの対応情報を削除する手順と、
前記使用を終了したオブジェクトの解放を前記リクエストトレース情報に記録する手順と、
前記計算機が、メモリリークを検出する指示を受け付けたとき、
前記リクエストトレース情報に終了履歴が記録されていないリクエストを検索することによって、実行中のリクエストの一覧を取得する手順と、
前記取得された実行中のリクエスト一覧に含まれず、かつ、前記受け付けたリクエストと前記受け付けたリクエストの処理の過程で生成されるオブジェクトとの対応情報に含まれる、リクエストに対応するオブジェクトを、メモリリークの疑いのあるオブジェクトとして検出する手順と、を計算機に実行させることを特徴とするメモリリーク検出プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006318800A JP4847300B2 (ja) | 2006-11-27 | 2006-11-27 | メモリリーク検出方法、メモリリーク検出装置及びメモリリーク検出プログラム |
US11/851,723 US20080127212A1 (en) | 2006-11-27 | 2007-09-07 | Memory leak detecting method, memory leak detecting device and memory leak detecting program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006318800A JP4847300B2 (ja) | 2006-11-27 | 2006-11-27 | メモリリーク検出方法、メモリリーク検出装置及びメモリリーク検出プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008134709A JP2008134709A (ja) | 2008-06-12 |
JP4847300B2 true JP4847300B2 (ja) | 2011-12-28 |
Family
ID=39465441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006318800A Expired - Fee Related JP4847300B2 (ja) | 2006-11-27 | 2006-11-27 | メモリリーク検出方法、メモリリーク検出装置及びメモリリーク検出プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080127212A1 (ja) |
JP (1) | JP4847300B2 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080028302A1 (en) * | 2006-07-31 | 2008-01-31 | Steffen Meschkat | Method and apparatus for incrementally updating a web page |
JP4852621B2 (ja) | 2009-03-03 | 2012-01-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム中のオブジェクトの割り付け場所を追跡する方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム |
JP5182821B2 (ja) | 2009-05-29 | 2013-04-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム中のメモリ消費の発生原因を突き止める方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム |
KR100936967B1 (ko) | 2009-08-04 | 2010-01-14 | 주식회사 엑셈 | 웹 어플리케이션 서버 운영 하에서 사용자 프로그램의 메모리 누수 추적 장치 및 그 방법 |
US8762783B2 (en) * | 2010-06-24 | 2014-06-24 | International Business Machines Corporation | Error identification |
US8996985B1 (en) | 2011-03-16 | 2015-03-31 | Google Inc. | Online document processing service for displaying comments |
US10430388B1 (en) | 2011-10-17 | 2019-10-01 | Google Llc | Systems and methods for incremental loading of collaboratively generated presentations |
US8812946B1 (en) | 2011-10-17 | 2014-08-19 | Google Inc. | Systems and methods for rendering documents |
US8471871B1 (en) | 2011-10-17 | 2013-06-25 | Google Inc. | Authoritative text size measuring |
US8266245B1 (en) | 2011-10-17 | 2012-09-11 | Google Inc. | Systems and methods for incremental loading of collaboratively generated presentations |
US20150199308A1 (en) | 2011-10-17 | 2015-07-16 | Google Inc. | Systems and methods for controlling the display of online documents |
US8751546B1 (en) * | 2012-01-06 | 2014-06-10 | Google Inc. | Systems and methods for minimizing the effects of garbage collection |
US9367522B2 (en) | 2012-04-13 | 2016-06-14 | Google Inc. | Time-based presentation editing |
US9529785B2 (en) | 2012-11-27 | 2016-12-27 | Google Inc. | Detecting relationships between edits and acting on a subset of edits |
US9164872B2 (en) * | 2013-05-22 | 2015-10-20 | Sap Se | Tracking of program objects during request processing |
US9971752B2 (en) | 2013-08-19 | 2018-05-15 | Google Llc | Systems and methods for resolving privileged edits within suggested edits |
US9348803B2 (en) | 2013-10-22 | 2016-05-24 | Google Inc. | Systems and methods for providing just-in-time preview of suggestion resolutions |
JP6428005B2 (ja) * | 2014-07-10 | 2018-11-28 | 富士通株式会社 | 情報処理装置,情報処理方法及び情報処理プログラム |
JP6447348B2 (ja) | 2015-05-01 | 2019-01-09 | 富士通株式会社 | ダンプデータ管理プログラム、ダンプデータ管理方法、およびダンプデータ管理装置 |
CN116069532A (zh) * | 2021-10-29 | 2023-05-05 | 戴尔产品有限公司 | 使用对异常内存使用模式的基于规则的检测来识别和补救内存泄漏 |
CN117149477B (zh) * | 2023-02-08 | 2024-07-30 | 荣耀终端有限公司 | 内存泄露检测方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10254728A (ja) * | 1997-03-06 | 1998-09-25 | Mitsubishi Electric Corp | デバッグシステム |
JPH11203193A (ja) * | 1998-01-14 | 1999-07-30 | Hitachi Ltd | 共有メモリ管理装置及び方法 |
JP2000003303A (ja) * | 1998-06-16 | 2000-01-07 | Nippon Signal Co Ltd:The | 情報処理装置、情報処理方法、記憶媒体 |
JP2002055852A (ja) * | 2000-08-07 | 2002-02-20 | Nec Corp | オブジェクトの生成・消滅情報管理方式 |
JP2002189596A (ja) * | 2000-12-20 | 2002-07-05 | Ricoh Co Ltd | データ処理装置 |
US20050081190A1 (en) * | 2003-09-30 | 2005-04-14 | International Business Machines Corporation | Autonomic memory leak detection and remediation |
-
2006
- 2006-11-27 JP JP2006318800A patent/JP4847300B2/ja not_active Expired - Fee Related
-
2007
- 2007-09-07 US US11/851,723 patent/US20080127212A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2008134709A (ja) | 2008-06-12 |
US20080127212A1 (en) | 2008-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4847300B2 (ja) | メモリリーク検出方法、メモリリーク検出装置及びメモリリーク検出プログラム | |
CN110069463B (zh) | 用户行为处理方法、装置电子设备及存储介质 | |
JP2011028737A (ja) | フォーム操作のためにスクリーン・キャプチャ機能を強化する方法およびコンピュータ・プログラム | |
US8489941B2 (en) | Automatic documentation of ticket execution | |
JP3954642B1 (ja) | 画面保存システム | |
JP2006276926A (ja) | データの再配置方法 | |
KR101748833B1 (ko) | 소프트웨어 고장의 위치 확정 방법, 장치 및 설비 | |
CN106980572B (zh) | 分布式系统的在线调试方法和系统 | |
JP2007334716A (ja) | 運用管理システム、監視装置、被監視装置、運用管理方法及びプログラム | |
US20120041946A1 (en) | Data search apparatus, control method thereof and computer readable storage medium | |
JP5294002B2 (ja) | 文書管理システム、文書管理プログラム及び文書管理方法 | |
CN107977258A (zh) | 计算机可读介质、系统及信息处理方法 | |
US20220164703A1 (en) | Model acceptance determination support system and model acceptance determination support method | |
JP5747751B2 (ja) | リグレッションテスト支援プログラム及びリグレッションテスト支援装置 | |
JP5758544B2 (ja) | 画面情報収集計算機、画面情報収集方法及び計算機読み取り可能な記憶媒体 | |
JP4636029B2 (ja) | 画像形成装置及びプログラム | |
JP6075013B2 (ja) | ログ取得プログラム、ログ取得装置及びログ取得方法 | |
JP6340990B2 (ja) | メッセージ表示方法、メッセージ表示装置、およびメッセージ表示プログラム | |
US11354081B2 (en) | Information processing apparatus with concealed information | |
JP2009134535A (ja) | ソフトウェア開発支援装置、ソフトウェア開発支援方法及びソフトウェア開発支援プログラム | |
JP2004178340A (ja) | 返答取得支援プログラムおよび返答取得支援方法 | |
US20210149721A1 (en) | Information processing system, information processing apparatus, and non-transitory computer readable medium storing program | |
JP4451305B2 (ja) | 経験スコア管理システムおよび方法、プログラム | |
JP2011118575A (ja) | 障害対策情報取得方法および管理サーバ | |
JP2017220086A (ja) | 障害情報収集システム、情報処理装置、障害情報収集装置、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081219 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110802 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110922 |
|
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: 20111011 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111013 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141021 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |