JP7258171B2 - Impact analysis device, impact analysis method, and impact analysis program - Google Patents
Impact analysis device, impact analysis method, and impact analysis program Download PDFInfo
- Publication number
- JP7258171B2 JP7258171B2 JP2021550834A JP2021550834A JP7258171B2 JP 7258171 B2 JP7258171 B2 JP 7258171B2 JP 2021550834 A JP2021550834 A JP 2021550834A JP 2021550834 A JP2021550834 A JP 2021550834A JP 7258171 B2 JP7258171 B2 JP 7258171B2
- Authority
- JP
- Japan
- Prior art keywords
- execution trace
- execution
- representative
- events
- unit
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、ソフトウェアの影響分析装置、影響分析方法、及び、影響分析プログラムに関する。 The present invention relates to a software influence analysis device, an influence analysis method, and an influence analysis program.
ソースコードなどの変更によるソフトウェアへの影響を分析する影響分析装置について様々な技術が提案されている。例えば特許文献1には、関数や変数の依存関係から影響範囲を抽出する技術が提案されている。例えば特許文献2には、ソースコードにタグを挿入して得られる実行トレースを計測し、関数の実行時間を収集する技術が提案されている。
Various techniques have been proposed for impact analysis devices that analyze the impact of source code changes on software. For example,
例えば特許文献3には、関数名をメモリに保持する技術が提案され、例えば特許文献4には、関数呼び出し履歴を比較する技術が提案されている。例えば特許文献5には、適当な間隔でマシン命令のシーケンスを多数採取するサンプリングトレースが提案されている。例えば特許文献6には、ジョブの種類とその実行時間とを含むジョブ履歴の外れ度合いを評価する技術が提案されている。
For example,
しかしながら、従来の影響分析装置は、ソフトウェアの実行を考慮せずに静的解析で得られた依存関係を用いる。このため、処理内容の変更による影響を確認できても、ソフトウェア実行時の条件の差による影響を確認することができないという問題があった。 However, conventional impact analyzers use dependencies obtained by static analysis without considering software execution. Therefore, there is a problem that even if it is possible to confirm the influence of the change in the processing content, it is not possible to confirm the influence of the difference in the conditions when the software is executed.
そこで、本発明は、上記のような問題点を鑑みてなされたものであり、ソフトウェア実行時の条件の差による影響を表示可能な技術を提供することを目的とする。 SUMMARY OF THE INVENTION Accordingly, the present invention has been made in view of the above-described problems, and an object of the present invention is to provide a technique capable of displaying the effects of differences in conditions when software is executed.
本発明に係る影響分析装置は、ソフトウェアにおける関数の入口イベント及び出口イベントを含む複数のイベントと、前記複数のイベントの時刻とを含む複数の実行トレースを、異なる複数の条件下でそれぞれ収集する実行トレース収集部と、前記実行トレース収集部で収集された前記複数の実行トレースを蓄積する実行トレース蓄積部と、前記実行トレース蓄積部に蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出する代表実行トレース算出部と、前記代表実行トレース算出部で算出された前記代表実行トレースを蓄積する代表実行トレース蓄積部と、前記代表実行トレース蓄積部に蓄積された前記代表実行トレースを出力する出力部と、前記代表実行トレース蓄積部に蓄積された前記代表実行トレースに含まれる前記平均を基準とする許容範囲を規定し、前記実行トレース蓄積部に蓄積された前記複数の実行トレースのうち、前記時刻が前記許容範囲外である前記実行トレースを抽出する抽出部とを備え、前記出力部は、前記抽出部で抽出された前記実行トレースを、抽出に用いた前記代表実行トレースに重畳して表示する。 An impact analysis apparatus according to the present invention collects, under a plurality of different conditions, a plurality of execution traces including a plurality of events including an entry event and an exit event of a function in software and a plurality of execution traces including the times of the plurality of events. a trace collection unit; an execution trace accumulation unit for accumulating the plurality of execution traces collected by the execution trace collection unit; and the plurality of events based on the plurality of execution traces accumulated in the execution trace accumulation unit. a representative execution trace calculating unit for calculating a representative execution trace including the average and variation of the times of each of the plurality of events; and a representative execution for accumulating the representative execution trace calculated by the representative execution trace calculating unit. a trace accumulation unit, an output unit for outputting the representative execution trace accumulated in the representative execution trace accumulation unit, and a tolerance based on the average contained in the representative execution trace accumulated in the representative execution trace accumulation unit. an extraction unit that defines a range and extracts the execution trace whose time is outside the allowable range from among the plurality of execution traces accumulated in the execution trace accumulation unit ; The execution trace extracted in the section is superimposed on the representative execution trace used for extraction and displayed .
本発明によれば、異なる複数の条件下でそれぞれ収集された複数の実行トレースに基づいて、複数のイベントのそれぞれの時刻の平均及びばらつきを含む代表実行トレースを算出して表示する。このような構成によれば、ソフトウェア実行時の条件の差による影響を表示することができる。 According to the present invention, based on a plurality of execution traces collected under a plurality of different conditions, a representative execution trace including averages and variations in time for each of a plurality of events is calculated and displayed. According to such a configuration, it is possible to display the influence of the difference in conditions when the software is executed.
本発明の目的、特徴、態様及び利点は、以下の詳細な説明と添付図面とによって、より明白となる。 Objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description and accompanying drawings.
<実施の形態1>
図1は、本発明の実施の形態1に係る影響分析装置の構成を示すブロック図である。この影響分析装置は、ソースコードなどの変更によるソフトウェアの性能への影響を分析する装置である。以下、当該影響を「変更影響」と記し、変更前のソフトウェアを「変更前ソフトウェア」と記し、変更後のソフトウェアを「変更後ソフトウェア」と記して説明する。<
FIG. 1 is a block diagram showing the configuration of an influence analysis device according to
図1に示す影響分析装置は、実行トレース収集部1と、実行トレース蓄積部2と、代表実行トレース算出部3と、代表実行トレース蓄積部4と、表示部5とを備える。実行トレース蓄積部2の入力は、実行トレース収集部1の出力と接続される。代表実行トレース算出部3の入力は、実行トレース蓄積部2の出力と接続される。代表実行トレース蓄積部4の入力は、代表実行トレース算出部3の出力と接続される。表示部5の入力は、代表実行トレース蓄積部4の出力と接続される。
The influence analysis device shown in FIG. The input of execution
実行トレース収集部1は、複数の実行トレースを、異なる複数の条件下でそれぞれ収集するツールである。詳細は後述するが、実行トレースは、ソフトウェアにおける1つ以上の関数の入口イベント及び出口イベントを含む複数のイベントと、複数のイベントの時刻とを含むイベント系列である。なお、入口イベント及び出口イベントは、それぞれ入口の通過イベント及び出口の通過イベントと呼ぶこともできる。時刻は、ある時点からある時点までの測定時間であり、例えばイベントの時刻は、基準時点からイベントが発生した時点までの測定時間である。
The execution
実行トレース収集部1は、例えば、ソースコードに追加のコードを挿入する方式のツール、つまりインストゥルメントする方式のツールであってもよい。または、実行トレース収集部1は、例えば、マイクロプロセッサのマクロセルから得られる命令トレースを収集するデバッガを有し、ソースコードに人手でロギング関数を埋め込んだログ生成機能を有するツールであってもよい。または、実行トレース収集部1は、例えば、監視対象のイベントに比べて短いサンプリング間隔で履歴を取得可能なサンプリングトレースツールであってもよい。
The execution
図2は、実行トレース6の例を示す図である。実行トレース6は、関数の入口イベント及び出口イベントを含む複数のイベントと、当該複数のイベントが行われる時刻とを含む。時刻は、例えば、トレースを開始してからの経過時間であってもよいし、イベントとその直前のイベントとの差分時間であってもよい。図2の例ではfuncA関数と、funcA関数から呼び出されるfuncB関数と、funcA関数から呼び出されるfuncC関数とについて、経過時間が入口イベント及び出口イベントの時刻として示され、括弧内に差分時間が示されている。
FIG. 2 is a diagram showing an example of the
funcA@enterはfuncA関数の入口を示し、funcA@leaveはfuncA関数の出口を示す。同様に、funcB@enterはfuncB関数の入口を示し、funcB@leaveはfuncB関数の出口を示し、funcC@enterはfuncC関数の入口を示し、funcC@leaveはfuncC関数の出口を示す。 funcA@enter indicates the entry of the funcA function, and funcA@leave indicates the exit of the funcA function. Similarly, funcB@enter indicates the entry of the funcB function, funcB@leave indicates the exit of the funcB function, funcC@enter indicates the entry of the funcC function, and funcC@leave indicates the exit of the funcC function.
図2の例では、まずfuncA関数が0ns(0ns)で処理を開始し、funcA関数はfuncB関数を70ns(70ns)で呼び出す。それから、funcB関数は280ns(210ns)で処理を終え、funcA関数が再び処理を行い、funcA関数はfuncC関数を330ns(50ns)で呼び出す。そして、funcC関数は500ns(170ns)で処理を終え、funcA関数が再び処理を行って600ns(100ns)で処理を終える。 In the example of FIG. 2, the funcA function first starts processing at 0 ns (0 ns), and the funcA function calls the funcB function at 70 ns (70 ns). Then, the funcB function finishes processing in 280 ns (210 ns), the funcA function performs processing again, and the funcA function calls the funcC function in 330 ns (50 ns). The funcC function finishes processing in 500 ns (170 ns), and the funcA function performs processing again and finishes processing in 600 ns (100 ns).
複数の実行トレース6は、それぞれ複数の条件下で処理対象のソフトウェアを動作させることによって収集され、後述するように実質的に代表実行トレース算出部3によって統計処理される。複数の条件は、例えば、連続稼動時間、他プロセス及び他タスクの数、並びに、他プロセス及び他タスクの起動環境の少なくともいずれか1つが互いに異なる。
A plurality of
実行トレース蓄積部2は、実行トレース収集部1で収集された複数の実行トレース6を蓄積する。複数の実行トレース6は互いに独立して実行トレース蓄積部2に蓄積されてもよいし、互いに区別可能な状態で連続的に繋げられたり結合されたりして実行トレース蓄積部2に蓄積されてもよい。
The execution
代表実行トレース算出部3は、実行トレース蓄積部2に蓄積された複数の実行トレース6に基づいて統計処理を行うことにより代表実行トレースを算出する。
The representative
図3は、代表実行トレース7の例を示す図である。代表実行トレース7は、複数のイベントと、当該複数のイベントのそれぞれの時刻の平均及びばらつきとを含むイベント系列である。代表実行トレース7の複数のイベントは、代表実行トレース7の算出に用いられる実行トレース6の複数のイベントと同じである。時刻は、上述と同様に、例えば経過時間であってもよいし、差分時間であってもよい。ばらつきは、例えば分散であってもよいし、標準偏差であってもよい。図3では、代表実行トレース7の時刻の平均及びばらつきの例として、平均差分時間及び分散差分時間が示されている。以下、時刻が差分時間であり、ばらつきが分散である場合について主に説明するが、時刻が経過時間である場合、及び、ばらつきが標準偏差である場合も以下と同様である。
FIG. 3 is a diagram showing an example of the
図3の例では、まずfuncA関数が0ns、分散0nsで処理を開始し、funcA関数はfuncB関数を平均70ns、分散10nsで呼び出す。そして、funcB関数は平均200ns、分散20nsで処理を終え、funcA関数が再び処理を行い、funcA関数はfuncC関数を平均30ns、分散15nsで呼び出す。そして、funcC関数は平均170ns、分散13nsで処理を終え、funcA関数が再び処理を行って110ns、分散10nsで処理を終える。 In the example of FIG. 3, the funcA function first starts processing with 0 ns and a variance of 0 ns, and the funcA function calls the funcB function with an average of 70 ns and a variance of 10 ns. The funcB function finishes processing with an average of 200 ns and a variance of 20 ns, the funcA function performs processing again, and the funcA function calls the funcC function with an average of 30 ns and a variance of 15 ns. The funcC function finishes processing with an average of 170 ns and a variance of 13 ns, and the funcA function performs processing again and finishes with 110 ns and a variance of 10 ns.
代表実行トレース蓄積部4は、代表実行トレース算出部3で算出された代表実行トレース7を蓄積する。
The representative execution
表示部5は、代表実行トレース蓄積部4に蓄積された代表実行トレース7を選択し、選択した代表実行トレース7をタイミング図の態様で表示する。以下、出力部は代表実行トレース7を表示する表示部5であるものとして説明するが、これに限ったものではなく、例えば代表実行トレース7を送信する通信部であってもよい。代表実行トレース7は、イベントごとに統計処理された平均及びばらつきを持つため、関数の遷移であるイベント遷移は、平均及びばらつきに対応するイベント発生間隔を持たせて表示される。
The
図4は、表示部5による代表実行トレース7の表示例である。図4では、funcA関数がfuncB関数及びfuncC関数をこの順に呼び出す動作が示されている。表示部5は、関数の遷移を統計的処理の結果である代表実行トレース7に基づいて表示する。例えば、表示部5は、「平均差分時間±2×分散差分時間」のイベント発生間隔を持たせて、関数の遷移を表示する。図4の例では、表示部5は、funcA関数などからfuncB関数などへの関数遷移を2つの矢印で表現している。左側の矢印は「平均差分時間-2×分散差分時間」を示し、右側の矢印は「平均差分時間+2×分散差分時間」を示している。
FIG. 4 is a display example of the
実行トレース収集部1、実行トレース蓄積部2、代表実行トレース算出部3、及び、代表実行トレース蓄積部4は、変更前ソフトウェア及び変更後ソフトウェアのそれぞれについて処理を行う。そして、表示部5が、変更前ソフトウェアの代表実行トレース7と、変更後ソフトウェアの代表実行トレース7とを表示することにより、ユーザは変更影響を確認することができる。
The execution
<動作>
図5は、本実施の形態1に係る影響分析装置が変更影響を可視化する動作を示すフローチャートである。以下、図5を用いてこの動作を説明する。<Action>
FIG. 5 is a flow chart showing the operation of visualizing the change impact by the impact analysis device according to the first embodiment. This operation will be described below with reference to FIG.
ステップS1~ステップS3では、変更前ソフトウェアについて処理が行われる。まず、ステップS1にて、実行トレース収集部1は、変更前ソフトウェアの実行トレース6をある条件下で取得し、実行トレース蓄積部2に蓄積する。蓄積後、処理がステップS2に進む。
In steps S1 to S3, the pre-change software is processed. First, in step S1, the execution
ステップS2にて、実行トレース収集部1は、実行トレース6を取得した回数が、予め指定された指定回数に達しているか否かを判定する。達していないと判定された場合には処理がステップS1に戻り、当該ステップS1にて実行トレース収集部1は、実行トレース6を別の条件下で取得し、実行トレース蓄積部2に蓄積する。達していると判定された場合には処理がステップS3に進む。以上により、異なる複数の条件下で収集された複数の実行トレース6が実行トレース蓄積部2に蓄積される。
In step S2, the execution
ステップS3にて、代表実行トレース算出部3は、実行トレース蓄積部2に蓄積された変更前ソフトウェアの複数の実行トレース6に基づいて、変更前ソフトウェアの代表実行トレース7を算出し、代表実行トレース蓄積部4に蓄積する。蓄積後、処理がステップS4に進む。
At step S3, the representative execution
ステップS4~ステップS6では、変更後ソフトウェアについて、ステップS1~ステップS3の処理と同様の処理が行われる。まず、ステップS4にて、実行トレース収集部1は、変更後ソフトウェアの実行トレース6をある条件下で取得し、実行トレース蓄積部2に蓄積する。蓄積後、処理がステップS5に進む。
In steps S4 to S6, the same processing as in steps S1 to S3 is performed on the post-change software. First, in step S<b>4 , the execution
ステップS5にて、実行トレース収集部1は、実行トレース6を取得した回数が、予め指定された指定回数に達しているか否かを判定する。達していないと判定された場合には処理がステップS4に戻り、当該ステップS4にて実行トレース収集部1は、実行トレース6を別の条件下で取得し、実行トレース蓄積部2に蓄積する。達していると判定された場合には処理がステップS6に進む。
In step S5, the execution
ステップS6にて、代表実行トレース算出部3は、実行トレース蓄積部2に蓄積された変更後ソフトウェアの複数の実行トレース6に基づいて、変更後ソフトウェアの代表実行トレース7を算出し、代表実行トレース蓄積部4に蓄積する。蓄積後、処理がステップS7に進む。
In step S6, the representative execution
ステップS7にて、表示部5は、代表実行トレース蓄積部4に蓄積された代表実行トレース7を表示する。表示部5は、例えば、変更前ソフトウェアの代表実行トレース7及び変更後ソフトウェアの代表実行トレース7を選択的または同時に表示する。これにより、ユーザは、変更前ソフトウェアと変更後ソフトウェアとの間で行われた変更によるソフトウェアの性能への影響を確認することができる。表示後、図5の動作が終了する。
At step S<b>7 , the
図6は、ステップS3及びステップS6における、代表実行トレース7の算出動作を示すフローチャートである。以下、図6を用いてこの動作を説明する。
FIG. 6 is a flow chart showing the operation of calculating the
まず、ステップS11にて、代表実行トレース算出部3は、イベント系列リストを空にする。その後、処理がステップS12に進む。
First, in step S11, the representative
ステップS12にて、代表実行トレース算出部3は、実行トレース蓄積部2から実行トレース6を取得する。取得後、処理がステップS13に進む。
At step S<b>12 , the representative execution
ステップS13にて、代表実行トレース算出部3は、ステップS12で取得された実行トレース6のイベント系列がイベント系列リストに存在するか否かを確認する。存在しない場合にはステップS14に処理が進み、存在する場合にはステップS15に進む。
At step S13, the representative
ステップS14にて、代表実行トレース算出部3は、存在しなかったイベント系列をイベント系列リストに追加する。追加後、処理がステップS15に進む。
In step S14, the representative
ステップS15にて、代表実行トレース算出部3は、イベント系列リストにあるイベント系列のイベントについて、直前のイベントから差分時間を算出する。算出後、処理がステップS16に進む。
In step S15, the representative
ステップS16にて、代表実行トレース算出部3は、実行トレース蓄積部2に蓄積された複数の実行トレース6のうち未処理の実行トレース6が存在するか否かを判定する。存在すると判定された場合には処理がステップS12に戻り、当該ステップS12にて、代表実行トレース算出部3は、実行トレース蓄積部2から未処理の実行トレース6を取得する。存在しないと判定された場合には処理がステップS17に進む。以上の動作により、同じ種類のイベントが、最大で複数の実行トレース6と同じ数だけ得られ、それぞれについて差分時間が算出される。例えば、図2のような実行トレース6がN(Nは1以上の自然数)個収集されていた場合には、funcA@enterという1種類のイベントがN個得られ、それぞれについて差分時間が算出される。つまり、1種類のN(Nは1以上の自然数)個のイベントの差分時間が算出される。
At step S<b>16 , the representative
ステップS17にて、代表実行トレース算出部3は、イベント系列リストから1種類の1以上のイベントを取得する。取得後、処理がステップS18に進む。
In step S17, the representative
ステップS18にて、代表実行トレース算出部3は、1種類の1以上のイベントの差分時間から、平均値及び分散値を算出する。代表実行トレース算出部3は、1種類のイベントと、当該1種類のイベントの平均差分時間及び分散差分時間とを含む代表実行トレース7を生成する。その後、処理がステップS19に進む。
In step S18, the representative execution
ステップS19にて、代表実行トレース算出部3は、イベント系列リストに未処理のイベントが存在するか否かを判定する。存在すると判定された場合には処理がステップS17に戻り、当該ステップS17にて、代表実行トレース算出部3は、イベント系列リストから未処理のイベントを取得する。存在しないと判定された場合には、図6の動作が終了する。
In step S19, the representative
<実施の形態1のまとめ>
以上のような本実施の形態1に係る影響分析装置によれば、異なる複数の条件下でそれぞれ収集された複数の実行トレース6に基づいて、複数のイベントのそれぞれの時刻の平均及びばらつきを含む代表実行トレース7を算出して表示する。このような構成によれば、ソフトウェアの性能に対するソフトウェア実行時の条件の差による影響、例えば、他タスクや他プロセス、割込などの影響を確認するための表示を行うことができる。したがって、ユーザは、当該影響を考慮した性能影響を確認することができる。<Summary of
According to the impact analysis apparatus according to the first embodiment as described above, based on a plurality of execution traces 6 collected under a plurality of different conditions, the average and variation of each time of a plurality of events are calculated. A
<実施の形態2>
実施の形態1によれば、ユーザは、代表実行トレース7の時刻の平均である平均時刻と実行トレース6の時刻とを比較し、代表実行トレース7からある程度の差を有する実行トレース6を特定することで、その差の原因を調査することができる。しかしながら、代表実行トレース7のイベント系列が長い場合や、複数の実行トレース6の数が多い場合には、その作業は困難になる。このことに鑑みて、以下の説明で明らかとなるように、本発明の実施の形態2に係る影響分析装置では、代表実行トレース7からある程度の差を有する実行トレース6を自動的に抽出することが可能となっている。<
According to the first embodiment, the user compares the average time, which is the average of the times of the
図7は、本実施の形態2に係る影響分析装置の構成を示すブロック図である。以下、本実施の形態2に係る構成要素のうち、上述の構成要素と同じまたは類似する構成要素については同じまたは類似する参照符号を付し、異なる構成要素について主に説明する。 FIG. 7 is a block diagram showing the configuration of the influence analysis device according to the second embodiment. Hereinafter, among the constituent elements according to the second embodiment, constituent elements that are the same as or similar to the above-described constituent elements are denoted by the same or similar reference numerals, and different constituent elements will be mainly described.
図7に示す影響分析装置の構成は、実施の形態1に係る影響分析装置の構成(図1)に、抽出部である実行トレース外れ値抽出部8が追加された構成と同様である。実行トレース蓄積部2の入力は、実行トレース収集部1の出力と接続される。代表実行トレース算出部3の入力は、実行トレース蓄積部2の出力と接続される。代表実行トレース算出部3の入力は、実行トレース蓄積部2の出力と接続される。代表実行トレース蓄積部4の入力は、代表実行トレース算出部3の出力と接続される。実行トレース外れ値抽出部8の入力は、実行トレース蓄積部2の出力、及び、代表実行トレース蓄積部4の出力と接続される。表示部5の入力は、代表実行トレース蓄積部4の出力、及び、実行トレース外れ値抽出部8の出力と接続される。
The configuration of the impact analysis device shown in FIG. 7 is the same as the configuration of the impact analysis device according to the first embodiment (FIG. 1) with an execution trace
本実施の形態2では、代表実行トレース蓄積部4は、互いの複数のイベントの組み合わせが異なる複数の代表実行トレース7(例えば図10のトレースA~Dに類似するトレース)を蓄積している。ここでいう複数のイベントの組み合わせが異なることは、イベントの種類及び個数の少なくともいずれか1つが異なることを含む。
In the second embodiment, the representative execution
実行トレース外れ値抽出部8は、代表実行トレース蓄積部4に蓄積された複数の代表実行トレース7のうち、実行トレース蓄積部2に蓄積された複数の実行トレース6と複数のイベントの組み合わせの差が最も小さい代表実行トレース7を取得する。以下、実行トレース外れ値抽出部8で取得された代表実行トレース7を「最近傍系列の代表実行トレース7」と記すこともある。
The execution trace
実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7に含まれる平均である平均時刻を基準とする許容範囲を規定し、実行トレース蓄積部2に蓄積された複数の実行トレース6のうち、時刻が当該許容範囲外である実行トレース6を抽出する。以下、実行トレース外れ値抽出部8で抽出された実行トレース6を「外れ値の実行トレース6」と記すこともある。
The execution trace
表示部5は、実行トレース外れ値抽出部8より抽出された外れ値の実行トレース6を、抽出に用いた最近傍系列の代表実行トレース7に重畳して表示する。これにより、ユーザは、代表実行トレース7と、当該代表実行トレース7からある程度の差を有する実行トレース6とを確認することができる。
The
<動作>
図8にて、本実施の形態2に係る影響分析装置が変更影響を可視化する動作を示すフローチャートである。以下、図8を用いてこの動作を説明する。<Action>
FIG. 8 is a flow chart showing the operation of visualizing the change impact by the impact analysis device according to the second embodiment. This operation will be described below with reference to FIG.
ステップS21~ステップS23では、変更前ソフトウェアについて、実施の形態1で説明した図5のステップS1~ステップS3の処理と同様の処理が行われる。まず、ステップS21にて、実行トレース収集部1は、変更前ソフトウェアの実行トレース6をある条件下で取得し、実行トレース蓄積部2に蓄積する。蓄積後、処理がステップS22に進む。
In steps S21 to S23, processing similar to that of steps S1 to S3 in FIG. 5 described in the first embodiment is performed on the pre-change software. First, in step S21, the execution
ステップS22にて、実行トレース収集部1は、実行トレース6を取得した回数が、予め指定された指定回数に達しているか否かを判定する。達していないと判定された場合には処理がステップS21に戻り、当該ステップS21にて実行トレース収集部1は、実行トレース6を別の条件下で取得し、実行トレース蓄積部2に蓄積する。達していると判定された場合には処理がステップS23に進む。これにより、変更前ソフトウェアの複数の実行トレース6が実行トレース蓄積部2に蓄積される。
In step S22, the execution
ステップS23にて、代表実行トレース算出部3は、実行トレース蓄積部2に蓄積された変更前ソフトウェアの複数の実行トレース6に基づいて、変更前ソフトウェアの代表実行トレース7を算出し、代表実行トレース蓄積部4に蓄積する。
At step S23, the representative execution
以上の処理は、複数のイベントの組み合わせが互いに異なる複数の実行トレース6(例えば図10のトレースA~Dに類似するトレース)について行われる。その結果、変更前ソフトウェアについて、互いの複数のイベントの組み合わせが異なる複数の代表実行トレース7が代表実行トレース蓄積部4に蓄積される。蓄積後、処理がステップS24に進む。
The above processing is performed for a plurality of execution traces 6 (for example, traces similar to traces A to D in FIG. 10) having different combinations of a plurality of events. As a result, a plurality of representative execution traces 7 having different combinations of a plurality of events are accumulated in the representative execution
ステップS24及びステップS25では、変更後ソフトウェアについて、ステップS21及びステップS22と同様の処理が行われる。これにより、変更後ソフトウェアの複数の実行トレース6が実行トレース蓄積部2に蓄積される。蓄積後、処理がステップS26に進む。
In steps S24 and S25, the same processing as in steps S21 and S22 is performed on the post-change software. As a result, a plurality of execution traces 6 of the post-change software are accumulated in the execution
ステップS26にて、実行トレース外れ値抽出部8は、代表実行トレース蓄積部4に蓄積された変更前ソフトウェアの複数の代表実行トレース7から、変更前ソフトウェアの最近傍系列の代表実行トレース7を取得する。そして、実行トレース外れ値抽出部8は、変更前ソフトウェアの最近傍系列の代表実行トレース7と、実行トレース蓄積部2に蓄積された変更後ソフトウェアの複数の実行トレース6とを比較し、変更後ソフトウェアについて外れ値の実行トレース6を抽出する。それから、表示部5は、抽出された外れ値の実行トレース6を、最近傍系列の代表実行トレース7に重畳して表示する。これにより、ユーザは、変更前ソフトウェアの代表実行トレース7と、当該代表実行トレース7からある程度の差を有する変更後ソフトウェアの実行トレース6とを確認することができる。
In step S26, the execution trace
図9は、ステップS26における、最近傍系列の代表実行トレース7の取得動作、並びに、外れ値の実行トレース6の抽出動作及び表示動作を示すフローチャートである。以下、図9を用いてこれらの動作を説明する。
FIG. 9 is a flow chart showing the operation of acquiring the
まず、ステップS31にて、実行トレース外れ値抽出部8は、代表実行トレース蓄積部4から代表実行トレース7を取得する。取得後、処理がステップS32に進む。
First, in step S<b>31 , the execution trace
ステップS32にて、実行トレース外れ値抽出部8は、ステップS31で取得された代表実行トレース7と、実行トレース蓄積部2に蓄積された複数の実行トレース6との間の、複数のイベントの組み合わせの差を算出する。算出後、処理がステップS33に進む。
In step S32, the execution trace
ステップS33にて、実行トレース外れ値抽出部8は、ステップS32で算出された差が、最近傍系列の代表実行トレース7について同様に算出された差よりも小さいか否かを判定する。小さいと判定された場合には処理がステップS34に進み、小さくないと判定された場合には処理がステップS35に進む。
In step S33, the execution trace
ステップS34にて、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7を、ステップS31で取得された代表実行トレース7に更新する。更新後、処理がステップS35に進む。
In step S34, the execution trace
ステップS35にて、実行トレース外れ値抽出部8は、代表実行トレース蓄積部4に蓄積された複数の代表実行トレース7のうち未処理の代表実行トレース7が存在するか否かを判定する。存在すると判定された場合には処理がステップS31に戻り、当該ステップS31にて、実行トレース外れ値抽出部8は、代表実行トレース蓄積部4から未処理の代表実行トレース7を取得する。存在しないと判定された場合には処理がステップS36に進む。
In step S<b>35 , the execution trace
図10は、ステップS32~ステップS35の動作例を説明するための図である。図10の例では、基準トレースは、実行トレース蓄積部2に蓄積された実行トレース6であり、トレースAは、1回目のステップS31で取得された代表実行トレース7であり、…、トレースDは、4回目のステップS31で取得された代表実行トレース7である。以下、複数のイベントの組み合わせの差を「イベントの差」と略して説明する。
FIG. 10 is a diagram for explaining an operation example of steps S32 to S35. In the example of FIG. 10, the reference trace is the
基準トレースのイベント系列では、funcA関数が呼び出され、funcA関数の中でfuncB関数及びfuncC関数が呼び出されている。トレースAのイベント系列は、基準トレースのイベント系列と等しいため、イベントの差は「0」となる。 In the event series of the reference trace, the funcA function is called, and the funcB and funcC functions are called in the funcA function. Since the event series of trace A is equal to the event series of the reference trace, the event difference is "0".
トレースBのイベント系列では、funcA関数の中でfuncC関数のみが呼び出されている。つまり、トレースBのイベント系列では、funcB関数の呼び出しに伴うfuncB関数の入口イベント及び出口イベントがないため、イベントの差は「2」となる。 In the event series of trace B, only the funcC function is called in the funcA function. In other words, in the event series of trace B, the event difference is "2" because there is no entry event or exit event for the funcB function accompanying the call of the funcB function.
トレースCのイベント系列では、funcA関数の中でfuncB関数及びfuncD関数が呼び出されている。つまり、トレースCのイベント系列では、funcC関数ではなくfuncD関数が呼び出され、funcC関数の入口イベント及び出口イベントとfuncD関数の入口イベント及び出口イベントとが異なるため、イベントの差は「2」となる。 In the event series of trace C, the funcB function and the funcD function are called in the funcA function. That is, in the event series of trace C, the funcD function is called instead of the funcC function, and the entrance event and exit event of the funcC function are different from the entrance event and exit event of the funcD function, so the event difference is "2". .
トレースDのイベント系列では、funcA関数の中でfuncB関数、funcC関数、及び、funcD関数が呼び出されている。funcD関数が呼び出される分だけ、funcD関数の入口イベント及び出口イベントが増えているため、イベントの差は「2」となる。 In the event series of trace D, funcB function, funcC function, and funcD function are called in funcA function. Since the number of entry events and exit events of the funcD function has increased by the number of calls of the funcD function, the event difference is "2".
実行トレース外れ値抽出部8は、以上の例についてステップS32~ステップS35の処理を行った場合、トレースA~Dのうち実行トレース6とのイベントの差が最も小さいトレースAを、最近傍系列の代表実行トレース7として取得する。
When the execution trace
なお、以上の説明では、代表実行トレース7と比較される、複数の実行トレース6同士の複数のイベントの組み合わせは互いに同じである場合について説明したが、互いに異なる場合もある。このような場合には、例えば、実行トレース外れ値抽出部8は、各実行トレース6と、代表実行トレース7とのイベントの差を求め、複数の実行トレース6について当該差を合計した値が最も小さくなる代表実行トレース7を、最近傍系列の代表実行トレース7として取得すればよい。例えば、複数の実行トレース6として、図11の第1基準トレースが1つ、図11の第2基準トレースが5つ存在する場合、トレースA、トレースB、トレースC、トレースDのイベントの差は、それぞれ2、10、14、14となる。このような場合に、実行トレース外れ値抽出部8は、トレースA~Dのうち実行トレース6とのイベントの差が最も小さいトレースAを、最近傍系列の代表実行トレース7として取得すればよい。
In the above description, the combination of the multiple events of the multiple execution traces 6 to be compared with the
図9のステップS36以降の処理は、実行トレース蓄積部2に蓄積された複数の実行トレース6のそれぞれについて行われる。
The processing after step S36 in FIG. 9 is performed for each of the plurality of execution traces 6 accumulated in the execution
まず、ステップS36にて、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7からイベントを取得する。その後、処理がステップS37に進む。
First, in step S36, the execution trace
ステップS37にて、実行トレース外れ値抽出部8は、ステップS36で取得されたイベントの平均時刻を基準とする許容範囲を規定する。例えば、実行トレース外れ値抽出部8は、代表実行トレース7に含まれる分散を、分散時刻とした場合、許容範囲を、平均時刻±(分散時間×2)の範囲として規定する。実行トレース外れ値抽出部8は、実行トレース6のイベントの時刻が許容範囲内に収まっているか否かを判定する。収まっていると判定された場合には、処理がステップS38に進む。収まっていないと判定された場合には、処理がステップS39に進む。
In step S37, the execution trace
ステップS38にて、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7のうち未処理のイベントが存在するか否かを判定する。存在すると判定された場合には処理がステップS36に戻り、当該ステップS36にて、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7から未処理のイベントを取得する。存在しないと判定された場合には、図9の動作が終了する。
In step S38, the execution trace
ステップS39にて、実行トレース外れ値抽出部8は、ステップS37で判定された実行トレース6を外れ値の実行トレース6として決定し、表示部5は、外れ値の実行トレース6を、抽出に用いた最近傍系列の代表実行トレース7に重畳して表示する。表示後、図9の動作が終了する。
In step S39, the execution trace
図12は、ステップS39の表示例を示す図である。点線は最近傍系列の代表実行トレース7を示し、実線は外れ値の実行トレース6を示す。図12に示されるような表示によれば、外れ値の実行トレース6のうち、funcA関数からfuncB関数に遷移するタイミング、及び、funcA関数からfuncC関数に遷移するタイミングが、代表実行トレース7の許容範囲から外れていることが読み取れる。
FIG. 12 is a diagram showing a display example of step S39. The dotted line indicates the
<実施の形態2のまとめ>
以上のような本実施の形態2に係る影響分析装置によれば、実行トレース蓄積部2に蓄積された複数の実行トレース6のうち、時刻が許容範囲外である実行トレース6を抽出して表示する。このような構成によれば、ユーザは、代表実行トレース7と、当該代表実行トレース7からある程度の差を有する実行トレース6とを確認することができる。このため、実行トレース6を代表実行トレース7から異ならせた原因の調査の容易化が期待できる。<Summary of
According to the impact analysis apparatus according to the second embodiment as described above, among the plurality of execution traces 6 accumulated in the execution
なお以上の説明において、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7の平均時刻との差が一定値以上である実行トレース6を抽出し、表示部5は当該実行トレース6を表示したが、これに限ったものではない。例えば、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7に対して複数のイベントの組み合わせの差が一定数以上である実行トレース6を抽出し、表示部5は当該実行トレース6を表示してもよい。このような構成によっても、異ならせた原因の調査の容易化が期待できる。
In the above explanation, the execution trace
<実施の形態3>
実施の形態1及び実施の形態2では、実行トレース収集部1で収集される実行トレース6は、開始イベント及び終了イベントが同一であることを前提とした。もし、実行トレース収集部1が収集する実行トレース6の開始イベント及び終了イベントが同一でない場合には、実行トレース6同士を正しく比較できない可能性がある。このことに鑑みて、以下の説明で明らかとなるように、本発明の実施の形態3に係る影響分析装置では、複数の実行トレース6のイベントの開始及び終了を揃えることが可能となっている。<
In the first and second embodiments, it is assumed that the execution traces 6 collected by the execution
図13は、本実施の形態3に係る影響分析装置の構成を示すブロック図である。以下、本実施の形態3に係る構成要素のうち、上述の構成要素と同じまたは類似する構成要素については同じまたは類似する参照符号を付し、異なる構成要素について主に説明する。 FIG. 13 is a block diagram showing the configuration of an influence analysis device according to the third embodiment. Hereinafter, among the constituent elements according to the third embodiment, constituent elements that are the same as or similar to the above-described constituent elements are denoted by the same or similar reference numerals, and different constituent elements will be mainly described.
図13に示す影響分析装置は、実施の形態2に係る影響分析装置の構成(図7)に、制限部であるイベント制限部10が追加された構成と同様である。
The impact analysis device shown in FIG. 13 has the same configuration as the configuration of the impact analysis device according to the second embodiment (FIG. 7) with an
イベント制限部10の入力は実行トレース収集部1の出力と接続される。実行トレース蓄積部2の入力はイベント制限部10の出力と接続される。代表実行トレース算出部3の入力は、実行トレース蓄積部2の出力と接続される。代表実行トレース蓄積部4の入力は、代表実行トレース算出部3の出力と接続される。実行トレース外れ値抽出部8の入力は、実行トレース蓄積部2の出力、及び、代表実行トレース蓄積部4の出力と接続される。表示部5の入力は、代表実行トレース蓄積部4の出力、及び、実行トレース外れ値抽出部8の出力と接続される。
The input of
イベント制限部10は、実行トレース蓄積部2に蓄積される実行トレース6を、実行トレース収集部1で収集された実行トレース6のうち、予め指定された開始イベントと予め指定された終了イベントとを有する実行トレース6に制限する。実行トレース収集部1で収集された実行トレース6に、開始イベントと同じイベントから終了イベントと同じイベントまでのイベント系列が1つ以上存在する場合、イベント制限部10は、イベント系列を実行トレース6として、実行トレース蓄積部2に格納する。実行トレース収集部1で収集された実行トレース6に、開始イベントと同じイベントから終了イベントと同じイベントまでのイベント系列が1つも存在しない場合、イベント制限部10は実行トレース6を実行トレース蓄積部2に格納しない。
The
図14は、イベント制限部10で指定される開始イベント及び終了イベントの例を示す図である。図14では、開始イベントにfuncA関数の入口イベントが指定され、終了イベントにfuncA関数の出口イベントが指定されている。
14A and 14B are diagrams showing examples of start events and end events specified by the
図15は、図14の開始イベント及び出口イベントを用いたイベント制限の一例を説明するための図である。入力イベント系列、つまり実行トレース収集部1で収集された実行トレース6では、funcE関数がfuncA関数を呼び出した後、funcA関数がfuncB関数及びfuncC関数をこの順に呼び出している。図14のように、funcA関数の入口イベント及び出口イベントが開始イベント及び終了イベントに指定された場合、イベント制限部10は、funcA関数がfuncB関数及びfuncC関数をこの順に呼び出しているイベント系列のみを、出力イベント系列として出力する。これにより、図14及び図15の例では、funcE関数の入口イベント及び出口イベントを含まないイベント系列が、実行トレース6として実行トレース蓄積部2に蓄積される。
FIG. 15 is a diagram for explaining an example of event restriction using the start event and exit event of FIG. 14; In the input event sequence, that is, the
<動作>
図16は、イベント制限部10の動作を示すフローチャートである。以下、図16を用いてこの動作を説明する。<Action>
FIG. 16 is a flow chart showing the operation of the
まずステップS41にて、イベント制限部10は出力フラグを無効に設定する。その後、処理がステップS42に進む。
First, in step S41, the
ステップS42にて、イベント制限部10は、実行トレース収集部1で収集された実行トレース6からイベントを取得する。その後、処理がステップS43に進む。
At step S<b>42 , the
ステップS43にて、イベント制限部10は、出力フラグが有効に設定されているか否かを判定する。出力フラグが有効に設定されていると判定された場合には処理がステップS47に進み、出力フラグが無効に設定されていると判定された場合には処理がステップS44に進む。
In step S43, the
ステップS44にて、イベント制限部10は、ステップS42で取得されたイベントが開始イベントと一致するか否かを判定する。一致すると判定された場合には処理がステップS45に進み、一致しないと判定された場合には処理がステップS50に進む。
At step S44, the
ステップS45にて、イベント制限部10は、出力フラグを有効に設定する。その後、処理がステップS46に進む。
In step S45, the
ステップS46にて、イベント制限部10は、新規の実行トレース6を作成する。その後、処理がステップS47に進む。
At step S46, the
ステップS47にて、イベント制限部10は、作成している実行トレース6に、ステップS42で取得されたイベントを含める。その後、処理がステップS48に進む。
In step S47, the
ステップS48にて、イベント制限部10は、ステップS42で取得されたイベントが終了イベントと一致するか否かを判定する。一致すると判定された場合には処理がステップS49に進み、一致しないと判定された場合には処理がステップS50に進む。
At step S48, the
ステップS49にて、イベント制限部10は、出力フラグを無効に設定する。その後、処理がステップS50に進む。
In step S49, the
ステップS50にて、イベント制限部10は、実行トレース収集部1で収集された実行トレース6に未処理のイベントが存在するか否かを判定する。存在すると判定された場合には処理がステップS42に戻り、当該ステップS42にて、イベント制限部10は、実行トレース収集部1で収集された実行トレース6から未処理のイベントを取得する。存在しないと判定された場合には図16の動作が終了する。
In step S50, the
<実施の形態3のまとめ>
以上のような本実施の形態3に係る影響分析装置によれば、実行トレース蓄積部2に蓄積される実行トレース6を、予め指定された開始イベントと予め指定された終了イベントとを有する実行トレース6に制限する。このような構成によれば、イベント系列が所望のイベント系列と異なる、実行トレース6ひいては代表実行トレース7の処理を抑制することができる。このため、影響分析装置の処理効率化、及びユーザの作業効率化を高めることができる。<Summary of
According to the impact analysis apparatus according to the third embodiment as described above, the
<実施の形態4>
実施の形態3では、関数遷移のイベント系列でのみ、実行トレース6ひいては代表実行トレース7を分類しており、状態などの変数の違いによって、実行トレース6ひいては代表実行トレース7を分類していない。実施の形態3において、実行トレース収集部1で収集される実行トレース6が変数を含むと、変数の離散値に対して、イベントの種類が細分化される。これにより、ある2つのイベントの内容が実質的に同じであっても、それらイベント内の変数が異なることによって、それらイベントは互いに異なるものとして処理されることがある。その結果、実行トレース6ひいては代表実行トレース7の数が不要に増加する可能性がある。このことに鑑みて、以下の説明で明らかとなるように、本発明の実施の形態4に係る影響分析装置では、変数に関して実行トレース6ひいては代表実行トレース7の処理を抑制することが可能となっている。<
In the third embodiment, the
図17は、本実施の形態4に係る影響分析装置の構成を示すブロック図である。以下、本実施の形態4に係る構成要素のうち、上述の構成要素と同じまたは類似する構成要素については同じまたは類似する参照符号を付し、異なる構成要素について主に説明する。 FIG. 17 is a block diagram showing the configuration of an influence analysis device according to the fourth embodiment. Hereinafter, among the constituent elements according to the fourth embodiment, constituent elements that are the same as or similar to the above-described constituent elements are denoted by the same or similar reference numerals, and different constituent elements will be mainly described.
図17に示す影響分析装置は、実施の形態3に係る影響分析装置の構成(図13)に、変換部であるイベント変換部12が追加された構成と同様である。
The impact analysis device shown in FIG. 17 has the same configuration as the configuration of the impact analysis device according to Embodiment 3 (FIG. 13) with an
イベント変換部12の入力は実行トレース収集部1の出力と接続される。イベント制限部10の入力はイベント変換部12の出力と接続される。実行トレース蓄積部2の入力はイベント制限部10の出力と接続される。代表実行トレース算出部3の入力は、実行トレース蓄積部2の出力と接続される。代表実行トレース蓄積部4の入力は、代表実行トレース算出部3の出力と接続される。実行トレース外れ値抽出部8の入力は、実行トレース蓄積部2の出力、及び、代表実行トレース蓄積部4の出力と接続される。表示部5の入力は、代表実行トレース蓄積部4の出力、及び、実行トレース外れ値抽出部8の出力と接続される。
The input of the
本実施の形態4では、実行トレース6は変数を含んでいる。そして、実行トレース収集部1で収集された実行トレース6の変数が、予め指定された変数を含む場合、イベント変換部12は、予め指定された変数が取り得る離散値の種類を減らす写像を用いて、当該実行トレース6の変数を変換する。一方、実行トレース収集部1で収集された実行トレース6の変数が、予め指定された変数を含まない場合、イベント変換部12は、当該実行トレース6をそのまま出力する。
In the fourth embodiment, the
図18は、イベント変換部12で用いる写像の規則の例を示す図である。図18では、変数xを0,1,2のいずれかに写像する規則として、それぞれx<0、0≦x<15、15≦xの変換条件が規定されている。また、変数yを0,1のいずれかに写像する規則として、それぞれy<5、5≦yの変換条件が規定されている。
FIG. 18 is a diagram showing an example of mapping rules used by the
図19は、イベント変換部12の出力例を示す図である。図19には、入力イベント系列として、funcA関数呼び出し後にx=7となり、funcB関数呼び出し後にy=10となり、funcC関数呼び出し後にy=-1となり、funcC関数完了後にx=30となるイベント系列が示されている。イベント変換部12が、図18の規則を用いて図19の入力イベント系列を変換すると、図19の出力イベント系列が得られる。すなわち、funcA関数呼び出し後にx=1となり、funcB関数呼び出し後にy=1となり、funcC関数呼び出し後にy=0となり、funcC関数完了後にx=2となるイベント系列が得られる。
FIG. 19 is a diagram showing an output example of the
<動作>
図20は、イベント変換部12の動作を示すフローチャートである。以下、図20を用いてこの動作を説明する。<Action>
FIG. 20 is a flow chart showing the operation of the
まずステップS61にて、イベント変換部12は、実行トレース収集部1で収集された実行トレース6からイベントを取得する。その後、処理がステップS62に進む。
First, in step S<b>61 , the
ステップS62にて、イベント変換部12は、ステップS61で取得されたイベント内の変数が、図18のような写像の規則で指定された変数と一致するか否かを判定する。一致すると判定された場合には処理がステップS63に進み、一致しないと判定された場合には処理がステップS64に進む。
In step S62, the
ステップS63にて、イベント変換部12は、ステップS61で取得されたイベント内の変数の値を、写像の規則に従って変換し、変換後の値に書き換えて出力する。その後、処理がステップS65に進む。
In step S63, the
ステップS64にて、イベント変換部12は、ステップS61で取得されたイベントをそのまま出力する。その後、処理がステップS65に進む。
In step S64, the
ステップS65にて、イベント変換部12は、実行トレース収集部1で収集された実行トレース6に未処理のイベントが存在するか否かを判定する。存在すると判定された場合には処理がステップS61に戻り、当該ステップS61にて、イベント変換部12は、実行トレース収集部1で収集された実行トレース6から未処理のイベントを取得する。存在しないと判定された場合には図20の動作が終了する。
In step S65, the
<実施の形態4のまとめ>
以上のような本実施の形態4に係る影響分析装置によれば、変数の種類を減らす写像を用いて、実行トレース収集部1で収集された実行トレース6の変数を変換する。このような構成によれば、関数遷移だけでなく、変数の変換条件を考慮した性能影響の比較及び原因箇所の可視化ができる。この際、変数の種類を減らすことによって実行トレース6ひいては代表実行トレース7の数を抑制することができるため、影響分析装置の処理効率化、及びユーザの作業効率化を高めることができる。<Summary of
According to the influence analysis apparatus according to the fourth embodiment as described above, the variables of the
<その他について>
実行トレース収集部1、代表実行トレース算出部3、実行トレース外れ値抽出部8、イベント制限部10、及び、イベント変換部12は、例えば影響分析装置に対応するコンピュータの図示しないCPU(Central Processing Unit)などが、影響分析装置の図示しない半導体メモリなどの記憶装置に記憶されたプログラムを実行することにより、当該CPUの機能として実現される。<Others>
The execution
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。 In addition, within the scope of the invention, each embodiment can be freely combined, and each embodiment can be appropriately modified or omitted.
本発明は詳細に説明されたが、上記した説明は、すべての態様において、例示であって、本発明がそれに限定されるものではない。例示されていない無数の変形例が、本発明の範囲から外れることなく想定され得るものと解される。 While the invention has been described in detail, the foregoing description is, in all its aspects, illustrative and not intended to limit the invention. It is understood that numerous variations not illustrated can be envisioned without departing from the scope of the invention.
1 実行トレース収集部、2 実行トレース蓄積部、3 代表実行トレース算出部、4 代表実行トレース蓄積部、5 表示部、6 実行トレース、7 代表実行トレース、8 実行トレース外れ値抽出部、10 イベント制限部、12 イベント変換部。
1 execution
Claims (10)
前記実行トレース収集部で収集された前記複数の実行トレースを蓄積する実行トレース蓄積部と、
前記実行トレース蓄積部に蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出する代表実行トレース算出部と、
前記代表実行トレース算出部で算出された前記代表実行トレースを蓄積する代表実行トレース蓄積部と、
前記代表実行トレース蓄積部に蓄積された前記代表実行トレースを出力する出力部と、
前記代表実行トレース蓄積部に蓄積された前記代表実行トレースに含まれる前記平均を基準とする許容範囲を規定し、前記実行トレース蓄積部に蓄積された前記複数の実行トレースのうち、前記時刻が前記許容範囲外である前記実行トレースを抽出する抽出部と
を備え、
前記出力部は、前記抽出部で抽出された前記実行トレースを、抽出に用いた前記代表実行トレースに重畳して表示する、影響分析装置。 an execution trace collection unit that collects, under a plurality of different conditions, a plurality of execution traces including a plurality of events including entry and exit events of a function in software and the times of the plurality of events;
an execution trace accumulation unit for accumulating the plurality of execution traces collected by the execution trace collection unit;
representative execution trace calculation for calculating a representative execution trace including the plurality of events and the average and variation of the times of each of the plurality of events based on the plurality of execution traces accumulated in the execution trace accumulation unit; Department and
a representative execution trace accumulation unit for accumulating the representative execution trace calculated by the representative execution trace calculation unit;
an output unit that outputs the representative execution trace accumulated in the representative execution trace accumulation unit ;
defining an allowable range based on the average contained in the representative execution trace accumulated in the representative execution trace accumulation unit, and determining, among the plurality of execution traces accumulated in the execution trace accumulation unit, an extraction unit that extracts the execution trace that is out of an acceptable range;
with
The impact analysis device, wherein the output unit displays the execution trace extracted by the extraction unit superimposed on the representative execution trace used for extraction.
前記実行トレース収集部で収集された前記複数の実行トレースを蓄積する実行トレース蓄積部と、
前記実行トレース蓄積部に蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出する代表実行トレース算出部と、
前記代表実行トレース算出部で算出された前記代表実行トレースを蓄積する代表実行トレース蓄積部と、
前記代表実行トレース蓄積部に蓄積された前記代表実行トレースを出力する出力部と、
前記実行トレース蓄積部に蓄積される前記実行トレースを、前記実行トレース収集部で収集された前記実行トレースのうち、予め指定された開始イベントと予め指定された終了イベントとを有する前記実行トレースに制限する制限部と
を備える、影響分析装置。 an execution trace collection unit that collects, under a plurality of different conditions, a plurality of execution traces including a plurality of events including entry and exit events of a function in software and the times of the plurality of events;
an execution trace accumulation unit for accumulating the plurality of execution traces collected by the execution trace collection unit;
representative execution trace calculation for calculating a representative execution trace including the plurality of events and the average and variation of the times of each of the plurality of events based on the plurality of execution traces accumulated in the execution trace accumulation unit; Department and
a representative execution trace accumulation unit for accumulating the representative execution trace calculated by the representative execution trace calculation unit;
an output unit that outputs the representative execution trace accumulated in the representative execution trace accumulation unit ;
limiting the execution traces accumulated in the execution trace accumulation unit to execution traces having a pre-designated start event and a pre-designated end event among the execution traces collected by the execution trace collection unit and
an impact analysis device.
前記実行トレース収集部で収集された前記複数の実行トレースを蓄積する実行トレース蓄積部と、
前記実行トレース蓄積部に蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出する代表実行トレース算出部と、
前記代表実行トレース算出部で算出された前記代表実行トレースを蓄積する代表実行トレース蓄積部と、
前記代表実行トレース蓄積部に蓄積された前記代表実行トレースを出力する出力部と、
変数の種類を減らす写像を用いて、前記実行トレース収集部で収集された前記実行トレースの前記変数を変換する変換部と
を備える、影響分析装置。 an execution trace collection unit that collects, under a plurality of different conditions, a plurality of execution traces including a plurality of events including entry and exit events of a function in software, times of the plurality of events , and variables ;
an execution trace accumulation unit for accumulating the plurality of execution traces collected by the execution trace collection unit;
representative execution trace calculation for calculating a representative execution trace including the plurality of events and the average and variation of the times of each of the plurality of events based on the plurality of execution traces accumulated in the execution trace accumulation unit; Department and
a representative execution trace accumulation unit for accumulating the representative execution trace calculated by the representative execution trace calculation unit;
an output unit that outputs the representative execution trace accumulated in the representative execution trace accumulation unit ;
a conversion unit that converts the variables of the execution trace collected by the execution trace collection unit using a mapping that reduces the types of variables;
an impact analysis device.
前記代表実行トレース蓄積部は、
互いの前記複数のイベントの組み合わせが異なる複数の前記代表実行トレースを蓄積し、
前記抽出部は、
前記代表実行トレース蓄積部に蓄積された前記複数の代表実行トレースのうち、前記実行トレース蓄積部に蓄積された前記複数の実行トレースと前記複数のイベントの組み合わせの差が最も小さい前記代表実行トレースを抽出に用いる、影響分析装置。 The impact analysis device according to claim 1 ,
The representative execution trace accumulation unit
accumulating a plurality of representative execution traces having different combinations of the plurality of events;
The extractor is
Among the plurality of representative execution traces accumulated in the representative execution trace accumulation unit, the representative execution trace having the smallest difference between the plurality of execution traces accumulated in the execution trace accumulation unit and the combination of the plurality of events is selected. Influence analysis equipment used for extraction.
実行トレース蓄積部が、前記実行トレース収集部で収集された前記複数の実行トレースを蓄積し、
代表実行トレース算出部が、前記実行トレース蓄積部に蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出し、
代表実行トレース蓄積部が、前記代表実行トレース算出部で算出された前記代表実行トレースを蓄積し、
出力部が、前記代表実行トレース蓄積部に蓄積された前記代表実行トレースを出力し、
抽出部が、前記代表実行トレース蓄積部に蓄積された前記代表実行トレースに含まれる前記平均を基準とする許容範囲を規定し、前記実行トレース蓄積部に蓄積された前記複数の実行トレースのうち、前記時刻が前記許容範囲外である前記実行トレースを抽出し、
前記出力部は、前記抽出部で抽出された前記実行トレースを、抽出に用いた前記代表実行トレースに重畳して表示する、影響分析方法。 an execution trace collection unit collecting a plurality of events including function entry and exit events in software and a plurality of execution traces including times of the plurality of events under a plurality of different conditions;
an execution trace accumulation unit for accumulating the plurality of execution traces collected by the execution trace collection unit;
A representative execution trace calculation unit, based on the plurality of execution traces accumulated in the execution trace accumulation unit, calculates a representative execution trace including the plurality of events and the average and variation of the times of each of the plurality of events. to calculate
a representative execution trace accumulating unit accumulating the representative execution trace calculated by the representative execution trace calculating unit;
an output unit outputting the representative execution trace accumulated in the representative execution trace accumulation unit;
an extraction unit defining an allowable range based on the average included in the representative execution trace accumulated in the representative execution trace accumulation unit, and among the plurality of execution traces accumulated in the execution trace accumulation unit, extracting the execution trace whose time is outside the allowable range;
The impact analysis method , wherein the output unit displays the execution trace extracted by the extraction unit so as to be superimposed on the representative execution trace used for extraction.
実行トレース蓄積部が、前記実行トレース収集部で収集された前記複数の実行トレースを蓄積し、
代表実行トレース算出部が、前記実行トレース蓄積部に蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出し、
代表実行トレース蓄積部が、前記代表実行トレース算出部で算出された前記代表実行トレースを蓄積し、
出力部が、前記代表実行トレース蓄積部に蓄積された前記代表実行トレースを出力し、
制限部が、前記実行トレース蓄積部に蓄積される前記実行トレースを、前記実行トレース収集部で収集された前記実行トレースのうち、予め指定された開始イベントと予め指定された終了イベントとを有する前記実行トレースに制限する、影響分析方法。 an execution trace collection unit collecting a plurality of events including function entry and exit events in software and a plurality of execution traces including times of the plurality of events under a plurality of different conditions;
an execution trace accumulation unit for accumulating the plurality of execution traces collected by the execution trace collection unit;
A representative execution trace calculation unit, based on the plurality of execution traces accumulated in the execution trace accumulation unit, calculates a representative execution trace including the plurality of events and the average and variation of the times of each of the plurality of events. to calculate
a representative execution trace accumulating unit accumulating the representative execution trace calculated by the representative execution trace calculating unit;
an output unit outputting the representative execution trace accumulated in the representative execution trace accumulation unit;
the execution trace accumulated in the execution trace accumulation unit having a pre-designated start event and a pre-designated end event among the execution traces collected by the execution trace collection unit; An impact analysis method that limits execution traces .
実行トレース蓄積部が、前記実行トレース収集部で収集された前記複数の実行トレースを蓄積し、
代表実行トレース算出部が、前記実行トレース蓄積部に蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出し、
代表実行トレース蓄積部が、前記代表実行トレース算出部で算出された前記代表実行トレースを蓄積し、
出力部が、前記代表実行トレース蓄積部に蓄積された前記代表実行トレースを出力し、
変換部が、変数の種類を減らす写像を用いて、前記実行トレース収集部で収集された前記実行トレースの前記変数を変換する、影響分析方法。 an execution trace collection unit collects, under a plurality of different conditions, a plurality of events including entry and exit events of functions in software, a plurality of execution traces including times of the plurality of events , and variables ;
an execution trace accumulation unit for accumulating the plurality of execution traces collected by the execution trace collection unit;
A representative execution trace calculation unit, based on the plurality of execution traces accumulated in the execution trace accumulation unit, calculates a representative execution trace including the plurality of events and the average and variation of the times of each of the plurality of events. to calculate
a representative execution trace accumulating unit accumulating the representative execution trace calculated by the representative execution trace calculating unit;
an output unit outputting the representative execution trace accumulated in the representative execution trace accumulation unit;
The impact analysis method , wherein a transformation unit transforms the variables of the execution trace collected by the execution trace collection unit using a variable type reduction mapping.
収集された前記複数の実行トレースを蓄積する手段と、
蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出する手段と、
算出された前記代表実行トレースを蓄積する手段と、
蓄積された前記代表実行トレースを出力する手段と、
蓄積された前記代表実行トレースに含まれる前記平均を基準とする許容範囲を規定し、蓄積された前記複数の実行トレースのうち、前記時刻が前記許容範囲外である前記実行トレースを抽出する手段と、をコンピュータに実行させ、
前記代表実行トレースを出力する手段が、抽出された前記実行トレースを、抽出に用いた前記代表実行トレースに重畳して表示する、影響分析プログラム。 means for collecting a plurality of execution traces including a plurality of events including entry and exit events of a function in software and the times of the plurality of events under a plurality of different conditions;
means for accumulating the plurality of collected execution traces;
means for calculating, based on the accumulated execution traces, a representative execution trace including the plurality of events and the average and variation of the times of each of the plurality of events;
means for accumulating the calculated representative execution trace;
means for outputting the accumulated representative execution trace;
means for prescribing an allowable range based on the average included in the accumulated representative execution traces, and extracting the execution trace whose time is outside the allowable range from among the plurality of accumulated execution traces; , on the computer , and
The impact analysis program , wherein the means for outputting the representative execution trace displays the extracted execution trace superimposed on the representative execution trace used for extraction.
収集された前記複数の実行トレースを蓄積する手段と、
蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出する手段と、
算出された前記代表実行トレースを蓄積する手段と、
蓄積された前記代表実行トレースを出力する手段と、
蓄積される前記実行トレースを、収集された前記実行トレースのうち、予め指定された開始イベントと予め指定された終了イベントとを有する前記実行トレースに制限する手段と、をコンピュータに実行させる、影響分析プログラム。 means for collecting a plurality of execution traces including a plurality of events including entry and exit events of a function in software and the times of the plurality of events under a plurality of different conditions;
means for accumulating the plurality of collected execution traces;
means for calculating, based on the accumulated execution traces, a representative execution trace including the plurality of events and the average and variation of the times of each of the plurality of events;
means for accumulating the calculated representative execution trace;
means for outputting the accumulated representative execution trace;
means for limiting the accumulated execution traces to those execution traces having a pre-specified start event and a pre-specified end event among the collected execution traces. program.
収集された前記複数の実行トレースを蓄積する手段と、
蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出する手段と、
算出された前記代表実行トレースを蓄積する手段と、
蓄積された前記代表実行トレースを出力する手段と、
変数の種類を減らす写像を用いて、収集された前記実行トレースの前記変数を変換する手段と、をコンピュータに実行させる、影響分析プログラム。 means for collecting a plurality of execution traces including a plurality of events including function entry and exit events in software, the times of the plurality of events , and variables under a plurality of different conditions;
means for accumulating the plurality of collected execution traces;
means for calculating, based on the accumulated execution traces, a representative execution trace including the plurality of events and the average and variation of the times of each of the plurality of events;
means for accumulating the calculated representative execution trace;
means for outputting the accumulated representative execution trace;
and means for transforming said variables of said collected execution traces using a variable type reducing mapping .
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2019/038885 WO2021064887A1 (en) | 2019-10-02 | 2019-10-02 | Impact analysis device, impact analysis method, and impact analysis program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2021064887A1 JPWO2021064887A1 (en) | 2021-12-23 |
| JP7258171B2 true JP7258171B2 (en) | 2023-04-14 |
Family
ID=75337077
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021550834A Active JP7258171B2 (en) | 2019-10-02 | 2019-10-02 | Impact analysis device, impact analysis method, and impact analysis program |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7258171B2 (en) |
| WO (1) | WO2021064887A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005258552A (en) | 2004-03-09 | 2005-09-22 | Nec Corp | Event analysis apparatus |
| JP2015060275A (en) | 2013-09-17 | 2015-03-30 | 三菱電機株式会社 | Log data collection device, management method for log data, and program |
| JP2019169087A (en) | 2018-03-26 | 2019-10-03 | 日本電気株式会社 | Information aggregation device, information aggregation method, and program |
-
2019
- 2019-10-02 WO PCT/JP2019/038885 patent/WO2021064887A1/en not_active Ceased
- 2019-10-02 JP JP2021550834A patent/JP7258171B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005258552A (en) | 2004-03-09 | 2005-09-22 | Nec Corp | Event analysis apparatus |
| JP2015060275A (en) | 2013-09-17 | 2015-03-30 | 三菱電機株式会社 | Log data collection device, management method for log data, and program |
| JP2019169087A (en) | 2018-03-26 | 2019-10-03 | 日本電気株式会社 | Information aggregation device, information aggregation method, and program |
Non-Patent Citations (1)
| Title |
|---|
| DT SOFTWARE TEST VISION 動的テストツールから業務改善を考える,日本,ハートランド・データ株式会社,2018年07月05日,[CONCEPT],[SCENE_01]-[SCENE_03] |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2021064887A1 (en) | 2021-12-23 |
| WO2021064887A1 (en) | 2021-04-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9367426B2 (en) | Call graph simplification/comparison and automatic initial suspects finding of performance degradations | |
| US5903730A (en) | Method of visualizing results of performance monitoring and analysis in a parallel computing system | |
| US8464221B2 (en) | Visualization tool for system tracing infrastructure events | |
| Krogmann et al. | Using genetic search for reverse engineering of parametric behavior models for performance prediction | |
| Gibilisco et al. | Stage aware performance modeling of dag based in memory analytic platforms | |
| EP3848833A1 (en) | Analysis function imparting device, analysis function imparting method, and analysis function imparting program | |
| Zhao et al. | On-the-fly principled speculation for FSM parallelization | |
| CN113268403A (en) | Time series analysis and prediction method, device, equipment and storage medium | |
| Meira Jr et al. | Waiting time analysis and performance visualization in Carnival | |
| JP6708678B2 (en) | Numerical control device | |
| JP7258171B2 (en) | Impact analysis device, impact analysis method, and impact analysis program | |
| JP5687122B2 (en) | Software evaluation device, software evaluation method, and system evaluation device | |
| WO2019163915A1 (en) | Project analysis device and program | |
| Aguilar et al. | MPI trace compression using event flow graphs | |
| KR102329368B1 (en) | Information processing apparatus, information processing method, and information processing program stored in a recording medium | |
| US8997064B2 (en) | Symbolic testing of software using concrete software execution | |
| US7281241B2 (en) | System and method for visual debugging of constraint systems | |
| JP2004264914A (en) | Apparatus for measuring and analyzing system performance | |
| GB2539961A (en) | Code hotspot encapsulation | |
| US7523030B2 (en) | Simulation system and computer program | |
| KR102167476B1 (en) | Software refactoring method and apparatus using resource monitoring | |
| US9286353B2 (en) | Method for generating processing specifications for a stream of data items | |
| JP7652253B2 (en) | Determination device, determination method, and determination program | |
| Ananthakrishnan et al. | Scalajack: Customized scalable tracing with in-situ data analysis | |
| EP2137622B1 (en) | Method and data processing system for computer-assisted performance analysis of a data processing system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210823 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221101 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221125 |
|
| 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: 20230307 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230404 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7258171 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |