JP2008217721A - Program profiling system, program profiling method, and program - Google Patents
Program profiling system, program profiling method, and program Download PDFInfo
- Publication number
- JP2008217721A JP2008217721A JP2007057896A JP2007057896A JP2008217721A JP 2008217721 A JP2008217721 A JP 2008217721A JP 2007057896 A JP2007057896 A JP 2007057896A JP 2007057896 A JP2007057896 A JP 2007057896A JP 2008217721 A JP2008217721 A JP 2008217721A
- Authority
- JP
- Japan
- Prior art keywords
- program
- processing
- information storage
- methods
- measurement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、複数のメソッドで構成されたプログラムを実行したときに、各メソッドの処理時間を測定したり、メソッド間の呼出関係を解析する、プログラムプロファイリング装置、プログラムプロファイリング方法、及びプログラムに関する。 The present invention relates to a program profiling apparatus, a program profiling method, and a program for measuring a processing time of each method and analyzing a call relationship between methods when a program composed of a plurality of methods is executed.
複数のメソッドで構成されたプログラムの処理性能の改善を目的として、プログラム全体の性能の低下に大きな影響を与えるメソッド(ボトルネック)等を特定するために、プログラム実行時の各メソッドの処理時間を計測したり、メソッド間の呼出関係を解析したりすること(以下プロファイリングという)が行われている。 For the purpose of improving the processing performance of a program composed of multiple methods, the processing time of each method during program execution is specified in order to identify methods (bottlenecks) that greatly affect the performance degradation of the entire program. Measurement and analysis of the calling relationship between methods (hereinafter referred to as profiling) are performed.
例えば、特許文献1は、ソースプログラムや実行プログラムを加工し、計測対象とするメソッドの前後にプローブを挿入し、このプローブの処理によってプロファイリングを行う技術を開示している。
また、特許文献2は、メソッド間の呼出関係をログへ出力するための技術を開示している。
しかし、特許文献1に開示されている技術では、プロファイリングの際、全ての計測対象のメソッドに挿入されているプローブが実行されるため、高い負荷がかかってしまう。そのため、実際の実行条件とは大きくかけ離れた環境でプロファイリングをすることになり、プロファイリングの計測結果の精度が低下してしまうという問題を有する。
また、この計測結果の精度の低下を防ぐために、計測対象にする処理(メソッド)を複数回に分けてプロファイリングしてもよいが、複数回に分けてプロファイリングをするためには、各回毎にプログラムに埋め込むプローブを変更する必要があり、面倒である。
However, in the technique disclosed in
In addition, in order to prevent the accuracy of the measurement result from degrading, the process (method) to be measured may be profiled in multiple times, but in order to profile in multiple times, it is necessary to program each time. It is necessary to change the probe to be embedded in, and is troublesome.
また、特許文献2に開示されている技術でも、処理間の呼出関係が複雑な場合には、ログに書き込む処理が膨大になり、やはりこのログに書き込む処理自体に高い負荷がかかることになる。そのため、実際の実行条件とは異なる環境でプロファイリングをすることになってしまい、計測結果の精度が低下してしまうという問題を有する。
Further, even in the technique disclosed in
本発明は、上記実状に鑑みてなされたものであり、精度の高いプロファイリングが可能なプログラムプロファイリング装置等提供することを目的とする。
本発明は、実行負荷の小さいプロファイリングを行うことができるプログラムプロファイリング装置等を提供することを目的とする。
The present invention has been made in view of the above circumstances, and an object thereof is to provide a program profiling apparatus and the like capable of highly accurate profiling.
An object of this invention is to provide the program profiling apparatus etc. which can perform profiling with a small execution load.
上記目的を達成するため、この発明のプログラムプロファイリング装置は、
複数のメソッドから構成されたプログラムを実行した際に、実行したメソッド毎の処理時間と実行したメソッド間の呼出関係とを記憶するメソッド統計情報記憶手段と、
前記メソッド統計情報記憶手段に記憶されている情報に基づいて、前記プログラムを実行した際の実行時間の主要な要因となる主要メソッドを所定の基準に基づいて特定する主要メソッド特定手段と、
前記プログラムを実行した際の、前記主要メソッド特定手段で特定した主要メソッドが開始又は終了する毎に、該主要メソッドが開始か終了かを表す情報とそのときの時刻と該主要メソッドが属するスレッドと該主要メソッドの識別情報とを対応付けて記憶するメソッド処理情報記憶手段と、
前記メソッド処理情報記憶手段に記憶されている情報に基づいて、処理の流れを求めるシーケンス求める手段と、
を備えることを特徴とする。
In order to achieve the above object, a program profiling apparatus according to the present invention provides:
A method statistical information storage means for storing a processing time for each executed method and a call relationship between executed methods when a program composed of a plurality of methods is executed;
Based on information stored in the method statistical information storage unit, a main method specifying unit that specifies a main method that is a main factor of execution time when the program is executed based on a predetermined criterion;
Each time the main method specified by the main method specifying means starts or ends when the program is executed, information indicating whether the main method starts or ends, the time at that time, and the thread to which the main method belongs Method processing information storage means for storing the identification information of the main method in association with each other;
Means for obtaining a sequence for obtaining a flow of processing based on information stored in the method processing information storage means;
It is characterized by providing.
例えば、前記メソッド特定手段は、前記メソッド統計情報記憶手段に記憶されている情報に基づいて、処理時間が長い順にメソッドを1つずつ選択する選択手段と、前記選択手段で選択したメソッドの処理時間に、選択したメソッドを起点としてメソッド間の呼出関係を所定の範囲で辿って、辿ったメソッドの処理時間を累算し、所定の範囲を超えた時点で前記選択手段に次のメソッドを選択させる累算手段と、
前記累算手段により累算した処理時間が、前記プログラムを構成するメソッドの処理時間の合計の所定の割合以上となった時点で、処理時間を累算してきたメソッドを前記主要メソッドとする。
For example, the method specifying means includes a selection means for selecting methods one by one in order of long processing time based on information stored in the method statistical information storage means, and a processing time of the method selected by the selection means In addition, the call relationship between methods is traced within a predetermined range starting from the selected method, the processing time of the traced method is accumulated, and when the predetermined range is exceeded, the selection means selects the next method. An accumulation means;
The method that has accumulated the processing time when the processing time accumulated by the accumulating means reaches or exceeds a predetermined ratio of the total processing time of the methods constituting the program is defined as the main method.
例えば、前記累算手段は、前記選択手段で選択したメソッドの処理時間に、前記選択したメソッドを起点としてメソッド間の呼出関係を所定の距離だけ幅優先探索で辿ったメソッドの処理時間を累算する。 For example, the accumulating means accumulates the processing time of a method that has been traced by a breadth-first search for a calling relationship between methods from the selected method as a starting point, to the processing time of the method selected by the selecting means. .
例えば、前記プログラムを構成するメソッド毎に、前記メソッド処理情報記憶手段によるメソッドの処理に関する情報の記憶を行うか否かを示す管理情報を記憶する管理情報記憶手段をさらに配置し、前記メソッド処理情報記憶手段は、前記管理情報記憶手段に記憶されている前記主要メソッドの管理情報を、前記メソッド処理情報記憶手段によるメソッドの処理に関する情報の記憶を行うことを示すように設定し、前記管理情報記憶手段に記憶されている前記主要メソッド以外のメソッドの管理情報を、前記メソッド処理情報記憶手段によるメソッドの処理に関する情報の記憶を行わないことを示すように設定する管理情報設定手段を配置してもよい。 For example, for each method constituting the program, management information storage means for storing management information indicating whether or not to store information related to method processing by the method processing information storage means is further arranged, and the method processing information The storage means sets the management information of the main method stored in the management information storage means to indicate that information related to the processing of the method by the method processing information storage means is stored, and stores the management information storage Management information setting means for setting management information of methods other than the main method stored in the means to indicate that information related to method processing by the method processing information storage means is not stored may be arranged. Good.
上記目的を達成するため、この発明のプログラムプロファイリング方法は、
複数のメソッドから構成されたプログラムを実行し、各メソッドの処理時間とメソッド間の呼出関係とを求め、
求めた処理時間と呼出関係に基づいて、実行時間が所定の基準を満たす主要メソッドを特定し、
特定した主要メソッドを対象とした前記プログラムのプロファイリングを実行する、
ことを特徴とする。
In order to achieve the above object, the program profiling method of the present invention provides:
Execute a program composed of multiple methods, find the processing time of each method and the call relationship between methods,
Based on the calculated processing time and the call relationship, identify the main method that satisfies the predetermined criteria for execution time,
Profiling the program for the identified primary method;
It is characterized by that.
また、この発明のプログラムは、
コンピュータに、
複数のメソッドから構成されたプログラムを実行し、各メソッドの処理時間とメソッド間の呼出関係とを求め、
求めた処理時間と呼出関係に基づいて、実行時間が所定の基準を満たす主要メソッドを特定し、
特定した主要メソッドを対象とした前記プログラムのプロファイリングを実行する、
処理を実行させる。
Moreover, the program of this invention is
On the computer,
Execute a program composed of multiple methods, find the processing time of each method and the call relationship between methods,
Based on the calculated processing time and the call relationship, identify the main method that satisfies the predetermined criteria for execution time,
Profiling the program for the identified primary method;
Execute the process.
本発明によれば、メソッドを主要なものに絞り込んで処理を行うので、実行環境にかける負荷の小さいプロファイリングが可能となる。 According to the present invention, since processing is performed by narrowing down methods to main ones, profiling with a small load on the execution environment is possible.
以下、本発明の実施形態に係るプログラムプロファイリング装置について、図面を参照して説明する。
プログラムプロファイリング装置1は、図1に示すように、通信部11と、入力部12と、出力部13と、記憶部14と、入出力I/F部15と、制御部16と、を備え、各部はバス17を介して互いに接続されている。
Hereinafter, a program profiling apparatus according to an embodiment of the present invention will be described with reference to the drawings.
As shown in FIG. 1, the
通信部11は、通信ネットワーク2を介して、ネットワーク上の情報処理装置等と通信を行うものであり、通信インタフェース等を備える。例えば、通信部11が、プロファイリングの対象となる実行プログラムを受信することにより、プログラムプロファイリング装置1はプロファイリングの対象を取り込む。
なお、本実施形態でプロファイリングの対象とする実行プログラムは複数のクラスから構成され、各クラスは1つ以上のメソッドを備えているものとする。
The
It is assumed that the execution program to be profiled in this embodiment is composed of a plurality of classes, and each class has one or more methods.
入力部12は、プログラムプロファイリング装置1に様々な情報を入力するために使用するものであり、ボタン、キー等の入力装置を備える。例えば、入力部12には、後述する分析処理の開始指示情報等が入力される。
The
出力部13は、様々な情報を出力するものであり、ディスプレイ等の表示装置を備える。例えば、出力部13には、後述する分析処理において測定されたメソッド毎の処理時間の一覧画面等が表示される。
The
記憶部14は、様々な情報やプログラム等を記憶するものであり、ハードディスク等の補助記憶装置を備える。例えば、記憶部14は、分析処理を行う前に、予め、通信部11等を介して取り込んだ実行プログラム等を記憶しておく。
また、記憶部は、図2に示すように、プローブ挿入対象記憶テーブル141と、メソッド統計情報記憶テーブル142と、コールグラフ情報記憶テーブル143と、メソッド情報記憶テーブル144と、メソッド詳細性能ログテーブル145と、を記憶する。
The
Further, as shown in FIG. 2, the storage unit includes a probe insertion target storage table 141, a method statistical information storage table 142, a call graph information storage table 143, a method information storage table 144, and a method detailed performance log table 145. And memorize.
プローブ挿入対象記憶テーブル141は図4に示すように、プロファイリング対象の実行プログラムを構成するクラス毎に、該クラスにプローブを挿入するか否かを示す情報を記憶する。 As shown in FIG. 4, the probe insertion target storage table 141 stores information indicating whether or not a probe is to be inserted into each class that constitutes an execution program to be profiled.
メソッド統計情報記憶テーブル142および、コールグラフ情報記憶テーブル143は、後述する統計モードでのプロファイリングの結果を記憶するテーブルである。
メソッド統計情報記憶テーブル142は、図5に示すように、統計モードでのプロファイリングで測定された、メソッド毎の総実行時間と、実行回数と、平均実行時間とを記憶する。なお、平均実行時間は、総実行時間/実行回数で算出できる時間である。
コールグラフ情報記憶テーブル143は、図6(A)に示すように、統計モードでのプロファイリングで求められた処理(メソッド)間の呼出関係を記憶する。なお、コールグラフ情報記憶テーブル143に図6(A)に示すような情報が記憶されている場合、この記憶情報から図6(B)に示すような呼出間系を表したグラフ(コールグラフ)を作成することができる。
The method statistical information storage table 142 and the call graph information storage table 143 are tables that store profiling results in a statistical mode to be described later.
As shown in FIG. 5, the method statistical information storage table 142 stores the total execution time, the number of executions, and the average execution time for each method measured by profiling in the statistical mode. The average execution time is a time that can be calculated by the total execution time / the number of executions.
As shown in FIG. 6A, the call graph information storage table 143 stores a call relationship between processes (methods) obtained by profiling in the statistical mode. When information as shown in FIG. 6 (A) is stored in the call graph information storage table 143, a graph (call graph) representing an inter-call system as shown in FIG. 6 (B) from this stored information. Can be created.
メソッド情報記憶テーブル144は、図7に示すように、実行プログラムに含まれるメソッド毎に、識別情報(メソッドID)と、メソッド名と、該メソッドが属するクラスの名称と、計測可否情報とを記憶する。計測可否情報は、該メソッドを計測部が行うプロファイルの対象とするか否かを示す情報である。 As shown in FIG. 7, the method information storage table 144 stores identification information (method ID), a method name, a name of a class to which the method belongs, and measurement availability information for each method included in the execution program. To do. The measurement availability information is information indicating whether or not the method is a target of a profile performed by the measurement unit.
メソッド詳細性能ログテーブル145は、後述する詳細モードでのプロファイリングの結果を記憶するテーブルである。メソッド詳細性能ログテーブル145は、図8に示すように、詳細モードでのプロファイリングによって実行されたメソッドの処理毎に、処理が実行された時刻(コンピュータあるいはプログラム固有の時刻でも、現在日時等でもよい)と、その時刻に処理が開始したのか終了したのかを示す処理の種類情報と、対象スレッドの識別情報(図では名称)と、呼出元のメソッドの識別情報(図では名称)と、その処理で実行されたメソッドの識別情報(図では名称)とを対応付けて時刻順に記憶する。 The method detailed performance log table 145 is a table for storing the results of profiling in the detailed mode to be described later. As shown in FIG. 8, the method detailed performance log table 145 may include the time at which the process is executed for each method executed by profiling in the detailed mode (computer or program specific time, current date and time, etc.). ), Process type information indicating whether the process started or ended at that time, identification information (name in the figure) of the target thread, identification information (name in the figure) of the calling method, and the process Are associated with the identification information (name in the figure) of the method executed in the above.
図1に戻り、入出力I/F部15は、入出力機器3を接続するためのインタフェースである。例えば、プロファイリング対象となる実行プログラム等を、通信部11ではなく、入出力I/F部15を介して、CD−ROMドライブ等の入出力機器3から取り込むこともできる。
Returning to FIG. 1, the input / output I /
制御部16は、データの演算処理を行うと共に、バス17を介して通信部11、入力部12、出力部13、記憶部14、入出力I/F部15を制御するものであり、CPU(Central Processing Unit)161、ROM(Read Only Memory)162、RAM(Random Access Memory)163等を備える。制御部16における演算処理及び制御処理は、具体的には、CPU161が、RAM163を作業領域として使用して各種データを一時的に記憶させながら、ROM162fcに記憶されている制御プログラムを実行することにより行われる。
The
例えば、制御部16が、ROM162や記憶部14に記憶されている制御プログラムに従って上記各部を制御することにより、プログラムプロファイリング装置1において、プロファイリング処理等が行われる。
For example, when the
図3は、本実施の形態に係るプログラムプロファイリング装置の機能構成例を示すブロック図である。
プログラムプロファイリング装置1は、機能的には、図示するように、プローブ挿入部21と、プログラム実行部22と、計測部23と、計測モード切替部24と、計測対象設定部25と、シーケンス解析部26と、シーケンス表示部27と、を備える。なお、これらの各構成要素は、図1に示した制御部16が、同じく図1に示した通信部11、入力部12、出力部13、記憶部14、又は入出力I/F部15を制御することにより、実現することができる。
FIG. 3 is a block diagram illustrating a functional configuration example of the program profiling apparatus according to the present embodiment.
As shown in the figure, the
プローブ挿入部21は、プローブ挿入対象記憶テーブル141で挿入対象であると設定されている(可と設定されている)クラスのメソッドに対して、計測用のプローブを挿入するとともに、該メソッドをメソッド情報記憶テーブル144に登録する。なお、該処理の詳細については後述する。
The
プログラム実行部22は、プローブが挿入された実行プログラムを実行する。
The
計測部23は、プログラム実行部22によって実行された実行プログラムの処理(メソッド)に関する情報を計測する。なお、この計測処理は統計モードと詳細モードの2種類のモードを有する。統計モードによる計測処理は統計モード計測部231が行う。詳細モードによる計測処理は詳細モード計測部232が行う。なお、各モードの計測処理の詳細については後述する。
The
計測モード切替部24は、上述した計測処理の統計モードと詳細モードとを切り換える処理を行う。
The measurement
計測対象設定部25は、計測部23で計測の対象とするメソッドを設定する。具体的には、統計モードで計測を行うときには、計測対象設定部25は、メソッド情報記憶テーブル144に記憶されているメソッドの計測可否情報を全て「可」に設定して、全メソッドを計測対象とするように設定する。なお、該処理の詳細については後述する。
また、詳細モードで計測を行うときには、計測対象設定部25は、メソッド統計情報記憶テーブル142とコールグラフ情報記憶テーブル143とに記憶されている記憶情報に基づいて、計測対象を絞り込む処理を行う。そして、計測対象設定部25は、この絞り込み処理で絞り込まれたメソッドのメソッド情報記憶テーブル144に記憶されている計測可否情報を「可」に、絞り込まれたメソッド以外のメソッド情報記憶テーブル144に記憶されている計測可否情報を「否」に設定することにより、絞り込まれたメソッドのみがプロファイルの対象となるようにする。なお、該処理の詳細については後述する。
The measurement
When performing measurement in the detailed mode, the measurement
シーケンス解析26は、メソッド詳細性能ログテーブル145に記憶されている記憶情報から、処理の流れ(シーケンス)を解析する。なお、該処理の詳細については後述する。
The
シーケンス表示部27は、シーケンス解析26が解析したシーケンスを図示したシーケンス図を作成して、出力部13に表示させる。なお、該処理の詳細については後述する。
The
次に、プログラム計測装置1で、プログラムを実行した際の処理のボトルネックを見つけるために、プログラム(実行プログラム)をプロファイリングする処理について説明する。
Next, the process of profiling a program (execution program) in order to find the bottleneck of the process when the program is executed by the
なお、前提として、予め計測の対象となる実行プログラムは、記憶部14に格納されており、該実行プログラムを構成するクラスのうち、どのクラスをプローブの挿入対象とするかを示すための情報も、ユーザの準備作業等によりプローブ挿入対象記憶テーブル141に予め記憶されているものとする。
As a premise, an execution program to be measured is stored in the
ユーザから、実行プログラムを計測するための指示入力が入力部12よりなされ、その入力情報が制御部16に送信されると、図9に示す計測処理が開始される。
When the user inputs an instruction for measuring the execution program from the
まず、プローブ挿入部21は、実行プログラムにメソッド計測用のプローブを挿入する(ステップS101)。なお、該処理の詳細については後述する。
First, the
次に、統計モード計測部231はプローブを挿入したメソッドを全て測定対象としてメソッド毎の処理時間と呼出関係とを計測する統計モード計測処理を行う(ステップS102)。なお、該処理の詳細については後述する。
Next, the statistical
次に、計測対象設定部25は、ステップS102で行った統計モード計測処理の結果から、詳細モードで計測処理を行うためのメソッドを絞り込む(ステップS103)。なお、該処理の詳細については後述する。
Next, the measurement
そして、詳細モード計測部232は、ステップS103で絞り込まれたメソッドが処理される毎に、該処理に関する各種の情報を計測する詳細モード計測処理を行う(ステップS104)。なお、該処理の詳細については後述する。
Then, each time the method narrowed down in step S103 is processed, the detailed
そして、シーケンス解析部26は、詳細モード計測処理の結果から処理の流れ(シーケンス)を解析し、シーケンス表示部27がシーケンスを図示して表示し(ステップS105)、プロファイル処理は終了する。
Then, the
次に、図9のフローチャートに示した計測処理を、図10〜図17を参照してより詳細に説明する。 Next, the measurement process shown in the flowchart of FIG. 9 will be described in more detail with reference to FIGS.
(1)図9ステップS101のプローブ挿入処理:
まず、プローブ挿入部21は、計測対象の実行プログラムを構成するクラスを1つRAM163に読み込む(図10、ステップS201)。
(1) Probe insertion processing in step S101 in FIG. 9:
First, the
続いて、プローブ挿入部21は、プローブ挿入対象記憶テーブル141に記憶されている情報に基づいて、ステップS201で読み込んだクラスが、プローブ挿入対象になっているか否かを判断する(ステップS202)。
Subsequently, the
プローブ挿入対象のクラスでないと判断した場合(ステップS202;No)、プローブ挿入部21は、処理をステップS206に移す。
プローブ挿入対象のクラスであると判断した場合(ステップS202;Yes)、プローブ挿入部21は、クラスに含まれるメソッドに対して識別情報(メソッドID)を発行する(ステップS203)。
If it is determined that the class is not the probe insertion target class (step S202; No), the
When determining that the class is a probe insertion target class (step S202; Yes), the
そして、プローブ挿入部21は、メソッドIDを発行したメソッドの前後(実行段階でそのメソッドの実行の前後となる部分)に、計測用のプローブを挿入する(ステップS204)。
なお、メソッドの処理の前に挿入されたプローブを実行開始(検出用の)プローブ、メソッドの後に挿入されたプローブを実行終了(検出用の)プローブとして、以下説明する。
Then, the
In the following description, it is assumed that the probe inserted before the processing of the method is an execution start (for detection) probe, and the probe inserted after the method is an execution end (for detection) probe.
図11は、このプローブの挿入を説明するための図である。
なお、図11に記載されているプログラムは、理解を容易にするため、バイナリデータである実行プログラムをJAVA(登録商標)の言語形式で表したものである。
図11(A)が示す実行プログラムには、クラス「A」が含まれており、クラス「A」には、引数が無いメソッド「sayHello」と、ストリング型の引数を持つメソッド「sayHello」とが含まれている。
この目的プログラムにプローブが挿入された場合、クラス「A」には図11(B)に示すように、クラス「A」内の処理の先頭に、プローブの処理を実行させるか否かを示すフラグ「flag_1」、「flag_2」と、各メソッドの処理の開始時点に挿入される実行開始プローブ「enterMethod」と、各メソッドの処理の終了時点に挿入される実行終了プローブ「exitMethod」とが挿入される。
FIG. 11 is a diagram for explaining the insertion of the probe.
Note that the program described in FIG. 11 represents an execution program that is binary data in the JAVA (registered trademark) language format for easy understanding.
The execution program shown in FIG. 11A includes a class “A”. The class “A” includes a method “sayHello” having no argument and a method “sayHello” having a string type argument. include.
When a probe is inserted into this object program, a flag indicating whether or not to execute the probe process at the head of the process in the class “A” in the class “A” as shown in FIG. “Flag_1”, “flag_2”, an execution start probe “enterMethod” inserted at the start of processing of each method, and an execution end probe “exitMethod” inserted at the end of processing of each method are inserted .
続いて、プローブ挿入部21は、メソッド情報記憶テーブル144にステップS204で挿入したメソッドのメソッドID、クラス名、メソッド名を対応付けて1つのレコードとして登録する(図10,ステップS205)。また、この登録の際、登録したレコードに設定されている計測可否フラグは、「可」に設定する。すなわち、この処理により、プローブが挿入されたメソッドが全て計測可否フラグ「可」と設定されて、メソッド情報記憶テーブル144に登録されることになる。
Subsequently, the
続いて、ステップS206で、プローブ挿入部21は、読み込んでいない他のクラスが有るか否かを判別する。
読み込んでいない他のクラスが有ると判別した場合は(ステップS206;Yes)、プローブ挿入部21は、ステップS201〜ステップS205の処理を繰り返す。
読み込んでいない他のクラスがない判別した場合は(ステップS206;No)、プローブ挿入処理は終了する。
(2)図9ステップS103の統計モード計測処理:
まず、計測モード切替部24は、計測部23で計測するモードを統計モードに切り換える。
その後、プログラム実行部22が、プローブ挿入済みの実行プログラムを実行すると、実行プログラムのメソッドに埋め込まれているプローブの処理により、統計モードでのメソッドの計測がなされる。
Subsequently, in step S206, the
When it is determined that there is another class that has not been read (step S206; Yes), the
If it is determined that there is no other class that has not been read (step S206; No), the probe insertion process ends.
(2) Statistical mode measurement process in step S103 in FIG. 9:
First, the measurement
Thereafter, when the
ここで、この実行プログラムの実行によって行われる、プローブが挿入されているメソッドの動作について、図12を参照して説明する。
まず、メソッドの実行が開始されると、プログラム実行部22は、該メソッドが計測の対象となっているか否かを判断する(ステップS301)。具体的には、プログラム実行部22は、メソッド情報記憶テーブル144の計測可否情報に基づいて、この判断を行う。
Here, the operation of the method in which the probe is inserted, which is performed by executing the execution program, will be described with reference to FIG.
First, when the execution of a method is started, the
メソッドが計測の対象となっていないと判断した場合(ステップS301;No)、プログラム実行部22は処理をステップS304に移す。
When it is determined that the method is not a measurement target (step S301; No), the
メソッドが計測の対象となっていると判断した場合(ステップS301;Yes)、プログラム実行部22は、統計モード計測部231に、該メソッドのメソッドIDを含んだ計測開始通知を送信する(ステップS302)。
When it is determined that the method is a measurement target (step S301; Yes), the
統計モード計測部231は、計測開始通知を受信すると、該メソッドに挿入されている実行開始プローブを実行して(ステップS303)、プログラム実行部22のステップS304に処理を移す。なお、この実行開始プローブの実行により、該メソッドが開始されたことを示す情報がそのときの時刻とともに図13(A)のL1に示すように、RAM163に記録される。
When receiving the measurement start notification, the statistical
図12に戻り、ステップS304で、プログラム実行部22は、該メソッドに挿入されているプローブ以外のメソッドの処理を実行する。
Returning to FIG. 12, in step S304, the
次に、プログラム実行部22は、当該メソッドが計測の対象となっているか否かを判別する(ステップS305)。
メソッドが計測の対象となっていないと判断した場合(ステップS305;No)、プログラム実行部22はメソッドの実行を終了する。
メソッドが計測の対象となっていると判断した場合(ステップS305;Yes)、プログラム実行部22は、統計モード計測部231に該メソッドのメソッドIDを含んだ計測終了通知を送信する(ステップS306)。
Next, the
When it is determined that the method is not a measurement target (step S305; No), the
When it is determined that the method is a measurement target (step S305; Yes), the
統計モード計測部231は、計測終了通知を受信すると、該メソッドに挿入されている実行終了プローブを実行する(ステップS307)。この実行終了プローブの実行により、該メソッドが終了したことを示す情報がそのときの時刻とともに図13(A)のL2に示すように、RAM163に記録される。
When receiving the measurement end notification, the statistical
そして、統計モード計測部231は、ステップS303とステップS307とでRAM163に記録した情報から、該メソッドの処理時間を算出し、算出した処理時間をメソッド統計情報記憶テーブル142の当該メソッドの総実行時間に加算すると共に、実行回数を1プラスする(ステップS308)。
例えば、図13(A)に示すような情報がRAM163に記憶されている場合には、メソッドID「01」を有するメソッドの処理時間が4秒加算され、またその実行回数が1プラスされる。
Then, the statistical
For example, when information as shown in FIG. 13A is stored in the
続いて、統計モード計測部231は、当該メソッドが、別のメソッドから呼び出されて実行されている場合には、その呼出元、呼出先の対応関係をコールグラフ情報記憶テーブル143に記憶する(ステップS309)。
例えば、ステップS303とステップS307との処理により、図13(B)に示すような情報がRAM163に記憶されている場合には、呼出先をメソッド「01」、呼出先をメソッド「02」とする対応関係がコールグラフ情報記憶テーブル143に記録される。
なお、コールグラフ情報記憶テーブル143に既に記憶されている対応関係である場合には、その対応関係を記憶する必要はない。また、この呼出先の対応関係は、実行プログラムを実行するための仮想マシン等が提供するAPI(Application Program Interface)を利用することにより求めてもよい。
Subsequently, when the method is called from another method and executed, the statistical
For example, when information as shown in FIG. 13B is stored in the
If the correspondence relationship is already stored in the call graph information storage table 143, it is not necessary to store the correspondence relationship. Further, the correspondence relationship of the call destinations may be obtained by using an API (Application Program Interface) provided by a virtual machine or the like for executing the execution program.
以上で、プローブが挿入されたメソッドが実行された場合の処理は終了する。そして、実行プログラムを実行したときに実行される全てのプローブが挿入されているメソッドに対して、前述の処理が実行され、統計モードでの計測がなされ、メソッド統計情報記憶テーブル142および、コールグラフ情報記憶テーブル143に、計測の結果が記憶される。 Thus, the process when the method in which the probe is inserted is executed is completed. Then, the above-described processing is executed for the method in which all the probes to be executed when the execution program is executed are measured, the measurement in the statistical mode is performed, the method statistical information storage table 142, and the call graph Measurement results are stored in the information storage table 143.
(3)図9ステップS103の計測対象絞り込み処理:
まず、計測対象設定部25は、メソッド統計情報記憶テーブル142に記憶されている記憶情報から、最大の総実行時間を有するメソッドを特定し、特定したメソッドのメソッドIDとその最大の総実行時間とをRAM163に記憶し(図14、ステップS401)、ステップS402へ処理を移す。
(3) Measurement target narrowing process in step S103 of FIG. 9:
First, the measurement
ステップS402で、計測対象設定部25は、コールグラフ情報記憶テーブル143に記憶されている記憶情報に基づいて、ステップS401又はステップS405でRAM163に記憶したメソッドIDを有するメソッドを起点としたコールグラフの幅優先探索を行い、起点としたメソッドから所定の距離N(例えば2)以内のメソッドを特定する。例えば、図6(B)に示すようなコールグラフを表示するための情報がコールグラフ情報記憶テーブル143に記憶されており、起点を処理Aとして幅優先探索を行った場合、距離2以内のメソッドとして、処理Eと処理Dとが検出される。
In step S402, the measurement
続いて、計測対象設定部25は、ステップS402で特定したメソッドのメソッドIDをRAM163に記憶するとともに、それらのメソッドの総実行時間をメソッド情報記憶テーブル144より取得し、RAM163に記録した総実行時間に累計する(ステップS403)。
Subsequently, the measurement
続いて、計測対象設定部25は、RAM163に累計して記憶した総実行時間が、メソッド統計情報記憶テーブル142に記憶されている全てのメソッドで合計した総実行時間に対して、所定の割合以上(例えば10%以上)に達したか否かを判断する(ステップS404)。
Subsequently, the measurement
所定の割合以上に達していないと判断した場合(ステップS404;No)、計測対象設定部25は、次に長い総実行時間を有するメソッドのメソッドIDをメソッド統計情報記憶テーブル142より取得してRAM163に記憶するとともに、そのメソッドの総実行時間をRAM163に記憶した総実行時間に累計して(ステップS405)、処理をステップS402に移す。
When it is determined that the predetermined ratio has not been reached (step S404; No), the measurement
特定の割合に達したと判断した場合(ステップS404;Yes)、計測対象設定部25は、RAM163に記憶したメソッドIDを有するメソッドのメソッド情報記憶テーブル144の計測可否フラグを「計測可」に、それ以外のメソッドの計測可否フラグを「計測不可」に設定する(ステップS406)。
以上で、計測対象絞り込み処理は終了する。
このように、この計測対象絞り込み処理により、実行プログラムを実行した際の処理時間の主要な要因となるメソッドが特定され、この特定されたメソッドのみが詳細モードでの計測対象に設定される。
If it is determined that the specific ratio has been reached (step S404; Yes), the measurement
Thus, the measurement target narrowing process ends.
As described above, the measurement target narrowing process identifies a method that is a main factor of processing time when the execution program is executed, and only the identified method is set as a measurement target in the detailed mode.
(4)図9ステップS104の詳細モード計測処理:
まず、計測モード切替部24は、計測部23で計測するモードを詳細モードに切り換える。
そして、その後、プログラム実行部22が、プローブ挿入済み実行プログラムを実行すると、実行プログラムのメソッドに埋め込まれているプローブの処理により、詳細モードでの計測がなされる。
(4) Detailed mode measurement process in step S104 of FIG. 9:
First, the measurement
After that, when the
ここで、この実行プログラムの実行による、プローブが挿入されているメソッドの動作について、図15を参照して説明する。
まず、メソッドの実行が開始されると、プログラム実行部22は、該メソッドが計測の対象となっているか否かを判断する(図15、ステップS501)。具体的には、メソッド情報記憶テーブル144の計測可否情報により、この判断を行えばよい。
Here, the operation of the method in which the probe is inserted by executing the execution program will be described with reference to FIG.
First, when the execution of a method is started, the
メソッドが計測の対象となっていないと判断した場合(ステップS501;No)、プログラム実行部22は処理をステップS504に移す。
When it is determined that the method is not a measurement target (step S501; No), the
メソッドが計測の対象となっていると判断した場合(ステップS501;Yes)、プログラム実行部22は、詳細モード計測部232に、該メソッドのメソッドIDを含んだ計測開始通知を送信する(ステップS502)。
If it is determined that the method is a measurement target (step S501; Yes), the
詳細モード計測部232は、計測開始通知を受信すると、該メソッドに挿入されている実行開始プローブを実行して(ステップS503)、プログラム実行部22によるステップS504に処理を移す。
なお、この実行開始プローブの実行により、そのときの時刻、種類「開始」、該メソッドの処理のスレッド、呼出元のメソッド名(ID)、および、当該メソッド名(ID)が対応付けられてメソッド詳細性能ログテーブル145に記憶される。
なお、上記の情報は、実行プログラムを実行するための仮想マシン等が提供するAPIを利用することで取得すればよい。
When the detailed
By executing the execution start probe, the time, the type “start”, the processing thread of the method, the method name (ID) of the caller, and the method name (ID) are associated with each other. The detailed performance log table 145 is stored.
Note that the above information may be obtained by using an API provided by a virtual machine or the like for executing the execution program.
ステップS504で、プログラム実行部22は、該メソッドに挿入されているプローブ以外のメソッドの処理を実行する。
In step S504, the
次に、プログラム実行部22は、当該メソッドが計測の対象となっているか否かを判別する(ステップS505)。
メソッドが計測の対象となっていないと判断した場合(ステップS505;No)、プログラム実行部22はメソッドの実行を終了する。
メソッドが計測の対象となっていると判断した場合(ステップS505;Yes)、プログラム実行部22は、詳細モード計測部232に該メソッドのメソッドIDを含んだ計測終了通知を送信する(ステップS506)。
Next, the
If it is determined that the method is not a measurement target (step S505; No), the
If it is determined that the method is a measurement target (step S505; Yes), the
詳細モード計測部232は、計測終了通知を受信すると、該メソッドに挿入されている実行終了プローブを実行する(ステップS507)。
そして、この実行終了プローブの実行により、そのときの時刻、種類「終了」、該メソッドの処理のスレッド、呼出元のメソッド名(ID)、および、当該メソッド名(ID)等の情報がメソッド詳細性能ログテーブル145に記憶される。
なお、上記の情報の取得は、実行プログラムを実行するための仮想マシン等が提供するAPIを利用することで取得すればよい
When receiving the measurement end notification, the detailed
By executing this execution end probe, information such as the time, the type “end”, the processing thread of the method, the method name (ID) of the caller, and the method name (ID) is displayed in the method details. It is stored in the performance log table 145.
The above information may be acquired by using an API provided by a virtual machine or the like for executing the execution program.
以上で、プローブが挿入されたメソッドが実行された場合の処理は終了する。そして、実行プログラムを実行したときに実行される全てのプローブが挿入されているメソッドに対して、前述の処理が実行され、詳細モードでの計測がなされ、計測対象のメソッドが開始又は終了する毎に、計測結果がメソッド詳細性能ログテーブル145に記憶される。 Thus, the process when the method in which the probe is inserted is executed is completed. When the execution program is executed, the above-described processing is executed for the method in which all the probes to be executed are inserted, the measurement in the detailed mode is performed, and the measurement target method is started or ended. In addition, the measurement result is stored in the method detailed performance log table 145.
(4)図9ステップS105のシーケンス表示処理:
まず、シーケンス解析部26は、メソッド詳細性能ログテーブル145に記憶されているレコードのうち、同一のスレッドに関するレコードを取得する(図16、ステップS601)。
(4) Sequence display process in step S105 in FIG. 9:
First, the
そして、シーケンス解析部26は、ステップS601で取得したレコードを解析して、一連の処理の流れ(シーケンス)を解析する(ステップS602)。
Then, the
ここで、このシーケンスの解析について具体例を挙げて説明する。なお、前提として、ステップS601の処理により、同一のスレッド「#1」に関するレコードがメソッド詳細性能ログテーブル145から図17(A)に示すように取得されているものとする。
まず、シーケンス解析部26は、ステップS601で取得した図17(A)に示すレコードのうちの最初のレコード(時刻「0」のレコード)において、呼出元が「なし」となっているメソッド「処理A」を、シーケンスの起点と判断する。
そして、シーケンス解析部26は、次のレコード(時刻「300」のレコード)から、このメソッド「処理A」がメソッド「処理E」を呼び出すことを判断する。
続いて、シーケンス解析部26は、その次のレコード(時刻「600」のレコード)から、このメソッド「処理E」がメソッド「処理D」を呼び出すことを判断する。
そして、シーケンス解析部26は、その次のレコード(時刻「800」のレコード)から、メソッド「処理D」が終了し、メソッド「処理D」の呼出元であるメソッド「処理E」に処理が戻ることを判断する。
そして、シーケンス解析部26は、その次のレコード(時刻「1200」のレコード)から、メソッド「処理E」が終了し、メソッド「処理E」の呼出元であるメソッド「処理A」に処理が戻ることを判断する。
そして、シーケンス解析部26は、その次のレコード(時刻「2000」のレコード)から、シーケンスの起点と判断したメソッド「処理A」が終了してシーケンスが終了したことを判断し、以上でシーケンスは解析される。
Here, the analysis of this sequence will be described with a specific example. As a premise, it is assumed that records relating to the same thread “# 1” have been acquired from the method detailed performance log table 145 as shown in FIG.
First, the
Then, the
Subsequently, the
Then, the
Then, the
Then, the
そして、シーケンス表示部27は、ステップS602で解析したシーケンスを、出力部13に表示する(ステップS603)。
なお、先程具体例を挙げて、解析したシーケンスは、このステップS603の処理により、例えば図17(B)に示すように表示される。なお、この図には、メソッド「処理A」「処理E」「処理D」が属するクラス名も表示されているが、このクラス名はメソッド情報記憶テーブル144を参照して取得すればよい。
以上で、シーケンス表示処理は終了し、図9に示すプロファイル処理は終了する。
The
Note that the analyzed sequence is displayed as shown in FIG. 17B, for example, by the processing in step S603 by giving a specific example. In this figure, the class names to which the methods “Process A”, “Process E”, and “Process D” belong are also displayed. This class name may be obtained by referring to the method information storage table 144.
Thus, the sequence display process ends, and the profile process shown in FIG. 9 ends.
以上説明したように、この実施の形態によれば、ほぼ全てのメソッドを計測対象としたメソッドの計測(統計モード計測)をまず行い、そのプロファイル結果から処理に比較的時間を有するメソッドのみを計測対象とする絞り込み処理を行い、絞り込んだメソッドに対して、より詳細な計測(詳細モード計測)を行う。
従って、詳細なプロファイルを行う際には、計測対象を絞って行うため、プロファイル処理による実行環境への負荷は小さくなり、より実際の実行環境に近い条件で計測を行うことができる。
As described above, according to this embodiment, the method (statistic mode measurement) for measuring almost all methods is first performed, and only the method having a relatively long processing time is measured from the profile result. The target narrowing process is performed, and more detailed measurement (detailed mode measurement) is performed on the narrowed-down method.
Therefore, when performing a detailed profile, since the measurement target is narrowed down, the load on the execution environment due to profile processing is reduced, and measurement can be performed under conditions closer to the actual execution environment.
なお、この発明は上記実施の形態に限定されず、様々な応用が可能である。
例えば、図14に示した計測対象絞込み処理において、コールグラフを幅優先探索して詳細モードで絞り込むためのメソッドを特定したが、幅優先探索以外の深さ優先探索等の他の探索方法を用いてコールグラフを辿ってもよい。
また、探索処理を行わずに、総実行時間が大きい順に累算していくことで、絞り込むメソッドを特定してもよい。
In addition, this invention is not limited to the said embodiment, A various application is possible.
For example, in the measurement target narrowing process shown in FIG. 14, a method for narrowing down the call graph in the width mode and narrowing down in the detailed mode is specified. You may follow the graph.
Alternatively, the narrowing-down method may be specified by accumulating the total execution time in the descending order without performing the search process.
なお、本発明のプログラムプロファイリング装置は、専用のハードウェアに限られるものではなく、通常のコンピュータシステムによっても実現することができる。
具体的には、上記実施の形態では、プログラムプロファイリング装置のプログラムが、メモリ等に予め記憶されているものとして説明した。しかし、上述の処理動作を実行させるためのプログラムを、フレキシブルディスク、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto-Optical disk)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータにインストールすることにより、上述の処理を実行をするプログラムプロファイリング装置を構成してもよい。
Note that the program profiling apparatus of the present invention is not limited to dedicated hardware, and can also be realized by a normal computer system.
Specifically, in the above embodiment, the program profiling apparatus has been described as being prestored in a memory or the like. However, a program for executing the above-described processing operation is recorded on a computer-readable recording medium such as a flexible disk, a CD-ROM (Compact Disk Read-Only Memory), a DVD (Digital Versatile Disk), or an MO (Magneto-Optical disk). A program profiling apparatus that executes the above-described processing may be configured by storing and distributing the program in a medium and installing the program in a computer.
また、プログラムをインターネット等の通信ネットワーク上のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するようにしてもよい。さらに、通信ネットワークを介してプログラムを転送しながら起動実行することによっても、上述の処理を達成することができる。
また、上述の機能を、OS(Operating System)が分担又はOSとアプリケーションの協働により実現する場合等には、OS以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
Further, the program may be stored in a disk device or the like included in a server device on a communication network such as the Internet, and may be downloaded to a computer by being superimposed on a carrier wave, for example. Furthermore, the above-described processing can also be achieved by starting and executing a program while transferring it via a communication network.
When the above functions are realized by an OS (Operating System) sharing or by cooperation between the OS and an application, only the part other than the OS may be stored in a medium and distributed. You may download it.
141 プローブ挿入対象記憶テーブル
142 メソッド統計情報記憶テーブル
143 コールグラフ情報記憶テーブル
144 メソッド情報記憶テーブル
145 メソッド詳細性能ログテーブル
146 シーケンス記憶テーブル
21 プローブ挿入部
22 プログラム実行部
23 計測部
231 統計モード計測部
232 詳細モード計測部
24 計測対象設定部
25 計測モード切替部
26 シーケンス解析部
27 シーケンス表示部
141 Probe insertion target storage table 142 Method statistical information storage table 143 Call graph information storage table 144 Method information storage table 145 Method detailed performance log table 146 Sequence storage table 21
Claims (6)
前記メソッド統計情報記憶手段に記憶されている情報に基づいて、前記プログラムを実行した際の実行時間の主要な要因となる主要メソッドを所定の基準に基づいて特定する主要メソッド特定手段と、
前記プログラムを実行した際の、前記主要メソッド特定手段で特定した主要メソッドが開始又は終了する毎に、該主要メソッドが開始か終了かを表す情報とそのときの時刻と該主要メソッドが属するスレッドと該主要メソッドの識別情報とを対応付けて記憶するメソッド処理情報記憶手段と、
前記メソッド処理情報記憶手段に記憶されている情報に基づいて、処理の流れを求めるシーケンス求める手段と、
を備えることを特徴とする、プログラムプロファイリング装置。 A method statistical information storage means for storing a processing time for each executed method and a call relationship between executed methods when a program composed of a plurality of methods is executed;
Based on information stored in the method statistical information storage unit, a main method specifying unit that specifies a main method that is a main factor of execution time when the program is executed based on a predetermined criterion;
Each time the main method specified by the main method specifying means starts or ends when the program is executed, information indicating whether the main method starts or ends, the time at that time, and the thread to which the main method belongs Method processing information storage means for storing the identification information of the main method in association with each other;
Means for obtaining a sequence for obtaining a flow of processing based on information stored in the method processing information storage means;
A program profiling apparatus comprising:
前記メソッド統計情報記憶手段に記憶されている情報に基づいて、処理時間が長い順にメソッドを1つずつ選択する選択手段と、
前記選択手段で選択したメソッドの処理時間に、選択したメソッドを起点としてメソッド間の呼出関係を所定の範囲で辿って、辿ったメソッドの処理時間を累算し、所定の範囲を超えた時点で前記選択手段に次のメソッドを選択させる累算手段と、
前記累算手段により累算した処理時間が、前記プログラムを構成するメソッドの処理時間の合計の所定の割合以上となった時点で、処理時間を累算してきたメソッドを前記主要メソッドとする、
ことを特徴とする、請求項1に記載のプログラムプロファイリング装置。 The method specifying means includes:
Based on the information stored in the method statistical information storage means, selection means for selecting methods one by one in the order of long processing time;
In the processing time of the method selected by the selection means, the call relationship between methods is traced within a predetermined range starting from the selected method, and the processing time of the traced method is accumulated, and when the predetermined range is exceeded Accumulation means for causing the selection means to select a next method;
When the processing time accumulated by the accumulating means becomes equal to or greater than a predetermined ratio of the total processing time of the methods constituting the program, the method that has accumulated the processing time is set as the main method.
The program profiling apparatus according to claim 1, wherein:
を特徴とする、請求項2に記載のプログラムプロファイリング装置。 The accumulating means accumulates the processing time of the method that has been traced by the breadth-first search for the calling relationship between the methods by a predetermined distance from the selected method as the processing time of the method selected by the selecting means,
The program profiling apparatus according to claim 2, wherein:
前記メソッド処理情報記憶手段は、前記管理情報記憶手段に記憶されている前記主要メソッドの管理情報を、前記メソッド処理情報記憶手段によるメソッドの処理に関する情報の記憶を行うことを示すように設定し、前記管理情報記憶手段に記憶されている前記主要メソッド以外のメソッドの管理情報を、前記メソッド処理情報記憶手段によるメソッドの処理に関する情報の記憶を行わないことを示すように設定する管理情報設定手段を備える、
ことを特徴とする、請求項1乃至3の何れか1項に記載のプログラムプロファイリング装置。 Management information storage means for storing management information indicating whether or not to store information related to method processing by the method processing information storage means for each method constituting the program,
The method processing information storage means sets the management information of the main method stored in the management information storage means so as to indicate that information related to the processing of the method by the method processing information storage means is stored, Management information setting means for setting management information of methods other than the main method stored in the management information storage means to indicate that information relating to processing of methods by the method processing information storage means is not stored. Prepare
The program profiling apparatus according to any one of claims 1 to 3, wherein the program profiling apparatus is characterized.
求めた処理時間と呼出関係に基づいて、実行時間が所定の基準を満たす主要メソッドを特定し、
特定した主要メソッドを対象とした前記プログラムのプロファイリングを実行する、
ことを特徴とするプログラムプロファイリング方法。 Execute a program composed of multiple methods, find the processing time of each method and the call relationship between methods,
Based on the calculated processing time and the call relationship, identify the main method that satisfies the predetermined criteria for execution time,
Profiling the program for the identified primary method;
A program profiling method characterized by the above.
複数のメソッドから構成されたプログラムを実行し、各メソッドの処理時間とメソッド間の呼出関係とを求め、
求めた処理時間と呼出関係に基づいて、実行時間が所定の基準を満たす主要メソッドを特定し、
特定した主要メソッドを対象とした前記プログラムのプロファイリングを実行する、
処理を実行させるプログラム。 On the computer,
Execute a program composed of multiple methods, find the processing time of each method and the call relationship between methods,
Based on the calculated processing time and the call relationship, identify the main method that satisfies the predetermined criteria for execution time,
Profiling the program for the identified primary method;
A program that executes processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007057896A JP4879782B2 (en) | 2007-03-07 | 2007-03-07 | Program profiling method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007057896A JP4879782B2 (en) | 2007-03-07 | 2007-03-07 | Program profiling method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008217721A true JP2008217721A (en) | 2008-09-18 |
JP4879782B2 JP4879782B2 (en) | 2012-02-22 |
Family
ID=39837646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007057896A Expired - Fee Related JP4879782B2 (en) | 2007-03-07 | 2007-03-07 | Program profiling method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4879782B2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010152428A (en) * | 2008-12-24 | 2010-07-08 | Hitachi Ltd | Program development support equipment, method, and program |
JP2011070533A (en) * | 2009-09-28 | 2011-04-07 | Bank Of Tokyo-Mitsubishi Ufj Ltd | Code editing program and code editing apparatus |
KR20110124732A (en) * | 2010-05-11 | 2011-11-17 | 컴퓨터 어소시에이츠 싱크, 인코포레이티드 | Conditional dynamic instrumentation of software in a specified transaction context |
JP2012084150A (en) * | 2010-10-12 | 2012-04-26 | Computer Associates Think Inc | Two-pass automated application instrumentation |
WO2012056569A1 (en) * | 2010-10-29 | 2012-05-03 | 株式会社日立製作所 | Performance measurement method, performance measurement device, and performance measurement program |
JP2016114998A (en) * | 2014-12-11 | 2016-06-23 | 株式会社リコー | Operation verification device, operation verification method and operation verification program |
US9411616B2 (en) | 2011-12-09 | 2016-08-09 | Ca, Inc. | Classloader/instrumentation approach for invoking non-bound libraries |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001325238A (en) * | 2000-05-16 | 2001-11-22 | Hitachi Ltd | Processing progress condition display method in distributed object system |
JP2002297416A (en) * | 2001-03-28 | 2002-10-11 | Matsushita Electric Ind Co Ltd | Profile information acquisition device and profile information acquisition program |
JP2003140928A (en) * | 2001-11-02 | 2003-05-16 | Fujitsu Ltd | Automatic obtaining system of virtual machine internal information |
JP2004094374A (en) * | 2002-08-29 | 2004-03-25 | Ntt Comware Corp | Logging system |
JP2004259154A (en) * | 2003-02-27 | 2004-09-16 | Nippon Telegr & Teleph Corp <Ntt> | Method and system for tracing call relationship for software component |
JP2006018477A (en) * | 2004-06-30 | 2006-01-19 | Canon Software Inc | Sequence information generation system, sequence information generation method, program, and recording medium |
-
2007
- 2007-03-07 JP JP2007057896A patent/JP4879782B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001325238A (en) * | 2000-05-16 | 2001-11-22 | Hitachi Ltd | Processing progress condition display method in distributed object system |
JP2002297416A (en) * | 2001-03-28 | 2002-10-11 | Matsushita Electric Ind Co Ltd | Profile information acquisition device and profile information acquisition program |
JP2003140928A (en) * | 2001-11-02 | 2003-05-16 | Fujitsu Ltd | Automatic obtaining system of virtual machine internal information |
JP2004094374A (en) * | 2002-08-29 | 2004-03-25 | Ntt Comware Corp | Logging system |
JP2004259154A (en) * | 2003-02-27 | 2004-09-16 | Nippon Telegr & Teleph Corp <Ntt> | Method and system for tracing call relationship for software component |
JP2006018477A (en) * | 2004-06-30 | 2006-01-19 | Canon Software Inc | Sequence information generation system, sequence information generation method, program, and recording medium |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010152428A (en) * | 2008-12-24 | 2010-07-08 | Hitachi Ltd | Program development support equipment, method, and program |
JP2011070533A (en) * | 2009-09-28 | 2011-04-07 | Bank Of Tokyo-Mitsubishi Ufj Ltd | Code editing program and code editing apparatus |
US8473903B2 (en) | 2009-09-28 | 2013-06-25 | The Bank Of Tokyo-Mitsubishi Ufj, Ltd. | Code edit apparatus and recording medium |
KR20110124732A (en) * | 2010-05-11 | 2011-11-17 | 컴퓨터 어소시에이츠 싱크, 인코포레이티드 | Conditional dynamic instrumentation of software in a specified transaction context |
JP2011238232A (en) * | 2010-05-11 | 2011-11-24 | Computer Associates Think Inc | Software for conditional dynamic measurement in specific transaction context |
KR101669630B1 (en) | 2010-05-11 | 2016-10-26 | 씨에이, 인크. | Conditional dynamic instrumentation of software in a specified transaction context |
JP2012084150A (en) * | 2010-10-12 | 2012-04-26 | Computer Associates Think Inc | Two-pass automated application instrumentation |
WO2012056569A1 (en) * | 2010-10-29 | 2012-05-03 | 株式会社日立製作所 | Performance measurement method, performance measurement device, and performance measurement program |
US9411616B2 (en) | 2011-12-09 | 2016-08-09 | Ca, Inc. | Classloader/instrumentation approach for invoking non-bound libraries |
JP2016114998A (en) * | 2014-12-11 | 2016-06-23 | 株式会社リコー | Operation verification device, operation verification method and operation verification program |
Also Published As
Publication number | Publication date |
---|---|
JP4879782B2 (en) | 2012-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4879782B2 (en) | Program profiling method and program | |
CN108521353B (en) | Processing method and device for positioning performance bottleneck and readable storage medium | |
JP4905974B2 (en) | Program profiling apparatus, program profiling method, and program | |
CN108388514B (en) | Interface automation test method, device, equipment and computer readable storage medium | |
US7376549B2 (en) | System performance prediction mechanism and method based on software component performance measurements | |
JP4681491B2 (en) | Profiling program and profiling method | |
US20150331882A1 (en) | Redundant file deletion method, apparatus and storage medium | |
JP2008140162A (en) | Debug information collection method | |
US20090222646A1 (en) | Method and apparatus for detecting processor behavior using instruction trace data | |
CN107678948B (en) | Test case generation method, terminal and storage medium | |
US11709756B2 (en) | Dynamic distributed tracing instrumentation in a microservice architecture | |
JP2018165857A (en) | Analyzing apparatus, analyzing system, analyzing method, and analyzing program | |
US20080010493A1 (en) | Software development apparatus and method | |
JP4935626B2 (en) | Control program and method, and computer | |
WO2020259034A1 (en) | Method, apparatus, and device for identifying offline source code, and storage medium | |
US20100153571A1 (en) | Recording medium storing transaction model generation support program, transaction model generation support computer, and transaction model generation support method | |
US10114725B2 (en) | Information processing apparatus, method, and computer readable medium | |
US20170255453A1 (en) | Information processing device and method of displaying program execution state | |
JP2011258058A (en) | Performance prediction apparatus, computer program and performance prediction method | |
JP2008269119A (en) | Information processor | |
CN112800303B (en) | Browser data storage and reading method and related device | |
WO2012056569A1 (en) | Performance measurement method, performance measurement device, and performance measurement program | |
JP2009211588A (en) | Analysis information sampling device of database access delay, analysis information sampling method, and program | |
JP2009199121A (en) | Information processor, communication information sampling method, and program | |
JP2009134535A (en) | Device for supporting software development, method of supporting software development, and program for supporting software development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110516 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110524 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110906 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111107 |
|
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: 20111129 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4879782 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141209 Year of fee payment: 3 |
|
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 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |