JP5392820B2 - 性能評価モデリングのための関数選択手法 - Google Patents
性能評価モデリングのための関数選択手法 Download PDFInfo
- Publication number
- JP5392820B2 JP5392820B2 JP2009039904A JP2009039904A JP5392820B2 JP 5392820 B2 JP5392820 B2 JP 5392820B2 JP 2009039904 A JP2009039904 A JP 2009039904A JP 2009039904 A JP2009039904 A JP 2009039904A JP 5392820 B2 JP5392820 B2 JP 5392820B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- function
- nodes
- execution time
- execution
- 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)
- Stored Programmes (AREA)
Description
選択基準−1:選択した関数群の実行時間の総和が、個々の実行トレースについて、全体の所要時間に対して大半を占める(指定した比率以上になる)ようにする。すなわち、選択した関数群が実行時間に関して支配的であるようにする。
選択基準−2:実行時間以外に、メモリ使用量等に基づく選択基準も用いる。すなわち、所要時間又は使用メモリ量を定量的情報として扱い、当該定量的情報が所定の比率を超える条件で関数を選択する。定量的情報は比較可能な数値等の形態であればよく、形態に従って適切な単位を用い得る。
選択基準−3:選択する関数群の数には適切な範囲が設定される。選択する関数群が少なすぎると、例えば、メイン関数一つを選択すれば、形式的には全ての実行トレースに対して上記の選択基準が満たされるが、性能評価モデリングとしては意味がない。従って、トップレベルに近い関数は予め選択可能な対象から除外される必要がある。除外対象の関数を指定してもよい。これと逆に、選択する関数群が多すぎるとシステムの細かな振る舞いを捨象することにならない。選択した関数群の最大許容サイズを指定するか、又は関数呼び出しの最大深さを指定することにより、選択する関数群が過剰となることを防いでもよい。
選択基準−4:シーケンス図として意味がある表現になる必要がある。
選択基準−5:選択した関数のライフライン間は、Interaction(メッセージ送受)により連結可能である必要がある。すなわち、途中でInteractionが中断するような実行トレースを生成してはならない。このためには、ライフラインのオブジェクトを実装におけるモジュールに対応させ、モジュール間の呼び出し関係が実行トレースの中に必ず含まれるように関数群を決める必要がある。
特徴−1:各ノードは関数の呼び出しを表す。
特徴−2:あるノード(関数)から呼び出される関数は、当該ノードの子ノードとして関連付ける。ここで、同一の子ノードの呼び出しが複数回あっても、一つの子ノードとして表す。
特徴−3:複数のノード(関数)から同じ子ノードへの呼び出しがある場合は、それぞれのノードに対する子ノードとして表す。
特徴−4:再帰的呼び出しがある場合は、再起的に呼び出されるノードは表現しない。すなわち、呼び出すノード(関数)の下に再帰的呼び出しを配置しない。
特徴−5:あるノード(関数)の全て呼び出しによる実行時間の総和を、対応するノードに関連付ける。
特徴−6:実行時間付きコールグラフは、網羅的に全ての関数呼び出しを表現しているか、あるいは、一部分を表現しているとする。
図1は、本発明の一実施形態に係る、関数選択方法の概略を表すフロー図である。本発明に係る関数選択方法は、コンピュータ装置等の実施手段を用いて、性能評価の対象であるシステムの動作から、所定の選択基準に従って当該システムの大まかな振る舞いを抽出する。一実施形態において、本発明に係る関数選択方法は、次のような諸段階を実施する。
選択基準−1:選択した関数群の実行時間の総和が、個々の実行トレースについて、全体の所要時間に対して大半を占める(指定した比率以上になる)ようにする。すなわち、選択した関数群が実行時間に関して支配的であるようにする。
選択基準−2:実行時間以外に、メモリ使用量等に基づく選択基準も用いる。すなわち、所要時間又は使用メモリ量を定量的情報として扱い、当該定量的情報が所定の比率を超える条件で関数を選択する。定量的情報は比較可能な数値等の形態であればよく、形態に従って適切な単位を用い得る。例えば、所要時間は任意単位でもよく、実際の時間を秒単位で表してもよく、プロセッサ等の動作周期の数で表してもよく、全体の実行時間に対する比率で表してもよい。使用メモリ量は任意単位でもよく、バイト数で表してもよく、全体の記憶容量に対する比率で表してもよい。好適には、実行時間は[マイクロ秒単位]で表され、使用メモリ量は[メガバイト単位]で表される。
選択基準−3:選択する関数群の数には適切な範囲が設定される。選択する関数群が少なすぎると、例えば、メイン関数一つを選択すれば、形式的には全ての実行トレースに対して上記の選択基準が満たされるが、性能評価モデリングとしては意味がない。従って、トップレベルに近い関数は予め選択可能な対象から除外される必要がある。除外対象の関数を指定してもよい。これと逆に、選択する関数群が多すぎるとシステムの細かな振る舞いを捨象することにならない。選択した関数群の最大許容サイズを指定するか、又は関数呼び出しの最大深さを指定することにより、選択する関数群が過剰となることを防いでもよい。
選択基準−4:シーケンス図として意味がある表現になる必要がある。
選択基準−5:選択した関数のライフライン間は、Interaction(メッセージ送受)により連結可能である必要がある。すなわち、途中でInteractionが中断するような実行トレースを生成してはならない。このためには、ライフラインのオブジェクトを実装におけるモジュールに対応させ、モジュール間の呼び出し関係が実行トレースの中に必ず含まれるように関数群を決める必要がある。
図2は、本発明の一実施形態に係る、実行時間付きコールグラフ100の例を示す図である。図2に示す実行時間付きコールグラフ100は、木構造として表されている。当該木構造は、上位から下位に向かって、第1層181、第2層182、第3層183及び第4層184からなる。第1層181は木構造の根(ルート)であり得る。それぞれの層には木構造のノードが含まれる。それぞれのノードは、例えば性能評価の対象であるシステムの実行トレースにおいて識別された関数呼び出しであり得る。当該識別は、関数の名称又は識別子を含む任意の識別方法により識別される関数ごとに行われる。
特徴−1:各ノードは関数の呼び出しを表す。
特徴−2:あるノード(関数)から呼び出される関数は、当該ノードの子ノードとして関連付ける。ここで、同一の子ノードの呼び出しが複数回あっても、一つの子ノードとして表す。
特徴−3:複数のノード(関数)から同じ子ノードへの呼び出しがある場合は、それぞれのノードに対する子ノードとして表す。
特徴−4:再帰的呼び出しがある場合は、再起的に呼び出されるノードは表現しない。すなわち、呼び出すノード(関数)の下に再帰的呼び出しを配置しない。
特徴−5:あるノード(関数)の全て呼び出しによる実行時間の総和を、対応するノードに関連付ける。
特徴−6:実行時間付きコールグラフは、網羅的に全ての関数呼び出しを表現しているか、あるいは、一部分を表現しているとする。
規則−1:一つの関数から呼び出される他の関数は、当該一つの関数に対する子ノードとして表される。同じ関数が複数回呼び出される場合も、同一の子ノードとして表される。
規則−2:異なる二つ以上の関数から呼び出される他の関数は、それぞれの子ノードとして表される。従って、第3層以下の層において、同一の名称又は識別子を有する関数が、異なる親ノードに対する子ノードとして表される場合がある。
規則−3:再帰的呼び出しがある場合は、再帰呼び出しされるノードを表さない。すなわち、再帰呼び出しする関数のノードの下には、再帰呼び出しされる関数のノードを配置しない。
規則−4:それぞれのノードには、名称又は識別子等により識別される関数の情報と、当該関数が全ての呼び出しにより実行された時間の長さ(実行時間)の情報を含む。
規則−5:実行時間付きコールグラフ100は、全ての関数呼び出しを含むか、又は一部分を含むものとする。
性質−1:実行時間付きコールグラフ100は、非循環(acyclic)グラフであり得る。
性質−2:実行時間付きコールグラフ100に含まれる全てのノードについて、当該ノードに付随する実行時間は、その子ノードの実行時間の総和以上である。すなわち、実行時間は、次式で表される性質を有する。
性質−3:Sの要素数は、KLを超えてKU未満であり得る。
性質−4:Sの各要素間には親子関係がない。
性質−5:Gに含まれる全てのグラフgについて、Sの全ノードの実行時間はT以上である。好適には、Sは十分に小さい集合であることが望ましいが、Sは最小の集合である必要はない。
本発明に係る関数選択方法においては、コールグラフの集合Gから、コールグラフの部分集合Sを生成するために、次のような手順を用い得る。
手順−1:コールグラフにおいて、必須のノード集合Rに含まれるノードの近傍にあり、かつ実行時間の数値が大きいノードの集合を、ノード候補集合αとする。
手順−2:ノードの個数の上限KUを超えない条件で、必須のノード集合Rにノード候補集合αを追加する。
手順−3:ノード候補集合αを追加した必須のノード集合Rが、前述の性質−3乃至5を満たす場合に、ノード候補集合αを追加した必須のノード集合を、コールグラフの部分集合Sとする。
図3は、本発明の一実施形態に係る、実行時間付きコールグラフ102の例を示す図である。図3に示す実行時間付きコールグラフ102は、図2に示した実行時間付きコールグラフ100と同様に木構造として表され、上位から下位に向かって、第1層181、第2層182、第3層183、第4層184及び第5層185からなる。これに限定せず、本発明に係る関数選択方法においては、任意の数の層からなるコールグラフの各ノードに、それぞれの実行時間を関連付けて用いてもよい。
ステップS210:ノード集合Sを空集合とする。
ステップS220:開始ノードNsが属するモジュールMを求める。
ステップS230:Nsをルートノードとして、Mに属するノードのみで構成される部分木TrをコールグラフGから抽出する。
ステップS240:Trの各ノードnを深さ優先でたどる。
ステップS250:ノードnの時間にTを乗じ、n以下に要する時間の閾値Tpを求める。
ステップS260:ノードnの子ノードを時間の大きい順に並べる。
ステップS270:ノードnの子ノードcを1個取り出す。
ステップS280:cの子孫にM以外に属するノードが存在するかどうかを判定する。判定の結果が真である場合はステップS300に進み、偽である場合はステップS290に進む。
ステップS290:ノード集合Sに子ノードcを追加する。
ステップS300:変数tに子ノードcの時間を加算する。具体的には、変数tは個々の関数により費やされた時間の総和であり得る。
ステップS310:変数tが時間の閾値Tp以上であるかどうかを判定する。判定の結果が真である場合はステップS320に進み、偽である場合はステップS270に戻る。
ステップS320:全てのノードをたどったかどうかを判定する。判定の結果が真である場合はステップS330に進み、偽である場合はステップS240に戻る。
ステップS330:G、Tr、M、Tに基づいてノード集合Uを生成する。
ステップS340:ノード集合Sにノード集合Uを加える。
ステップS410:ノード集合Sを空集合とする。
ステップS420:Trのノード直下のノードで、Mに属さないノードの集合Snを求める。
ステップS430:Trのノードから呼ばれる、M以外のモジュールの集合Smを求める。
ステップS440:Trのノードから呼ばれ、かつ、Sm中のモジュールに属し、その子孫がそのノードの属するモジュール以外に属するノードを全てSに追加する。
ステップS450:Sn中のノードのうち、Sのノードが属するモジュールのいずれにも属さないものについて、Sn中のいずれのノードからも呼び出されないノードを全てSに追加する。
ステップS460:S中の全てのノードの親ノードの集合Spを求める。
ステップS470:ノード集合Uを空集合とする。
ステップS480:Spからノードpを1個取り出す。
ステップS490:全てのノードを取り出したかどうかを判定する。判定の結果が真である場合はステップS500に進み、偽である場合はステップS540に進む。
ステップS500:pの子ノードの集合C−child(p)を求める。
ステップS510:ノードpの時間にTを乗じて、p以下に要する時間の閾値Tpを求める。
ステップS520:Cに含まれるSとU中の全ノードの時間との総和tを求める。
ステップS530:t≧TpになるまでC中のノードcを時間の大きい順に取り出し、cをUに追加し、cの時間をtに加算する。このステップの後にはステップS480に戻る。
ステップS540:SにUを追加する。
ステップS550:Uに属する全てのノードNsについて、G、Ns、Tに基づくノード集合Vを生成し、VをSに追加する。
図9は、本実施形態に係る、関数選択方法の実施装置のハードウェア構成を例示する図である。図9においては、関数選択装置を情報処理装置1000とし、そのハードウェア構成を例示する。以下は、コンピュータを典型とする情報処理装置として全般的な構成を説明するが、その環境に応じて必要最小限な構成を選択できることはいうまでもない。
103 モジュールを含む実行時間付きコールグラフ
104 異なるモジュールを含む実行時間付きコールグラフ
105 選択されたノードの情報を含む実行時間付きコールグラフ
110 根ノード
120〜156 ノード
181〜185 第1層、第2層、第3層、第4層、第5層
201〜204 モジュール
Claims (8)
- コンピュータ・プログラムの動作履歴に含まれる実行された関数を抽出する方法であって、
前記動作履歴を受け付けるステップと、
前記受け付けた動作履歴に含まれる前記関数の呼び出し関係を用いて前記関数を木構造のノードに割り当てるステップと、
実行時間又はメモリ使用量を定量的情報として扱い、前記関数に付随する前記定量的情報の合計が、抽出候補となっている関数全ての呼び出し元である関数に付随する前記定量的情報と所定の比率との積を超える条件で前記関数を抽出するステップと、を含む方法。 - 前記関数を抽出するステップは、前記関数の数が所定の下限を超え、かつ所定の上限を超えない条件で前記関数を抽出する、請求項1に記載の方法。
- 更に、前記抽出した前記関数を用いて実行トレースを生成するステップを含む、請求項1に記載の方法。
- 前記木構造のノードに割り当てるステップは、更に、前記関数と対応する前記定量的情報を、前記関数に関連付ける、請求項1に記載の方法。
- 更に、前記木構造のノードに含まれ、親ノード及び子ノードの関係を有するノードを含む部分的な木構造に対して、
前記部分的な木構造に含まれる子ノードに付随する前記定量的情報を値の大きな順に累積するステップと、
前記累積した前記定量的情報が、前記部分的な木構造に含まれる前記親ノードに付随する前記定量的情報と所定の比率との積を超える条件で、前記子ノードを抽出するステップと、
前記部分的な木構造以外の木構造のノードに接続している前記子ノードを除外するステップと、を含む、請求項1に記載の方法。 - 更に、前記木構造のノードに含まれ、親ノード及び子ノードの関係を有するノードを含み、互いに排他的な複数の部分的な木構造に対して、
ある部分的な木構造から、下位の他の部分的な木構造の親ノードにたどり得るノードを選択する第1選択ステップと、
前記第1選択ステップにより選択されないノードから、前記複数の部分的な木構造ごとに、前記第1選択ステップにより選択されたノードが何もない部分的な木構造に含まれるノードを選択する第2選択ステップと、
前記第1選択ステップにより選択されないノードから、前記選択されないノードに付随する前記定量的情報の合計が、前記部分的な木構造に含まれる前記親ノードに付随する前記定量的情報と所定の比率との積を超える条件で、前記選択されないノードを抽出するステップと、を含む、請求項1に記載の方法。 - コンピュータ・プログラムの動作履歴に含まれる実行された関数を抽出する方法であって、
前記動作履歴を受け付けるステップと、
前記受け付けた動作履歴に含まれる前記関数の呼び出し関係を用いて前記関数を木構造のノードに割り当てるステップと、
前記関数に付随する前記関数の実行時間又はメモリ使用量の合計が、抽出候補となっている関数全ての呼び出し元である関数に付随する実行時間又はメモリ使用量と所定の比率との積を超える条件及び前記関数の数が所定の下限を超えかつ所定の上限を超えない条件に従って前記関数を抽出するステップと、
前記抽出した前記関数を用いて実行トレースを生成するステップと、を含む、
実行された関数を抽出する方法。 - 請求項1から7のいずれかに記載の方法の各ステップを、コンピュータを用いて実行するためのコンピュータ・プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009039904A JP5392820B2 (ja) | 2009-02-23 | 2009-02-23 | 性能評価モデリングのための関数選択手法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009039904A JP5392820B2 (ja) | 2009-02-23 | 2009-02-23 | 性能評価モデリングのための関数選択手法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010198133A JP2010198133A (ja) | 2010-09-09 |
JP5392820B2 true JP5392820B2 (ja) | 2014-01-22 |
Family
ID=42822828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009039904A Expired - Fee Related JP5392820B2 (ja) | 2009-02-23 | 2009-02-23 | 性能評価モデリングのための関数選択手法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5392820B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8938729B2 (en) * | 2010-10-12 | 2015-01-20 | Ca, Inc. | Two pass automated application instrumentation |
WO2012056569A1 (ja) * | 2010-10-29 | 2012-05-03 | 株式会社日立製作所 | 性能測定方法、性能測定装置、及び、性能測定プログラム |
US20140109070A1 (en) * | 2012-10-11 | 2014-04-17 | Tata Consultancy Services Limited | System and method for configurable entry points generation and aiding validation in a software application |
JP6437396B2 (ja) * | 2015-08-20 | 2018-12-12 | 株式会社東芝 | トレース情報管理システム、方法、及びプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200368A (ja) * | 1993-12-29 | 1995-08-04 | Nec Corp | モジュール単位の性能情報管理システム |
US6002872A (en) * | 1998-03-31 | 1999-12-14 | International Machines Corporation | Method and apparatus for structured profiling of data processing systems and applications |
JPH11194935A (ja) * | 1998-01-05 | 1999-07-21 | Nec Commun Syst Ltd | ソフトウェア構造解析システム |
JP2006018477A (ja) * | 2004-06-30 | 2006-01-19 | Canon Software Inc | シーケンス情報生成装置およびシーケンス情報生成方法およびプログラムおよび記録媒体 |
JPWO2008096632A1 (ja) * | 2007-02-05 | 2010-05-20 | 日本電気株式会社 | オブジェクト図表示装置、オブジェクト図表示方法、プログラム、及びコンピュータ読み取り可能な記録媒体 |
-
2009
- 2009-02-23 JP JP2009039904A patent/JP5392820B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010198133A (ja) | 2010-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5629239B2 (ja) | ソフトウェアの動作をテストする装置及び方法 | |
US9208059B2 (en) | ETL debugger | |
JP4736713B2 (ja) | プロジェクトメンバーの選定を支援するシステムと方法 | |
JP5708495B2 (ja) | 辞書作成装置、単語収集方法、及び、プログラム | |
JP2005173788A (ja) | オートノミック・コンピューティングシステム、実行環境制御方法及びプログラム | |
JP5392820B2 (ja) | 性能評価モデリングのための関数選択手法 | |
JP2019021232A (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
JP6715420B2 (ja) | データ量圧縮方法、装置、プログラム及びicチップ | |
JP2019530121A (ja) | データ統合ジョブ変換 | |
JP6309795B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN111414619A (zh) | 一种数据安全检测方法、装置、设备及可读存储介质 | |
CN116560984A (zh) | 一种基于调用依赖图的测试用例聚类分组方法 | |
JP6536580B2 (ja) | 文集合抽出システム、方法およびプログラム | |
WO2017028744A1 (zh) | 一种用于确定待部署资源的方法和装置 | |
CN104981775B (zh) | 在Web服务的功能测试中提供上下文的方法、系统和介质 | |
CN110597572B (zh) | 一种服务调用关系分析方法和计算机系统 | |
JPWO2012073333A1 (ja) | 分析支援装置、分析支援方法、及び分析支援プログラム | |
JP2011159202A (ja) | テスト項目生成方法及び装置及びプログラム | |
JP6580535B2 (ja) | 開発支援システム及び方法 | |
JP7196757B2 (ja) | 分析支援プログラム、分析支援方法、分析支援装置および分析支援システム | |
JP6280859B2 (ja) | 行動ネットワーク情報抽出装置、行動ネットワーク情報抽出方法及び行動ネットワーク情報抽出プログラム | |
JPWO2015182559A1 (ja) | 情報分析システム、情報分析方法及び情報分析プログラム | |
JP6040138B2 (ja) | 文書分類装置、文書分類方法および文書分類プログラム | |
JPWO2014054233A1 (ja) | 情報システムの性能評価装置、方法およびプログラム | |
JP5605233B2 (ja) | 解析装置、解析プログラム及び解析方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130709 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130710 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130830 |
|
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: 20130924 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20130925 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131010 |
|
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 |