JP2008217721A - Program profiling system, program profiling method, and program - Google Patents

Program profiling system, program profiling method, and program Download PDF

Info

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
Application number
JP2007057896A
Other languages
Japanese (ja)
Other versions
JP4879782B2 (en
Inventor
Koji Kazeto
広史 風戸
Masashi Takechi
雅司 武市
Toshiyuki Kimura
利幸 木村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Data Group Corp
Original Assignee
NTT Data Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Priority to JP2007057896A priority Critical patent/JP4879782B2/en
Publication of JP2008217721A publication Critical patent/JP2008217721A/en
Application granted granted Critical
Publication of JP4879782B2 publication Critical patent/JP4879782B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To execute profiling of a program without exerting load to execution environment comparatively. <P>SOLUTION: A statistics mode measurement part 231 measures call relationship between processing time of each executed method and the executed method when execution program composed of a plurality of methods are executed, and memorizes the result. A measurement object setting part 24 specifies a major method which becomes major factor of execution time from the memorized result, and sets up only major method as an object of measurement of processing of the method at detailed mode. Then, a detailed mode measurement part 232 acquires detailed information concerning processing of the major method whenever the major method set as the measurement object by the measurement object setting part 24 when the execution program is executed, and memorizes the information. A sequence analysis part analyzes the sequence based on the information. <P>COPYRIGHT: (C)2008,JPO&INPIT

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は、メソッド間の呼出関係をログへ出力するための技術を開示している。
特開2004−94374号公報 特開2004−259154号公報
For example, Patent Document 1 discloses a technique of processing a source program or an execution program, inserting probes before and after a method to be measured, and performing profiling by processing of the probes.
Patent Document 2 discloses a technique for outputting a call relationship between methods to a log.
JP 2004-94374 A JP 2004-259154 A

しかし、特許文献1に開示されている技術では、プロファイリングの際、全ての計測対象のメソッドに挿入されているプローブが実行されるため、高い負荷がかかってしまう。そのため、実際の実行条件とは大きくかけ離れた環境でプロファイリングをすることになり、プロファイリングの計測結果の精度が低下してしまうという問題を有する。
また、この計測結果の精度の低下を防ぐために、計測対象にする処理(メソッド)を複数回に分けてプロファイリングしてもよいが、複数回に分けてプロファイリングをするためには、各回毎にプログラムに埋め込むプローブを変更する必要があり、面倒である。
However, in the technique disclosed in Patent Document 1, during profiling, a probe inserted in all methods to be measured is executed, so that a high load is applied. For this reason, profiling is performed in an environment far from the actual execution condition, and there is a problem that the accuracy of the measurement result of profiling is lowered.
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 Patent Document 2, when the call relationship between processes is complicated, the process of writing to the log becomes enormous, and the process of writing to the log itself is also heavily loaded. Therefore, profiling is performed in an environment different from the actual execution condition, and there is a problem that the accuracy of the measurement result is lowered.

本発明は、上記実状に鑑みてなされたものであり、精度の高いプロファイリングが可能なプログラムプロファイリング装置等提供することを目的とする。
本発明は、実行負荷の小さいプロファイリングを行うことができるプログラムプロファイリング装置等を提供することを目的とする。
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 program profiling apparatus 1 includes a communication unit 11, an input unit 12, an output unit 13, a storage unit 14, an input / output I / F unit 15, and a control unit 16. Each unit is connected to each other via a bus 17.

通信部11は、通信ネットワーク2を介して、ネットワーク上の情報処理装置等と通信を行うものであり、通信インタフェース等を備える。例えば、通信部11が、プロファイリングの対象となる実行プログラムを受信することにより、プログラムプロファイリング装置1はプロファイリングの対象を取り込む。
なお、本実施形態でプロファイリングの対象とする実行プログラムは複数のクラスから構成され、各クラスは1つ以上のメソッドを備えているものとする。
The communication unit 11 communicates with an information processing apparatus and the like on the network via the communication network 2 and includes a communication interface and the like. For example, when the communication unit 11 receives an execution program to be profiled, the program profiling apparatus 1 captures the profiled target.
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 input unit 12 is used to input various information to the program profiling apparatus 1 and includes input devices such as buttons and keys. For example, the input unit 12 receives analysis instruction start instruction information, which will be described later.

出力部13は、様々な情報を出力するものであり、ディスプレイ等の表示装置を備える。例えば、出力部13には、後述する分析処理において測定されたメソッド毎の処理時間の一覧画面等が表示される。   The output unit 13 outputs various information and includes a display device such as a display. For example, the output unit 13 displays a list screen of processing times for each method measured in an analysis process described later.

記憶部14は、様々な情報やプログラム等を記憶するものであり、ハードディスク等の補助記憶装置を備える。例えば、記憶部14は、分析処理を行う前に、予め、通信部11等を介して取り込んだ実行プログラム等を記憶しておく。
また、記憶部は、図2に示すように、プローブ挿入対象記憶テーブル141と、メソッド統計情報記憶テーブル142と、コールグラフ情報記憶テーブル143と、メソッド情報記憶テーブル144と、メソッド詳細性能ログテーブル145と、を記憶する。
The storage unit 14 stores various information, programs, and the like, and includes an auxiliary storage device such as a hard disk. For example, the storage unit 14 stores in advance an execution program or the like captured via the communication unit 11 or the like before performing the analysis process.
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 / F unit 15 is an interface for connecting the input / output device 3. For example, an execution program or the like to be profiled can be fetched from the input / output device 3 such as a CD-ROM drive via the input / output I / F unit 15 instead of the communication unit 11.

制御部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 control unit 16 performs calculation processing of data and controls the communication unit 11, the input unit 12, the output unit 13, the storage unit 14, and the input / output I / F unit 15 via the bus 17. A central processing unit (161), a read only memory (ROM) 162, a random access memory (RAM) 163, and the like. Specifically, the arithmetic processing and control processing in the control unit 16 are performed by the CPU 161 executing the control program stored in the ROM 162fc while temporarily storing various data using the RAM 163 as a work area. Done.

例えば、制御部16が、ROM162や記憶部14に記憶されている制御プログラムに従って上記各部を制御することにより、プログラムプロファイリング装置1において、プロファイリング処理等が行われる。   For example, when the control unit 16 controls the above units according to the control program stored in the ROM 162 or the storage unit 14, profiling processing or the like is performed in the program profiling apparatus 1.

図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 program profiling apparatus 1 functionally includes a probe insertion unit 21, a program execution unit 22, a measurement unit 23, a measurement mode switching unit 24, a measurement target setting unit 25, and a sequence analysis unit. 26 and a sequence display unit 27. Note that the control unit 16 illustrated in FIG. 1 includes the communication unit 11, the input unit 12, the output unit 13, the storage unit 14, or the input / output I / F unit 15 illustrated in FIG. It can be realized by controlling.

プローブ挿入部21は、プローブ挿入対象記憶テーブル141で挿入対象であると設定されている(可と設定されている)クラスのメソッドに対して、計測用のプローブを挿入するとともに、該メソッドをメソッド情報記憶テーブル144に登録する。なお、該処理の詳細については後述する。   The probe insertion unit 21 inserts a probe for measurement into a method of a class that is set as an insertion target in the probe insertion target storage table 141 (set as acceptable), and uses the method as a method. Register in the information storage table 144. Details of the processing will be described later.

プログラム実行部22は、プローブが挿入された実行プログラムを実行する。   The program execution unit 22 executes the execution program in which the probe is inserted.

計測部23は、プログラム実行部22によって実行された実行プログラムの処理(メソッド)に関する情報を計測する。なお、この計測処理は統計モードと詳細モードの2種類のモードを有する。統計モードによる計測処理は統計モード計測部231が行う。詳細モードによる計測処理は詳細モード計測部232が行う。なお、各モードの計測処理の詳細については後述する。   The measurement unit 23 measures information related to processing (method) of the execution program executed by the program execution unit 22. This measurement process has two types of modes, a statistical mode and a detailed mode. The statistical mode measurement unit 231 performs measurement processing in the statistical mode. The detailed mode measurement unit 232 performs measurement processing in the detailed mode. Details of the measurement processing in each mode will be described later.

計測モード切替部24は、上述した計測処理の統計モードと詳細モードとを切り換える処理を行う。   The measurement mode switching unit 24 performs a process of switching between the statistical mode and the detailed mode of the measurement process described above.

計測対象設定部25は、計測部23で計測の対象とするメソッドを設定する。具体的には、統計モードで計測を行うときには、計測対象設定部25は、メソッド情報記憶テーブル144に記憶されているメソッドの計測可否情報を全て「可」に設定して、全メソッドを計測対象とするように設定する。なお、該処理の詳細については後述する。
また、詳細モードで計測を行うときには、計測対象設定部25は、メソッド統計情報記憶テーブル142とコールグラフ情報記憶テーブル143とに記憶されている記憶情報に基づいて、計測対象を絞り込む処理を行う。そして、計測対象設定部25は、この絞り込み処理で絞り込まれたメソッドのメソッド情報記憶テーブル144に記憶されている計測可否情報を「可」に、絞り込まれたメソッド以外のメソッド情報記憶テーブル144に記憶されている計測可否情報を「否」に設定することにより、絞り込まれたメソッドのみがプロファイルの対象となるようにする。なお、該処理の詳細については後述する。
The measurement target setting unit 25 sets a method to be measured by the measurement unit 23. Specifically, when measurement is performed in the statistical mode, the measurement target setting unit 25 sets all the measurement availability information of the methods stored in the method information storage table 144 to “permitted”, and measures all methods as measurement targets. Set to Details of the processing will be described later.
When performing measurement in the detailed mode, the measurement target setting unit 25 performs a process of narrowing down the measurement target based on the storage information stored in the method statistical information storage table 142 and the call graph information storage table 143. Then, the measurement target setting unit 25 stores the measurement availability information stored in the method information storage table 144 of the method narrowed down in the narrowing processing as “permitted” in the method information storage table 144 other than the narrowed-down method. By setting the measured measurable information to “No”, only the narrowed-down method is targeted for the profile. Details of the processing will be described later.

シーケンス解析26は、メソッド詳細性能ログテーブル145に記憶されている記憶情報から、処理の流れ(シーケンス)を解析する。なお、該処理の詳細については後述する。   The sequence analysis 26 analyzes the processing flow (sequence) from the stored information stored in the method detailed performance log table 145. Details of the processing will be described later.

シーケンス表示部27は、シーケンス解析26が解析したシーケンスを図示したシーケンス図を作成して、出力部13に表示させる。なお、該処理の詳細については後述する。   The sequence display unit 27 creates a sequence diagram illustrating the sequence analyzed by the sequence analysis 26 and causes the output unit 13 to display the sequence diagram. Details of the processing will be described later.

次に、プログラム計測装置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 program measuring device 1 will be described.

なお、前提として、予め計測の対象となる実行プログラムは、記憶部14に格納されており、該実行プログラムを構成するクラスのうち、どのクラスをプローブの挿入対象とするかを示すための情報も、ユーザの準備作業等によりプローブ挿入対象記憶テーブル141に予め記憶されているものとする。   As a premise, an execution program to be measured is stored in the storage unit 14 in advance, and information for indicating which of the classes constituting the execution program is the probe insertion target is also included. It is assumed that the probe insertion target storage table 141 is stored in advance by a user's preparation work or the like.

ユーザから、実行プログラムを計測するための指示入力が入力部12よりなされ、その入力情報が制御部16に送信されると、図9に示す計測処理が開始される。   When the user inputs an instruction for measuring the execution program from the input unit 12 and the input information is transmitted to the control unit 16, the measurement process shown in FIG. 9 is started.

まず、プローブ挿入部21は、実行プログラムにメソッド計測用のプローブを挿入する(ステップS101)。なお、該処理の詳細については後述する。   First, the probe insertion unit 21 inserts a method measurement probe into the execution program (step S101). Details of the processing will be described later.

次に、統計モード計測部231はプローブを挿入したメソッドを全て測定対象としてメソッド毎の処理時間と呼出関係とを計測する統計モード計測処理を行う(ステップS102)。なお、該処理の詳細については後述する。   Next, the statistical mode measurement unit 231 performs a statistical mode measurement process for measuring the processing time and the calling relationship for each method with all methods into which probes are inserted as measurement targets (step S102). Details of the processing will be described later.

次に、計測対象設定部25は、ステップS102で行った統計モード計測処理の結果から、詳細モードで計測処理を行うためのメソッドを絞り込む(ステップS103)。なお、該処理の詳細については後述する。   Next, the measurement target setting unit 25 narrows down the method for performing the measurement process in the detailed mode from the result of the statistical mode measurement process performed in step S102 (step S103). Details of the processing will be described later.

そして、詳細モード計測部232は、ステップS103で絞り込まれたメソッドが処理される毎に、該処理に関する各種の情報を計測する詳細モード計測処理を行う(ステップS104)。なお、該処理の詳細については後述する。   Then, each time the method narrowed down in step S103 is processed, the detailed mode measurement unit 232 performs a detailed mode measurement process that measures various types of information related to the process (step S104). Details of the processing will be described later.

そして、シーケンス解析部26は、詳細モード計測処理の結果から処理の流れ(シーケンス)を解析し、シーケンス表示部27がシーケンスを図示して表示し(ステップS105)、プロファイル処理は終了する。   Then, the sequence analysis unit 26 analyzes the process flow (sequence) from the result of the detailed mode measurement process, the sequence display unit 27 displays the sequence as an illustration (step S105), and the profile process ends.

次に、図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 probe insertion unit 21 reads one class constituting an execution program to be measured into the RAM 163 (FIG. 10, step S201).

続いて、プローブ挿入部21は、プローブ挿入対象記憶テーブル141に記憶されている情報に基づいて、ステップS201で読み込んだクラスが、プローブ挿入対象になっているか否かを判断する(ステップS202)。   Subsequently, the probe insertion unit 21 determines whether the class read in step S201 is a probe insertion target based on information stored in the probe insertion target storage table 141 (step S202).

プローブ挿入対象のクラスでないと判断した場合(ステップ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 probe insertion unit 21 moves the process to step S206.
When determining that the class is a probe insertion target class (step S202; Yes), the probe insertion unit 21 issues identification information (method ID) to a method included in the class (step S203).

そして、プローブ挿入部21は、メソッドIDを発行したメソッドの前後(実行段階でそのメソッドの実行の前後となる部分)に、計測用のプローブを挿入する(ステップS204)。
なお、メソッドの処理の前に挿入されたプローブを実行開始(検出用の)プローブ、メソッドの後に挿入されたプローブを実行終了(検出用の)プローブとして、以下説明する。
Then, the probe insertion unit 21 inserts the measurement probe before and after the method that issued the method ID (the portion before and after the execution of the method in the execution stage) (step S204).
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 probe insertion unit 21 registers the method ID, class name, and method name of the method inserted in step S204 in the method information storage table 144 in association with each other (FIG. 10, step S205). At the time of registration, the measurement availability flag set in the registered record is set to “available”. That is, as a result of this processing, all the methods in which the probes are inserted are set as “measurable” flag “possible” and are registered in the method information storage table 144.

続いて、ステップS206で、プローブ挿入部21は、読み込んでいない他のクラスが有るか否かを判別する。
読み込んでいない他のクラスが有ると判別した場合は(ステップS206;Yes)、プローブ挿入部21は、ステップS201〜ステップS205の処理を繰り返す。
読み込んでいない他のクラスがない判別した場合は(ステップS206;No)、プローブ挿入処理は終了する。
(2)図9ステップS103の統計モード計測処理:
まず、計測モード切替部24は、計測部23で計測するモードを統計モードに切り換える。
その後、プログラム実行部22が、プローブ挿入済みの実行プログラムを実行すると、実行プログラムのメソッドに埋め込まれているプローブの処理により、統計モードでのメソッドの計測がなされる。
Subsequently, in step S206, the probe insertion unit 21 determines whether there is another class that has not been read.
When it is determined that there is another class that has not been read (step S206; Yes), the probe insertion unit 21 repeats the processing from step S201 to step S205.
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 mode switching unit 24 switches the mode measured by the measurement unit 23 to the statistical mode.
Thereafter, when the program execution unit 22 executes the execution program with the probe inserted, the method in the statistical mode is measured by the processing of the probe embedded in the method of the execution program.

ここで、この実行プログラムの実行によって行われる、プローブが挿入されているメソッドの動作について、図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 program execution unit 22 determines whether or not the method is a measurement target (step S301). Specifically, the program execution unit 22 makes this determination based on the measurement availability information in the method information storage table 144.

メソッドが計測の対象となっていないと判断した場合(ステップS301;No)、プログラム実行部22は処理をステップS304に移す。   When it is determined that the method is not a measurement target (step S301; No), the program execution unit 22 moves the process to step S304.

メソッドが計測の対象となっていると判断した場合(ステップS301;Yes)、プログラム実行部22は、統計モード計測部231に、該メソッドのメソッドIDを含んだ計測開始通知を送信する(ステップS302)。   When it is determined that the method is a measurement target (step S301; Yes), the program execution unit 22 transmits a measurement start notification including the method ID of the method to the statistical mode measurement unit 231 (step S302). ).

統計モード計測部231は、計測開始通知を受信すると、該メソッドに挿入されている実行開始プローブを実行して(ステップS303)、プログラム実行部22のステップS304に処理を移す。なお、この実行開始プローブの実行により、該メソッドが開始されたことを示す情報がそのときの時刻とともに図13(A)のL1に示すように、RAM163に記録される。   When receiving the measurement start notification, the statistical mode measurement unit 231 executes the execution start probe inserted in the method (step S303), and moves the process to step S304 of the program execution unit 22. Note that, by executing this execution start probe, information indicating that the method has been started is recorded in the RAM 163 together with the time at that time, as indicated by L1 in FIG.

図12に戻り、ステップS304で、プログラム実行部22は、該メソッドに挿入されているプローブ以外のメソッドの処理を実行する。   Returning to FIG. 12, in step S304, the program execution unit 22 executes processing of a method other than the probe inserted in the method.

次に、プログラム実行部22は、当該メソッドが計測の対象となっているか否かを判別する(ステップS305)。
メソッドが計測の対象となっていないと判断した場合(ステップS305;No)、プログラム実行部22はメソッドの実行を終了する。
メソッドが計測の対象となっていると判断した場合(ステップS305;Yes)、プログラム実行部22は、統計モード計測部231に該メソッドのメソッドIDを含んだ計測終了通知を送信する(ステップS306)。
Next, the program execution unit 22 determines whether or not the method is a measurement target (step S305).
When it is determined that the method is not a measurement target (step S305; No), the program execution unit 22 ends the execution of the method.
When it is determined that the method is a measurement target (step S305; Yes), the program execution unit 22 transmits a measurement end notification including the method ID of the method to the statistical mode measurement unit 231 (step S306). .

統計モード計測部231は、計測終了通知を受信すると、該メソッドに挿入されている実行終了プローブを実行する(ステップS307)。この実行終了プローブの実行により、該メソッドが終了したことを示す情報がそのときの時刻とともに図13(A)のL2に示すように、RAM163に記録される。   When receiving the measurement end notification, the statistical mode measurement unit 231 executes the execution end probe inserted in the method (step S307). By executing the execution end probe, information indicating that the method has ended is recorded in the RAM 163 together with the time at that time, as indicated by L2 in FIG.

そして、統計モード計測部231は、ステップS303とステップS307とでRAM163に記録した情報から、該メソッドの処理時間を算出し、算出した処理時間をメソッド統計情報記憶テーブル142の当該メソッドの総実行時間に加算すると共に、実行回数を1プラスする(ステップS308)。
例えば、図13(A)に示すような情報がRAM163に記憶されている場合には、メソッドID「01」を有するメソッドの処理時間が4秒加算され、またその実行回数が1プラスされる。
Then, the statistical mode measurement unit 231 calculates the processing time of the method from the information recorded in the RAM 163 in step S303 and step S307, and calculates the calculated processing time as the total execution time of the method in the method statistical information storage table 142. And the number of executions is incremented by 1 (step S308).
For example, when information as shown in FIG. 13A is stored in the RAM 163, the processing time of the method having the method ID “01” is added for 4 seconds, and the number of executions thereof is incremented by one.

続いて、統計モード計測部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 mode measurement unit 231 stores the correspondence relationship between the call source and the call destination in the call graph information storage table 143 (Step S1). S309).
For example, when information as shown in FIG. 13B is stored in the RAM 163 by the processing of step S303 and step S307, the call destination is the method “01” and the call destination is the method “02”. The correspondence relationship is recorded in the call graph information storage table 143.
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 target setting unit 25 identifies a method having the maximum total execution time from the storage information stored in the method statistical information storage table 142, and determines the method ID of the specified method and the maximum total execution time. Is stored in the RAM 163 (FIG. 14, step S401), and the process proceeds to step S402.

ステップS402で、計測対象設定部25は、コールグラフ情報記憶テーブル143に記憶されている記憶情報に基づいて、ステップS401又はステップS405でRAM163に記憶したメソッドIDを有するメソッドを起点としたコールグラフの幅優先探索を行い、起点としたメソッドから所定の距離N(例えば2)以内のメソッドを特定する。例えば、図6(B)に示すようなコールグラフを表示するための情報がコールグラフ情報記憶テーブル143に記憶されており、起点を処理Aとして幅優先探索を行った場合、距離2以内のメソッドとして、処理Eと処理Dとが検出される。   In step S402, the measurement target setting unit 25 creates a call graph starting from the method having the method ID stored in the RAM 163 in step S401 or step S405 based on the storage information stored in the call graph information storage table 143. A breadth-first search is performed, and a method within a predetermined distance N (for example, 2) from the starting method is specified. For example, information for displaying a call graph as shown in FIG. 6B is stored in the call graph information storage table 143, and when a breadth-first search is performed with the starting point as process A, a method within a distance of 2 is used. Process E and Process D are detected.

続いて、計測対象設定部25は、ステップS402で特定したメソッドのメソッドIDをRAM163に記憶するとともに、それらのメソッドの総実行時間をメソッド情報記憶テーブル144より取得し、RAM163に記録した総実行時間に累計する(ステップS403)。   Subsequently, the measurement target setting unit 25 stores the method IDs of the methods specified in step S <b> 402 in the RAM 163, acquires the total execution time of those methods from the method information storage table 144, and records the total execution time recorded in the RAM 163. (Step S403).

続いて、計測対象設定部25は、RAM163に累計して記憶した総実行時間が、メソッド統計情報記憶テーブル142に記憶されている全てのメソッドで合計した総実行時間に対して、所定の割合以上(例えば10%以上)に達したか否かを判断する(ステップS404)。   Subsequently, the measurement target setting unit 25 determines that the total execution time accumulated in the RAM 163 is equal to or greater than a predetermined ratio with respect to the total execution time totaled for all methods stored in the method statistical information storage table 142. It is determined whether or not (for example, 10% or more) has been reached (step S404).

所定の割合以上に達していないと判断した場合(ステップ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 target setting unit 25 obtains the method ID of the method having the next longest execution time from the method statistical information storage table 142, and the RAM 163. The total execution time of the method is added to the total execution time stored in the RAM 163 (step S405), and the process proceeds to step S402.

特定の割合に達したと判断した場合(ステップS404;Yes)、計測対象設定部25は、RAM163に記憶したメソッドIDを有するメソッドのメソッド情報記憶テーブル144の計測可否フラグを「計測可」に、それ以外のメソッドの計測可否フラグを「計測不可」に設定する(ステップS406)。
以上で、計測対象絞り込み処理は終了する。
このように、この計測対象絞り込み処理により、実行プログラムを実行した際の処理時間の主要な要因となるメソッドが特定され、この特定されたメソッドのみが詳細モードでの計測対象に設定される。
If it is determined that the specific ratio has been reached (step S404; Yes), the measurement target setting unit 25 sets the measurement availability flag of the method information storage table 144 of the method having the method ID stored in the RAM 163 to “measurable”. The measurement enable / disable flags of other methods are set to “measurement impossible” (step S406).
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 mode switching unit 24 switches the mode measured by the measurement unit 23 to the detailed mode.
After that, when the program execution unit 22 executes the execution program with the probe inserted, measurement in the detailed mode is performed by the processing of the probe embedded in the method of the execution program.

ここで、この実行プログラムの実行による、プローブが挿入されているメソッドの動作について、図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 program execution unit 22 determines whether or not the method is a measurement target (FIG. 15, step S501). Specifically, this determination may be made based on the measurement availability information in the method information storage table 144.

メソッドが計測の対象となっていないと判断した場合(ステップS501;No)、プログラム実行部22は処理をステップS504に移す。   When it is determined that the method is not a measurement target (step S501; No), the program execution unit 22 moves the process to step S504.

メソッドが計測の対象となっていると判断した場合(ステップS501;Yes)、プログラム実行部22は、詳細モード計測部232に、該メソッドのメソッドIDを含んだ計測開始通知を送信する(ステップS502)。   If it is determined that the method is a measurement target (step S501; Yes), the program execution unit 22 transmits a measurement start notification including the method ID of the method to the detailed mode measurement unit 232 (step S502). ).

詳細モード計測部232は、計測開始通知を受信すると、該メソッドに挿入されている実行開始プローブを実行して(ステップS503)、プログラム実行部22によるステップS504に処理を移す。
なお、この実行開始プローブの実行により、そのときの時刻、種類「開始」、該メソッドの処理のスレッド、呼出元のメソッド名(ID)、および、当該メソッド名(ID)が対応付けられてメソッド詳細性能ログテーブル145に記憶される。
なお、上記の情報は、実行プログラムを実行するための仮想マシン等が提供するAPIを利用することで取得すればよい。
When the detailed mode measurement unit 232 receives the measurement start notification, the detailed mode measurement unit 232 executes the execution start probe inserted in the method (step S503), and moves the process to step S504 by the program execution unit 22.
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 program execution unit 22 executes processing for a method other than the probe inserted in the method.

次に、プログラム実行部22は、当該メソッドが計測の対象となっているか否かを判別する(ステップS505)。
メソッドが計測の対象となっていないと判断した場合(ステップS505;No)、プログラム実行部22はメソッドの実行を終了する。
メソッドが計測の対象となっていると判断した場合(ステップS505;Yes)、プログラム実行部22は、詳細モード計測部232に該メソッドのメソッドIDを含んだ計測終了通知を送信する(ステップS506)。
Next, the program execution unit 22 determines whether or not the method is a measurement target (step S505).
If it is determined that the method is not a measurement target (step S505; No), the program execution unit 22 ends the execution of the method.
If it is determined that the method is a measurement target (step S505; Yes), the program execution unit 22 transmits a measurement end notification including the method ID of the method to the detailed mode measurement unit 232 (step S506). .

詳細モード計測部232は、計測終了通知を受信すると、該メソッドに挿入されている実行終了プローブを実行する(ステップS507)。
そして、この実行終了プローブの実行により、そのときの時刻、種類「終了」、該メソッドの処理のスレッド、呼出元のメソッド名(ID)、および、当該メソッド名(ID)等の情報がメソッド詳細性能ログテーブル145に記憶される。
なお、上記の情報の取得は、実行プログラムを実行するための仮想マシン等が提供するAPIを利用することで取得すればよい
When receiving the measurement end notification, the detailed mode measurement unit 232 executes the execution end probe inserted in the method (step S507).
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 sequence analysis unit 26 acquires a record related to the same thread among the records stored in the method detailed performance log table 145 (FIG. 16, step S601).

そして、シーケンス解析部26は、ステップS601で取得したレコードを解析して、一連の処理の流れ(シーケンス)を解析する(ステップS602)。   Then, the sequence analysis unit 26 analyzes the record acquired in step S601 and analyzes a flow (sequence) of a series of processes (step S602).

ここで、このシーケンスの解析について具体例を挙げて説明する。なお、前提として、ステップ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 sequence analysis unit 26 calls the method “processing” in which the caller is “none” in the first record (record of time “0”) among the records shown in FIG. 17A acquired in step S601. A ”is determined as the starting point of the sequence.
Then, the sequence analysis unit 26 determines that this method “processing A” calls the method “processing E” from the next record (record of time “300”).
Subsequently, the sequence analysis unit 26 determines that this method “processing E” calls the method “processing D” from the next record (record of time “600”).
Then, the sequence analysis unit 26 ends the method “Processing D” from the next record (record of time “800”), and returns the process to the method “Processing E” that is the caller of the method “Processing D”. Judge that.
Then, the sequence analysis unit 26 ends the method “processing E” from the next record (record of time “1200”), and returns the processing to the method “processing A” that is the caller of the method “processing E”. Judge that.
Then, the sequence analysis unit 26 determines from the next record (record at time “2000”) that the method “Processing A” determined to be the starting point of the sequence has ended and the sequence has ended. Analyzed.

そして、シーケンス表示部27は、ステップS602で解析したシーケンスを、出力部13に表示する(ステップS603)。
なお、先程具体例を挙げて、解析したシーケンスは、このステップS603の処理により、例えば図17(B)に示すように表示される。なお、この図には、メソッド「処理A」「処理E」「処理D」が属するクラス名も表示されているが、このクラス名はメソッド情報記憶テーブル144を参照して取得すればよい。
以上で、シーケンス表示処理は終了し、図9に示すプロファイル処理は終了する。
The sequence display unit 27 displays the sequence analyzed in step S602 on the output unit 13 (step S603).
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.

本発明の実施の形態に係るプログラムプロファイリング装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the program profiling apparatus which concerns on embodiment of this invention. 図1に示したプログラムプロファイリング装置の記憶部の構成を示す図である。It is a figure which shows the structure of the memory | storage part of the program profiling apparatus shown in FIG. 本発明の実施の形態に係るプログラムプロファイリング装置の機能構成例を示すブロック図である。It is a block diagram which shows the function structural example of the program profiling apparatus which concerns on embodiment of this invention. プローブ挿入対象記憶テーブルの構成を示す図である。It is a figure which shows the structure of a probe insertion object storage table. メソッド統計情報記憶テーブルの構成を示す図である。It is a figure which shows the structure of a method statistics information storage table. (A)は、コールグラフ情報記憶テーブルの構成を示す図である。(B)は、コールグラフの例を示す図である。(A) is a figure which shows the structure of a call graph information storage table. (B) is a figure showing an example of a call graph. メソッド情報記憶テーブルの構成を示す図である。It is a figure which shows the structure of a method information storage table. メソッド詳細性能ログテーブルの構成を示す図である。It is a figure which shows the structure of a method detailed performance log table. プロファイル処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of a profile process. プローブ挿入処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of a probe insertion process. プローブの挿入を説明するための図である。It is a figure for demonstrating insertion of a probe. 統計モード時に実行されるプローブ挿入済みのメソッドの動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the method by which the probe insertion performed at the time of statistical mode was carried out. プローブの処理によってRAMに記憶される情報の例を示した図である。It is the figure which showed the example of the information memorize | stored in RAM by the process of a probe. プロファイリング対象絞り込み処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the profiling object narrowing-down process. 詳細モード時に実行されるプローブ挿入済みのメソッドの動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the method by which the probe insertion performed at the time of detailed mode was carried out. シーケンス表示処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of a sequence display process. シーケンス表示処理を具体的に説明するための図である。It is a figure for demonstrating a sequence display process concretely.

符号の説明Explanation of symbols

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 Probe insertion unit 22 Program execution unit 23 Measurement unit 231 Statistical mode measurement unit 232 Detailed mode measurement unit 24 Measurement target setting unit 25 Measurement mode switching unit 26 Sequence analysis unit 27 Sequence display unit

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.
JP2007057896A 2007-03-07 2007-03-07 Program profiling method and program Expired - Fee Related JP4879782B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US20080010493A1 (en) Software development apparatus and method
JP2018165857A (en) Analyzing apparatus, analyzing system, analyzing method, and analyzing program
JP4935626B2 (en) Control program and method, and computer
US8732323B2 (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
CN111382017A (en) Fault query method, device, server and storage medium
JP2020173570A (en) Analysis apparatus, analysis method, and program
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
JP2009015734A (en) Program profiling device, program profiling method and program

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