JP6446125B2 - リソースリーク検出の方法、装置及びシステム - Google Patents
リソースリーク検出の方法、装置及びシステム Download PDFInfo
- Publication number
- JP6446125B2 JP6446125B2 JP2017511234A JP2017511234A JP6446125B2 JP 6446125 B2 JP6446125 B2 JP 6446125B2 JP 2017511234 A JP2017511234 A JP 2017511234A JP 2017511234 A JP2017511234 A JP 2017511234A JP 6446125 B2 JP6446125 B2 JP 6446125B2
- Authority
- JP
- Japan
- Prior art keywords
- resource
- target
- storage
- preset
- proportional 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims description 115
- 238000000034 method Methods 0.000 claims description 64
- 238000013468 resource allocation Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000012417 linear regression Methods 0.000 description 8
- 238000010998 test method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 239000002775 capsule Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000000611 regression analysis Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- 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/073—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 memory management context, e.g. virtual memory or cache management
-
- 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/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
プログラムのターゲットコードの実行時に呼び出されるターゲットリソースを取得するステップであって、ターゲットコードはプログラムコードの部分コードである、ステップと、
ターゲットリソースによって占用される第1の記憶リソース量を決定するステップと、
ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たすか否かを判定するステップであって、第1の事前設定された条件は、ターゲットリソースによって占用される第1の記憶リソース量がリソースリークを構成することとして設定される、ステップと、
ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たす場合、ターゲットコードの記憶場所をリソースリーク場所として決定するステップと、
を含む。
ターゲットコードの実行時にターゲットサブリソースが呼び出される呼出パスを取得するステップと、
ターゲットサブリソースが占める第1の記憶リソース量における比例値を決定するステップと、
ターゲットサブリソースが占める第1の記憶リソース量における比例値が、第2の事前設定された条件を満たすか否かを判定するステップであって、第2の事前設定された条件は、ターゲットサブリソースが占める第1の記憶リソース量における比例値がリソースリークを構成することとして設定される、ステップと、
ターゲットサブリソースが占める第1の記憶リソース量における比例値が第2の事前設定された条件を満たす場合、ターゲットサブリソースが呼び出される呼出パスをリソースリーク呼出パスとして決定するステップと、
を含む。
ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たすか否かを判定するステップは、
ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された閾値よりも大きいか否かを判定し、ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された閾値よりも大きい場合、ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たすと決定するステップ、又は、
ターゲットリソースによって占用される第1の記憶リソース量が、リソース周期において第1の事前設定された増加規則を満たすか否かを判定し、ターゲットリソースによって占用される第1の記憶リソース量が、リソース周期において第1の事前設定された増加規則を満たす場合、ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たすと決定するステップ、
を含む。
ターゲットサブリソースが占める第1の記憶リソース量における比例値が、第2の事前設定された条件を満たすか否かを判定するステップは、
ターゲットサブリソースが占める第1の記憶リソース量における比例値が、第2の事前設定された閾値よりも大きいか否かを判定し、ターゲットサブリソースが占める第1の記憶リソース量における比例値が第2の事前設定された閾値よりも大きい場合、ターゲットサブリソースが占める第1の記憶リソース量における比例値が第2の事前設定された条件を満たすと決定するステップ、又は、
ターゲットサブリソースが占める第1の記憶リソース量における比例値が、リソース周期において第2の事前設定された増加規則を満たすか否かを判定し、ターゲットサブリソースが占める第1の記憶リソース量における比例値が、リソース周期において第2の事前設定された増加規則を満たす場合、ターゲットサブリソースが占める第1の記憶リソース量における比例値が第2の事前設定された条件を満たすと決定するステップ、
を含む。
記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースを取得するステップであって、少なくとも2つの記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースが、ターゲットリソースを構成する、ステップと、
記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースの占める第1の記憶リソース量における比例値を決定するステップと、
比例値が第3の事前設定された条件を満たすか否かを判定するステップであって、第3の事前設定された条件は、記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースの占める第1の記憶リソース量における比例値がリソースリークを構成することとして設定される、ステップと、
比例値が第3の事前設定された条件を満たす場合、記憶場所単位をリソースリーク場所単位として決定するステップと、
を含む。
比例値が第3の事前設定された条件を満たすか否かを判定するステップは、
比例値が第3の事前設定された閾値よりも大きいか否かを判定し、比例値が第3の事前設定された閾値よりも大きい場合、比例値が第3の事前設定された条件を満たすと決定するステップ、又は、
比例値がリソース周期において第3の事前設定された増加規則を満たすか否かを判定し、比例値がリソース周期において第3の事前設定された増加規則を満たす場合、比例値が第3の事前設定された条件を満たすと決定するステップ、
を含む。
プログラムのターゲットコードの実行時に呼び出されるターゲットリソースを取得するように構成される第1の取得モジュールであって、ターゲットコードはプログラムコードの部分コードである、第1の取得モジュールと、
ターゲットリソースによって占用される第1の記憶リソース量を決定するように構成される第1の決定モジュールと、
ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たすか否かを判定するように構成される第1の判定モジュールであって、第1の事前設定された条件は、ターゲットリソースによって占用される第1の記憶リソース量がリソースリークを構成することとして設定される、第1の判定モジュールと、
第1の判定モジュールの判定結果が是であるとき、ターゲットコードの記憶場所をリソースリーク場所として決定するように構成されるリーク場所決定モジュールと、
を備える。
ターゲットコードの実行時にターゲットサブリソースが呼び出される呼出パスを取得するように構成される第2の取得モジュールと、
ターゲットサブリソースが占める第1の記憶リソース量における比例値を決定するように構成される第2の決定モジュールと、
ターゲットサブリソースが占める第1の記憶リソース量における比例値が、第2の事前設定された条件を満たすか否かを判定するように構成される第2の判定モジュールであって、第2の事前設定された条件は、ターゲットサブリソースが占める第1の記憶リソース量における比例値がリソースリークを構成することとして設定される、第2の判定モジュールと、
第2の判定モジュールの判定結果が是であるとき、ターゲットサブリソースが呼び出される呼出パスをリソースリーク呼出パスとして決定するように構成されるリークパス決定モジュールと、
を備える。
第1の判定モジュールは、第1の判定サブモジュール又は第2の判定サブモジュールを含み、
第1の判定サブモジュールは、ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された閾値よりも大きいか否かを判定し、第1の判定サブモジュールの判定結果が是であるとき、第1の判定モジュールの判定結果が是であると決定するように構成され、
第2の判定サブモジュールは、ターゲットリソースによって占用される第1の記憶リソース量が、リソース周期において第1の事前設定された増加規則を満たすか否かを判定し、第2の判定サブモジュールの判定結果が是であるとき、第1の判定モジュールの判定結果が是であると決定するように構成される。
第2の判定モジュールは、第3の判定サブモジュール又は第4の判定サブモジュールを含み、
第3の判定サブモジュールは、ターゲットサブリソースが占める第1の記憶リソース量における比例値が、第2の事前設定された閾値よりも大きいか否かを判定し、第3の判定サブモジュールの判定結果が是であるとき、第2の判定モジュールの判定結果が是であると決定するように構成され、
第4の判定サブモジュールは、ターゲットサブリソースが占める第1の記憶リソース量における比例値が、リソース周期において第2の事前設定された増加規則を満たすか否かを判定し、第4の判定サブモジュールの判定結果が是であるとき、第2の判定モジュールの判定結果が是であると決定するように構成される。
記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースを取得するように構成される第3の取得モジュールであって、少なくとも2つの記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースが、ターゲットリソースを構成する、第3の取得モジュールと、
記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースの占める第1の記憶リソース量における比例値を決定するように構成される第3の決定モジュールと、
比例値が第3の事前設定された条件を満たすか否かを判定するように構成される第3の判定モジュールであって、第3の事前設定された条件は、記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースの占める第1の記憶リソース量における比例値がリソースリークを構成することとして設定される、第3の判定モジュールと、
第3の判定モジュールの判定結果が是であるとき、記憶場所単位をリソースリーク場所単位として決定するように構成されるリーク場所単位決定モジュールと、
を備える。
第3の判定モジュールは、第5の判定サブモジュール又は第6の判定サブモジュールを含み、
第5の判定サブモジュールは、比例値が第3の事前設定された閾値よりも大きいか否かを判定し、第5の判定サブモジュールの判定結果が是であるとき、第3の判定モジュールの判定結果が是であると決定するように構成され、
第6の判定サブモジュールは、比例値がリソース周期において第3の事前設定された増加規則を満たすか否かを判定するように構成され、リソース周期は第1の記憶リソース量の占用される周期であり、且つ、第6の判定サブモジュールの判定結果が是であるとき、第3の判定モジュールの判定結果が是であると決定するように構成される。
メモリは、リソースリーク検出プログラムを記憶するように構成され、
リソースリーク検出装置は、メモリに記憶されたリソースリーク検出プログラムを実行して、第1の態様と、第1の態様の第1の可能な実施方式、第2の可能な実施方式、第3の可能な実施方式及び第4の可能な実施方式とのうちいずれか1つに係るリソースリーク検出方法を実行するように構成され、
表示装置は、リソースリーク検出装置によって得られたリソースリーク検出結果を表示するように構成される。
ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された閾値よりも大きいか否かを判定し、ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された閾値よりも大きい場合、ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たすと決定するステップ、又は、
ターゲットリソースによって占用される第1の記憶リソース量が、リソース周期において第1の事前設定された増加規則を満たすか否かを判定し、ターゲットリソースによって占用される第1の記憶リソース量が、リソース周期において第1の事前設定された増加規則を満たす場合、ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たすと決定するステップ、
を含んでよい。
リソースリーク検出結果についての情報を出力するステップ、
を含んでよい。
ターゲットサブリソースが占める第1の記憶リソース量における比例値が、第2の事前設定された閾値よりも大きいか否かを判定し、ターゲットサブリソースが占める第1の記憶リソース量における比例値が第2の事前設定された閾値よりも大きい場合、ターゲットサブリソースが占める第1の記憶リソース量における比例値が第2の事前設定された条件を満たすと決定するステップ、又は、
ターゲットサブリソースが占める第1の記憶リソース量における比例値が、リソース周期において第2の事前設定された増加規則を満たすか否かを判定し、ターゲットサブリソースが占める第1の記憶リソース量における比例値が、リソース周期において第2の事前設定された増加規則を満たす場合、ターゲットサブリソースが占める第1の記憶リソース量における比例値が第2の事前設定された条件を満たすと決定するステップ、
を含んでよい。
比例値が第3の事前設定された閾値よりも大きいか否かを判定し、比例値が第3の事前設定された閾値よりも大きい場合、比例値が第3の事前設定された条件を満たすと決定するステップ、又は、
比例値がリソース周期において第3の事前設定された増加規則を満たすか否かを判定し、リソース周期は第1の記憶リソース量の占用される周期であり、且つ、比例値がリソース周期において第3の事前設定された増加規則を満たす場合、比例値が第3の事前設定された条件を満たすと決定するステップ、
を含んでよい。
任意の実施方式では、第2の事前設定された条件は、ターゲットサブリソースが占める第1の記憶リソース量における比例値がリソースリークを構成することとして設定される。第2の事前設定された条件は、第2の事前設定された閾値又は第2の事前設定された増加規則を含んでよい。第2の事前設定された閾値は、第1の記憶リソース量の比例値が、リソースリークを構成する、ターゲットサブリソースが占める第1の記憶リソース量における比例値の最小値よりも大きいこととして設定される。第2の事前設定された増加規則は、ターゲットサブリソースが占める第1の記憶リソース量における比例値のリソース周期における増加傾向変化がリソースリークを構成することとして設定される。リソース周期は、ターゲットリソースが記憶空間を占用するライフサイクルである。更に、第2の判定モジュール407は、第3の判定サブモジュール又は第4の判定サブモジュールを有してよい。
プログラムのターゲットコードの実行時に呼び出されるターゲットリソースを取得するステップであって、ターゲットコードはプログラムコードの部分コードである、ステップと、
ターゲットリソースによって占用される第1の記憶リソース量を決定するステップと、
ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たすか否かを判定するステップであって、第1の事前設定された条件は、ターゲットリソースによって占用される第1の記憶リソース量がリソースリークを構成することとして設定される、ステップと、
ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たす場合、ターゲットコードの記憶場所をリソースリーク場所として決定するステップと、
を実行する。
ターゲットコードの実行時にターゲットサブリソースが呼び出される呼出パスを取得するように構成され、
ターゲットサブリソースが占める第1の記憶リソース量における比例値を決定するように構成され、
ターゲットサブリソースが占める第1の記憶リソース量における比例値が、第2の事前設定された条件を満たすか否かを判定するように構成され、第2の事前設定された条件は、ターゲットサブリソースが占める第1の記憶リソース量における比例値がリソースリークを構成することとして設定され、
ターゲットサブリソースが占める第1の記憶リソース量における比例値が第2の事前設定された条件を満たす場合、ターゲットサブリソースが呼び出される呼出パスをリソースリーク呼出パスとして決定するように構成される。
ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された閾値よりも大きいか否かを判定し、ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された閾値よりも大きい場合、ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たすと決定するステップ、又は、
ターゲットリソースによって占用される第1の記憶リソース量が、リソース周期において第1の事前設定された増加規則を満たすか否かを判定し、ターゲットリソースによって占用される第1の記憶リソース量が、リソース周期において第1の事前設定された増加規則を満たす場合、ターゲットリソースによって占用される第1の記憶リソース量が第1の事前設定された条件を満たすと決定するステップ、
を含む。
ターゲットサブリソースが占める第1の記憶リソース量における比例値が、第2の事前設定された閾値よりも大きいか否かを判定し、ターゲットサブリソースが占める第1の記憶リソース量における比例値が第2の事前設定された閾値よりも大きい場合、ターゲットサブリソースが占める第1の記憶リソース量における比例値が第2の事前設定された条件を満たすと決定するステップ、又は、
ターゲットサブリソースが占める第1の記憶リソース量における比例値が、リソース周期において第2の事前設定された増加規則を満たすか否かを判定し、ターゲットサブリソースが占める第1の記憶リソース量における比例値が、リソース周期において第2の事前設定された増加規則を満たす場合、ターゲットサブリソースが占める第1の記憶リソース量における比例値が第2の事前設定された条件を満たすと決定するステップ、
を含む。
記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースを取得するように構成され、少なくとも2つの記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースが、ターゲットリソースを構成し、
記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースの占める第1の記憶リソース量における比例値を決定するように構成され、
比例値が第3の事前設定された条件を満たすか否かを判定するように構成され、第3の事前設定された条件は、記憶場所単位に記憶されたサブコードの実行時に呼び出されるターゲットサブリソースの占める第1の記憶リソース量における比例値がリソースリークを構成することとして設定され、
比例値が第3の事前設定された条件を満たす場合、記憶場所単位をリソースリーク場所単位として決定するように構成される。
比例値が第3の事前設定された閾値よりも大きいか否かを判定し、比例値が第3の事前設定された閾値よりも大きい場合、比例値が第3の事前設定された条件を満たすと決定するステップ、又は、
比例値がリソース周期において第3の事前設定された増加規則を満たすか否かを判定し、比例値がリソース周期において第3の事前設定された増加規則を満たす場合、比例値が第3の事前設定された条件を満たすと決定するステップ、
を含む。
Claims (13)
- リソースリーク検出方法であって、
プログラムのターゲットコードの実行時に呼び出されるターゲットリソースを取得するステップであって、前記ターゲットコードはプログラムコードの部分コードである、ステップと、
前記ターゲットリソースによって占用される第1の記憶リソース量を決定するステップと、
前記ターゲットリソースによって占用される前記第1の記憶リソース量が第1の事前設定された条件を満たすか否かを判定するステップであって、前記第1の事前設定された条件は、前記ターゲットリソースによって占用される前記第1の記憶リソース量がリソースリークを構成することとして設定される、ステップと、
前記ターゲットリソースによって占用される前記第1の記憶リソース量が前記第1の事前設定された条件を満たす場合、前記ターゲットコードの記憶場所をリソースリーク場所として決定するステップと、
を含み、
前記ターゲットリソースは少なくとも2つのターゲットサブリソースを含み、前記ターゲットサブリソースは、前記ターゲットコードを実行するプロセスにおいて呼び出される、前記ターゲットリソースの部分リソースであり、
前記方法は、
前記ターゲットコードの実行時に前記ターゲットサブリソースが呼び出される呼出パスを取得するステップと、
前記ターゲットサブリソースが占める前記第1の記憶リソース量における比例値を決定するステップと、
前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が、第2の事前設定された条件を満たすか否かを判定するステップであって、前記第2の事前設定された条件は、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値がリソースリークを構成することとして設定される、ステップと、
前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が前記第2の事前設定された条件を満たす場合、前記ターゲットサブリソースが呼び出される前記呼出パスをリソースリーク呼出パスとして決定するステップと、
を更に含む、方法。 - 前記第1の事前設定された条件は、第1の事前設定された閾値又は第1の事前設定された増加規則を含み、前記第1の事前設定された閾値は、前記第1の記憶リソース量がリソースリークを構成する前記第1の記憶リソース量の最小値よりも大きいこととして設定され、前記第1の事前設定された増加規則は、前記第1の記憶リソース量のリソース周期における増加傾向変化がリソースリークを構成することとして設定され、前記リソース周期は、前記ターゲットリソースが記憶空間を占用するライフサイクルであり、
前記ターゲットリソースによって占用される前記第1の記憶リソース量が第1の事前設定された条件を満たすか否かを判定する前記ステップは、
前記ターゲットリソースによって占用される前記第1の記憶リソース量が前記第1の事前設定された閾値よりも大きいか否かを判定し、前記ターゲットリソースによって占用される前記第1の記憶リソース量が前記第1の事前設定された閾値よりも大きい場合、前記ターゲットリソースによって占用される前記第1の記憶リソース量が前記第1の事前設定された条件を満たすと決定するステップ、又は、
前記ターゲットリソースによって占用される前記第1の記憶リソース量が、前記リソース周期において前記第1の事前設定された増加規則を満たすか否かを判定し、前記ターゲットリソースによって占用される前記第1の記憶リソース量が、前記リソース周期において前記第1の事前設定された増加規則を満たす場合、前記ターゲットリソースによって占用される前記第1の記憶リソース量が前記第1の事前設定された条件を満たすと決定するステップ、
を含む、請求項1に記載の方法。 - 前記第2の事前設定された条件は、第2の事前設定された閾値又は第2の事前設定された増加規則を含み、前記第2の事前設定された閾値は、前記第1の記憶リソース量の比例値が、リソースリークを構成する、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値の最小値よりも大きいこととして設定され、前記第2の事前設定された増加規則は、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値のリソース周期における増加傾向変化がリソースリークを構成することとして設定され、前記リソース周期は、前記ターゲットリソースが記憶空間を占用するライフサイクルであり、
前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が、第2の事前設定された条件を満たすか否かを判定する前記ステップは、
前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が、前記第2の事前設定された閾値よりも大きいか否かを判定し、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が前記第2の事前設定された閾値よりも大きい場合、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が前記第2の事前設定された条件を満たすと決定するステップ、又は、
前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が、前記リソース周期において前記第2の事前設定された増加規則を満たすか否かを判定し、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が、前記リソース周期において前記第2の事前設定された増加規則を満たす場合、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が前記第2の事前設定された条件を満たすと決定するステップ、
を含む、請求項1に記載の方法。 - 前記ターゲットコードの前記記憶場所は、少なくとも2つの記憶場所単位を含み、前記記憶場所単位の各々はサブコードを記憶し、前記少なくとも2つの記憶場所単位に記憶された前記サブコードは前記ターゲットコードを構成し、
前記方法は、
前記記憶場所単位に記憶された前記サブコードの実行時に呼び出されるターゲットサブリソースを取得するステップであって、前記少なくとも2つの記憶場所単位に記憶された前記サブコードの実行時に呼び出されるターゲットサブリソースが、前記ターゲットリソースを構成する、ステップと、
前記記憶場所単位に記憶された前記サブコードの実行時に呼び出される前記ターゲットサブリソースの占める前記第1の記憶リソース量における比例値を決定するステップと、
前記比例値が第3の事前設定された条件を満たすか否かを判定するステップであって、前記第3の事前設定された条件は、前記記憶場所単位に記憶された前記サブコードの実行時に呼び出される前記ターゲットサブリソースの占める前記第1の記憶リソース量における前記比例値がリソースリークを構成することとして設定される、ステップと、
前記比例値が前記第3の事前設定された条件を満たす場合、前記記憶場所単位をリソースリーク場所単位として決定するステップと、
を更に含む、請求項1に記載の方法。 - 前記第3の事前設定された条件は、第3の事前設定された閾値又は第3の事前設定された増加規則を含み、前記第3の事前設定された閾値は、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が、リソースリークを構成する、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値の最小値よりも大きいこととして設定され、前記第3の事前設定された増加規則は、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値のリソース周期における増加傾向変化がリソースリークを構成することとして設定され、前記リソース周期は、前記ターゲットリソースが記憶空間を占用するライフサイクルであり、
前記比例値が前記第3の事前設定された条件を満たすか否かを判定する前記ステップは、
前記比例値が前記第3の事前設定された閾値よりも大きいか否かを判定し、前記比例値が前記第3の事前設定された閾値よりも大きい場合、前記比例値が前記第3の事前設定された条件を満たすと決定するステップ、又は、
前記比例値が前記リソース周期において前記第3の事前設定された増加規則を満たすか否かを判定し、前記比例値が前記リソース周期において前記第3の事前設定された増加規則を満たす場合、前記比例値が前記第3の事前設定された条件を満たすと決定するステップ、
を含む、請求項4に記載の方法。 - リソースリーク検出装置であって、
プログラムのターゲットコードの実行時に呼び出されるターゲットリソースを取得するように構成される第1の取得モジュールであって、前記ターゲットコードはプログラムコードの部分コードである、第1の取得モジュールと、
前記ターゲットリソースによって占用される第1の記憶リソース量を決定するように構成される第1の決定モジュールと、
前記ターゲットリソースによって占用される前記第1の記憶リソース量が第1の事前設定された条件を満たすか否かを判定するように構成される第1の判定モジュールであって、前記第1の事前設定された条件は、前記ターゲットリソースによって占用される前記第1の記憶リソース量がリソースリークを構成することとして設定される、第1の判定モジュールと、
前記第1の判定モジュールの判定結果が、前記ターゲットリソースによって占用される前記第1の記憶リソース量が前記第1の事前設定された条件を満たすことであるとき、前記ターゲットコードの記憶場所をリソースリーク場所として決定するように構成されるリーク場所決定モジュールと、
を備え、
前記ターゲットリソースは少なくとも2つのターゲットサブリソースを含み、前記ターゲットサブリソースは、前記ターゲットコードを実行するプロセスにおいて呼び出される、前記ターゲットリソースの部分リソースであり、
前記装置は、
前記ターゲットコードの実行時に前記ターゲットサブリソースが呼び出される呼出パスを取得するように構成される第2の取得モジュールと、
前記ターゲットサブリソースが占める前記第1の記憶リソース量における比例値を決定するように構成される第2の決定モジュールと、
前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が、第2の事前設定された条件を満たすか否かを判定するように構成される第2の判定モジュールであって、前記第2の事前設定された条件は、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値がリソースリークを構成することとして設定される、第2の判定モジュールと、
前記第2の判定モジュールの判定結果が是であるとき、前記ターゲットサブリソースが呼び出される前記呼出パスをリソースリーク呼出パスとして決定するように構成されるリークパス決定モジュールと、
を更に備える、装置。 - 前記第1の事前設定された条件は、第1の事前設定された閾値又は第1の事前設定された増加規則を含み、前記第1の事前設定された閾値は、前記第1の記憶リソース量がリソースリークを構成する前記第1の記憶リソース量の最小値よりも大きいこととして設定され、前記第1の事前設定された増加規則は、前記第1の記憶リソース量のリソース周期における増加傾向変化がリソースリークを構成することとして設定され、前記リソース周期は、前記ターゲットリソースが記憶空間を占用するライフサイクルであり、
前記第1の判定モジュールは、第1の判定サブモジュール又は第2の判定サブモジュールを有し、
前記第1の判定サブモジュールは、前記ターゲットリソースによって占用される前記第1の記憶リソース量が前記第1の事前設定された閾値よりも大きいか否かを判定し、前記第1の判定サブモジュールの判定結果が是であるとき、前記第1の判定モジュールの判定結果が是であると決定するように構成され、
前記第2の判定サブモジュールは、前記ターゲットリソースによって占用される前記第1の記憶リソース量が、前記リソース周期において前記第1の事前設定された増加規則を満たすか否かを判定し、前記第2の判定サブモジュールの判定結果が是であるとき、前記第1の判定モジュールの判定結果が是であると決定するように構成される、
請求項6に記載の装置。 - 前記第2の事前設定された条件は、第2の事前設定された閾値又は第2の事前設定された増加規則を含み、前記第2の事前設定された閾値は、前記第1の記憶リソース量の比例値が、リソースリークを構成する、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値の最小値よりも大きいこととして設定され、前記第2の事前設定された増加規則は、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値のリソース周期における増加傾向変化がリソースリークを構成することとして設定され、前記リソース周期は、前記ターゲットリソースが記憶空間を占用するライフサイクルであり、
前記第2の判定モジュールは、第3の判定サブモジュール又は第4の判定サブモジュールを有し、
前記第3の判定サブモジュールは、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が、前記第2の事前設定された閾値よりも大きいか否かを判定し、前記第3の判定サブモジュールの判定結果が是であるとき、前記第2の判定モジュールの判定結果が是であると決定するように構成され、
前記第4の判定サブモジュールは、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が、前記リソース周期において前記第2の事前設定された増加規則を満たすか否かを判定し、前記第4の判定サブモジュールの判定結果が是であるとき、前記第2の判定モジュールの判定結果が是であると決定するように構成される、
請求項6に記載の装置。 - 前記ターゲットコードの前記記憶場所は、少なくとも2つの記憶場所単位を含み、前記記憶場所単位の各々はサブコードを記憶し、前記少なくとも2つの記憶場所単位に記憶された前記サブコードは前記ターゲットコードを構成し、
前記装置は、
前記記憶場所単位に記憶された前記サブコードの実行時に呼び出されるターゲットサブリソースを取得するように構成される第3の取得モジュールであって、前記少なくとも2つの記憶場所単位に記憶された前記サブコードの実行時に呼び出されるターゲットサブリソースが、前記ターゲットリソースを構成する、第3の取得モジュールと、
前記記憶場所単位に記憶された前記サブコードの実行時に呼び出される前記ターゲットサブリソースの占める前記第1の記憶リソース量における比例値を決定するように構成される第3の決定モジュールと、
前記比例値が第3の事前設定された条件を満たすか否かを判定するように構成される第3の判定モジュールであって、前記第3の事前設定された条件は、前記記憶場所単位に記憶された前記サブコードの実行時に呼び出される前記ターゲットサブリソースの占める前記第1の記憶リソース量における前記比例値がリソースリークを構成することとして設定される、第3の判定モジュールと、
前記第3の判定モジュールの判定結果が是であるとき、前記記憶場所単位をリソースリーク場所単位として決定するように構成されるリーク場所単位決定モジュールと、
を更に備える、請求項6に記載の装置。 - 前記第3の事前設定された条件は、第3の事前設定された閾値又は第3の事前設定された増加規則を含み、前記第3の事前設定された閾値は、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値が、リソースリークを構成する、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値の最小値よりも大きいこととして設定され、前記第3の事前設定された増加規則は、前記ターゲットサブリソースが占める前記第1の記憶リソース量における前記比例値のリソース周期における増加傾向変化がリソースリークを構成することとして設定され、前記リソース周期は、前記ターゲットリソースが記憶空間を占用するライフサイクルであり、
前記第3の判定モジュールは、第5の判定サブモジュール又は第6の判定サブモジュールを有し、
前記第5の判定サブモジュールは、前記比例値が前記第3の事前設定された閾値よりも大きいか否かを判定し、前記第5の判定サブモジュールの判定結果が是であるとき、前記第3の判定モジュールの判定結果が是であると決定するように構成され、
前記第6の判定サブモジュールは、前記比例値が前記リソース周期において前記第3の事前設定された増加規則を満たすか否かを判定するように構成され、前記リソース周期は前記第1の記憶リソース量の占用される周期であり、且つ、前記第6の判定サブモジュールの判定結果が是であるとき、前記第3の判定モジュールの判定結果が是であると決定するように構成される、
請求項9に記載の装置。 - メモリ、リソースリーク検出装置及び表示装置を備えるリソースリーク検出システムであって、
前記メモリは、リソースリーク検出プログラムを記憶するように構成され、
前記リソースリーク検出装置は、前記メモリに記憶された前記リソースリーク検出プログラムを実行して、請求項1乃至5のいずれか一項に記載のリソースリーク検出方法を実行するように構成され、
前記表示装置は、前記リソースリーク検出装置によって得られたリソースリーク検出結果を表示するように構成される、
システム。 - コンピュータに請求項1乃至5のいずれか一項に記載の方法を実行させるプログラム。
- 請求項12に記載のプログラムを記憶したコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410425600.2A CN105446871B (zh) | 2014-08-26 | 2014-08-26 | 一种资源泄漏检测方法、装置及系统 |
CN201410425600.2 | 2014-08-26 | ||
PCT/CN2015/079872 WO2016029723A1 (zh) | 2014-08-26 | 2015-05-27 | 一种资源泄漏检测方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017531852A JP2017531852A (ja) | 2017-10-26 |
JP6446125B2 true JP6446125B2 (ja) | 2018-12-26 |
Family
ID=55398725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017511234A Active JP6446125B2 (ja) | 2014-08-26 | 2015-05-27 | リソースリーク検出の方法、装置及びシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US10289472B2 (ja) |
EP (1) | EP3171274B1 (ja) |
JP (1) | JP6446125B2 (ja) |
CN (1) | CN105446871B (ja) |
WO (1) | WO2016029723A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073441B (zh) * | 2016-11-14 | 2022-05-10 | 阿里巴巴集团控股有限公司 | 一种虚拟机内存监管方法与设备 |
CN107423213B (zh) * | 2017-04-11 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 一种文件描述符分配检测方法和装置 |
CN107957950B (zh) * | 2017-12-08 | 2020-08-25 | 锐捷网络股份有限公司 | 一种系统资源泄露的检测方法和装置 |
US20190188154A1 (en) * | 2017-12-15 | 2019-06-20 | Intel Corporation | Translation pinning in translation lookaside buffers |
CN110837465A (zh) * | 2019-10-15 | 2020-02-25 | 珠海金山网络游戏科技有限公司 | 一种基于Android的句柄泄露检测方法及其系统 |
CN112181830B (zh) * | 2020-09-28 | 2022-08-09 | 厦门美柚股份有限公司 | 内存泄露的检测方法、装置、终端及介质 |
CN112631941B (zh) * | 2020-12-31 | 2022-04-19 | 广州鲁邦通物联网科技股份有限公司 | 定位linux内核slub内存泄漏的方法和系统 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001331368A (ja) * | 2000-05-19 | 2001-11-30 | Oki Electric Ind Co Ltd | メモリ解放漏れ判定方法 |
CN1248114C (zh) | 2002-06-20 | 2006-03-29 | 华为技术有限公司 | 一种软件内存泄露的检查方法 |
JP4512402B2 (ja) * | 2004-04-12 | 2010-07-28 | 株式会社日立製作所 | メモリリークの原因箇所検出方法、及びその実行プログラム |
US7774741B2 (en) * | 2006-05-22 | 2010-08-10 | Microsoft Corporation | Automatically resource leak diagnosis and detecting process within the operating system |
CN100504807C (zh) * | 2006-10-13 | 2009-06-24 | 中兴通讯股份有限公司 | 一种通信设备系统中内存泄漏的检测方法 |
US8037477B2 (en) * | 2007-01-23 | 2011-10-11 | Hewlett-Packard Development Company, L.P. | Efficient detection of sources of increasing memory consumption |
CN101539870A (zh) | 2008-03-21 | 2009-09-23 | 中兴通讯股份有限公司 | 内存泄漏检测装置及方法 |
CN101615143B (zh) | 2008-06-27 | 2013-04-17 | 国际商业机器公司 | 用于内存泄漏诊断的方法和装置 |
US8689180B2 (en) * | 2009-11-03 | 2014-04-01 | International Business Machines Corporation | Systems and methods for resource leak detection |
CN101908018B (zh) * | 2010-07-20 | 2012-09-26 | 北京海泰方圆科技有限公司 | 一种判断内存泄露的系统及方法 |
US8467281B1 (en) | 2010-09-17 | 2013-06-18 | Emc Corporation | Techniques for identifying devices having slow response times |
US9064048B2 (en) * | 2011-02-17 | 2015-06-23 | Red Hat, Inc. | Memory leak detection |
CN103460194B (zh) * | 2011-03-15 | 2016-12-21 | 爱立信(中国)通信有限公司 | 对资源泄漏的检测 |
US20130021176A1 (en) * | 2011-07-18 | 2013-01-24 | Belkin Internaitonal, Inc. | Method of Handling Incoming Telephone Calls and Text Messages and Systems Therefor |
US8881107B2 (en) * | 2011-08-24 | 2014-11-04 | Microsoft Corporation | Automatic memory leak detection |
CN102955719B (zh) | 2011-08-31 | 2016-06-22 | 国际商业机器公司 | 疑似内存泄漏的确定方法及装置 |
US8626993B2 (en) * | 2011-11-18 | 2014-01-07 | Apple Inc. | Method for tracking memory usages of a data processing system |
US9104563B2 (en) * | 2012-02-09 | 2015-08-11 | Microsoft Technology Licensing, Llc | Self-tuning statistical resource leak detection |
JP2014149606A (ja) | 2013-01-31 | 2014-08-21 | Fujitsu Ltd | 資源使用量集計プログラム、資源使用量集計方法及び資源使用量集計装置 |
CN103268287B (zh) * | 2013-06-05 | 2017-03-15 | 福州瑞芯微电子股份有限公司 | 检测内存泄露的方法与装置 |
CN103268278B (zh) * | 2013-06-14 | 2016-12-28 | 苏州国芯科技有限公司 | 支持多核处理器的sram控制器及其跟踪信息处理方法 |
CN103488544B (zh) | 2013-09-26 | 2016-08-17 | 华为技术有限公司 | 检测慢盘的处理方法和装置 |
CN103810062B (zh) | 2014-03-05 | 2015-12-30 | 华为技术有限公司 | 慢盘检测方法和装置 |
CN103914376A (zh) * | 2014-03-12 | 2014-07-09 | 汉柏科技有限公司 | 一种内存泄露的快速定位方法 |
-
2014
- 2014-08-26 CN CN201410425600.2A patent/CN105446871B/zh active Active
-
2015
- 2015-05-27 WO PCT/CN2015/079872 patent/WO2016029723A1/zh active Application Filing
- 2015-05-27 EP EP15834959.7A patent/EP3171274B1/en active Active
- 2015-05-27 JP JP2017511234A patent/JP6446125B2/ja active Active
-
2017
- 2017-02-24 US US15/441,837 patent/US10289472B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170168886A1 (en) | 2017-06-15 |
WO2016029723A1 (zh) | 2016-03-03 |
CN105446871A (zh) | 2016-03-30 |
US10289472B2 (en) | 2019-05-14 |
EP3171274A4 (en) | 2017-08-02 |
JP2017531852A (ja) | 2017-10-26 |
EP3171274A1 (en) | 2017-05-24 |
CN105446871B (zh) | 2018-08-17 |
EP3171274B1 (en) | 2019-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6446125B2 (ja) | リソースリーク検出の方法、装置及びシステム | |
CN108829610B (zh) | 一种神经网络前向计算过程中的内存管理方法及设备 | |
US11544137B2 (en) | Data processing platform monitoring | |
US9329908B2 (en) | Proactive identification of hotspots in a cloud computing environment | |
US20150372878A1 (en) | System and method for detecting and preventing service level agreement violation in a virtualized environment | |
JP2015529367A5 (ja) | ||
US20130227144A1 (en) | Operation managing method for computer system, computer system and computer-readable storage medium having program thereon | |
JP2008217332A (ja) | 仮想マシン管理システム、その方法及びそのプログラム | |
CN109189572B (zh) | 一种资源预估方法及系统、电子设备和存储介质 | |
US9275201B2 (en) | Execution-based license discovery and optimization | |
KR20130088513A (ko) | 멀티코어 시스템의 태스크 분배 방법 및 장치 | |
US20160352821A1 (en) | Method and system for allocating resources for virtual hosts | |
US20160011908A1 (en) | Task allocation in a computing environment | |
CN116467061B (zh) | 一种任务执行的方法、装置、存储介质及电子设备 | |
US10944814B1 (en) | Independent resource scheduling for distributed data processing programs | |
CN105677481B (zh) | 一种数据处理方法、系统及电子设备 | |
US9317328B2 (en) | Strategic placement of jobs for spatial elasticity in a high-performance computing environment | |
CN107085532B (zh) | 任务监听方法和装置 | |
CN102141906B (zh) | 基于阵列的线程倒计时 | |
JP2012221034A (ja) | メモリ管理装置、メモリ管理方法及びメモリ管理プログラム | |
CN108197029A (zh) | 一种获取进程信息的方法和设备 | |
CN111352710B (zh) | 进程管理方法及装置、计算设备、存储介质 | |
US20160210170A1 (en) | Computing CPU Time Usage of Activities Serviced by CPU | |
US20130290977A1 (en) | Computational Resource Allocation System And A Method For Allocating Computational Resources For Executing A Scene Graph Based Application At Run Time | |
US20150295851A1 (en) | Authorization review system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180416 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180529 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180704 |
|
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: 20181113 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6446125 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |