JPH0934754A - Instrument and method for measuring performance of program - Google Patents
Instrument and method for measuring performance of programInfo
- Publication number
- JPH0934754A JPH0934754A JP7182623A JP18262395A JPH0934754A JP H0934754 A JPH0934754 A JP H0934754A JP 7182623 A JP7182623 A JP 7182623A JP 18262395 A JP18262395 A JP 18262395A JP H0934754 A JPH0934754 A JP H0934754A
- Authority
- JP
- Japan
- Prior art keywords
- program
- measurement
- instruction
- execution
- time
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明はプログラムの実行性能を
測定する装置と方法に関する。業務用のアプリケーショ
ンプログラムでは、実運用を開始する前に、プログラム
の実行性能を測定し設計通りの性能が得られているか検
証する必要がある。しかし、プログラムの性能を測定す
るためには、性能測定用の特殊な環境を用意する必要が
あり、プログラムの性能の問題点を開発工程の早い時期
に検出することができていない。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus and method for measuring program execution performance. For business application programs, it is necessary to measure the execution performance of the program and verify whether the performance as designed is obtained before starting actual operation. However, in order to measure the performance of the program, it is necessary to prepare a special environment for the performance measurement, and the problem of the performance of the program cannot be detected early in the development process.
【0002】このため、アプリケーションプログラムの
性能測定を容易に実施できるようにする必要がある。Therefore, it is necessary to easily measure the performance of the application program.
【0003】[0003]
【従来の技術】従来のプログラムの性能測定において
は、測定したいアプリケーションプログラムを性能測定
用の環境下で起動し、プログラムの特定個所間を対象と
して性能測定を行っていた。この場合、測定用の環境下
で動作するプログラムの特定のルートだけしか性能を測
定できず、プログラム上の別ルートを測定するために
は、そのルートを実行させるためのドライバプログラム
などの環境を準備する必要があった。このため、特殊な
ルートなどで頻繁に走行しないルートを測定するために
は、各ルート毎のドライバプログラム環境を準備する必
要があり、簡単に性能を測定することができなかった。2. Description of the Related Art In the conventional performance measurement of programs, an application program to be measured is started in an environment for performance measurement, and performance measurement is performed for specific parts of the program. In this case, the performance can be measured only for a specific route of the program that operates under the measurement environment, and in order to measure another route on the program, prepare the environment such as the driver program to execute the route. Had to do. Therefore, in order to measure a route that does not frequently travel on a special route, it is necessary to prepare a driver program environment for each route, and it is not possible to easily measure the performance.
【0004】時間測定の例では特開平3−102437
において、コンパイラが作成したデパッガのシンボル情
報を利用して、性能測定の対象となるプログラムにトラ
ップ命令を埋め込むことで、性能測定の対象となるプロ
グラムに対し性能測定ルーチンを呼び出すプリプロセッ
サの実行や、再コンパイル、再リンクを不要とすること
を特徴とした方式が示されている。In an example of time measurement, Japanese Patent Laid-Open No. 3-102437
Using the depagger symbol information created by the compiler, by embedding trap instructions in the program whose performance is to be measured, the preprocessor that calls the performance measurement routine for the program whose performance is to be measured, A method characterized by eliminating the need for compilation and relinking is shown.
【0005】しかし、プログラムの実行ルートを容易に
設定する手段やダイナミックステップなどの各種の性能
項目の測定も時間測定と同時に行えるような柔軟で操作
の容易な性能測定を可能とするものとはなっていない。However, it is possible to perform flexible and easy-to-operate performance measurement in which various performance items such as means for easily setting a program execution route and dynamic steps can be measured simultaneously with time measurement. Not not.
【0006】[0006]
【発明が解決しようとする課題】上記のように、従来の
技術では、性能測定したいアプリケーションプログラム
を性能測定用の環境下で起動するので、プログラム上の
あるルートを測定するためには、そのルート用のドライ
バプログラムを作成する必要があり、環境準備にかなり
の労力が必要となる問題が生じていた。As described above, in the conventional technique, the application program whose performance is to be measured is started in the environment for performance measurement. Therefore, in order to measure a certain route on the program, the route is measured. There is a problem that it is necessary to create a driver program for Windows, which requires considerable effort to prepare the environment.
【0007】本発明はこのような点にかんがみて、性能
測定における環境準備を容易にし、各ルート専用のドラ
イバプログラムを作成せずに測定を実施でき、また、各
種の性能項目の測定も時間測定と同時に柔軟に測定がで
きる性能測定手段を提供することを目的とする。In view of the above points, the present invention facilitates environment preparation for performance measurement, enables measurement without creating a driver program dedicated to each route, and measures various performance items with time. At the same time, it is an object of the present invention to provide a performance measuring means capable of flexibly measuring.
【0008】[0008]
【課題を解決するための手段】上記の課題は下記の如く
に構成されたプログラムの性能測定装置によって解決さ
れる。The above problems can be solved by a program performance measuring apparatus configured as follows.
【0009】図1は、本発明の構成図である。300は
デバッグモードプログラム実行環境部であり、測定対象
プログラムを1命令毎に割り出しを発生させるデバッグ
モードで実行する環境である(請求項1〜8)。FIG. 1 is a block diagram of the present invention. A debug mode program execution environment unit 300 is an environment for executing the measurement target program in a debug mode in which indexing is generated for each instruction (claims 1 to 8).
【0010】100は測定操作部であり、上記測定対象
プログラムの測定を開始する命令と測定を終了する命令
をアドレスで指定し、上記プログラムを起動し、上記起
動されたプログラムが上記指定した測定開始アドレスの
命令の実行に到ったとき上記プログラムの実行を中断
し、この中断したプログラムの実行を再開する実行制御
手段1と、上記測定対象プログラムが実行を中断したと
き、上記中断したプログラムの実行ルートを決定するデ
ータの設定を行う状態操作手段2とからなっている(請
求項4、8)。A measurement operation unit 100 designates an instruction to start measurement and an instruction to end measurement of the program to be measured by an address, starts the program, and the started program starts the measurement specified by the above. Execution control means 1 for interrupting the execution of the program when the instruction of the address is reached and restarting the execution of the interrupted program, and execution of the interrupted program when the measurement target program interrupts the execution. And a status operating means 2 for setting data for determining a route (claims 4 and 8).
【0011】200は性能測定部であり、上記測定対象
プログラムをデバッグモードで実行するとき発生する割
り出しにより制御を移され、1命令毎に必要な性能測定
情報の処理を行い上記測定対象プログラムの割り出し元
に制御を帰すものである。Reference numeral 200 denotes a performance measurement unit, which is controlled by an index generated when the measurement target program is executed in the debug mode, and the necessary performance measurement information is processed for each instruction to determine the measurement target program. It returns control to the original.
【0012】これを構成する各手段については以下に示
す(請求項1〜3、5〜7)。命令実行時間収集手段6
は上記発生する割り出しにより制御を移される性能測定
部が割り出し元に制御を戻すとき計時を開始し、上記測
定対象プログラムの1命令の実行後発生する割り出しに
より制御が移されるとき計時を終了して上記1命令の実
行時間として一時記憶するものである(請求項1、
5)。The respective means constituting this will be shown below (claims 1 to 3, 5 to 7). Instruction execution time collection means 6
Starts timing when the performance measuring unit whose control is transferred by the above-mentioned indexing returns control to the indexing source and ends timing when control is transferred by the indexing generated after the execution of one instruction of the measurement target program. The execution time of one instruction is temporarily stored (claim 1,
5).
【0013】性能測定制御部5は性能測定部200の各
手段の動作の実行を制御するものであり、情報を一時記
憶する不図示の記憶部を含むものである(請求項1〜
3、5〜7)。The performance measurement control unit 5 controls the execution of the operation of each means of the performance measurement unit 200, and includes a storage unit (not shown) for temporarily storing information (claims 1 to 1).
3, 5-7).
【0014】プログラム実行時間測定手段9は、上記一
時記憶された命令実行時間を上記測定対象プログラムの
測定開始から測定終了までに実行する命令について積算
して記憶するものである(請求項1、5)。The program execution time measuring means 9 integrates and stores the temporarily stored instruction execution time for the instructions to be executed from the measurement start to the measurement end of the measurement object program (claims 1 and 5). ).
【0015】ダイナミックステップ測定手段7は上記割
り出しにより制御を移される毎に回数を計数して記憶す
るものである(請求項2、6)。ルートトレース測定手
段8は上記割り出しにより制御を移される毎に測定対象
プログラムの実行する命令のアドレスおよびコードを時
系列で記憶するものである(請求項3、7)。The dynamic step measuring means 7 counts and stores the number of times each time the control is transferred by the indexing (claims 2 and 6). The route trace measuring means 8 stores the address and code of the instruction executed by the measurement target program in time series every time the control is transferred by the above-mentioned indexing (claims 3 and 7).
【0016】[0016]
【作用】測定対象プログラムをデバッグモードプログラ
ム実行環境部300でデバッグモードで実行することに
より、発生する割り出しにより性能測定部200に制御
が移され、1命令毎に必要な性能測定情報の処理を行い
上記測定対象プログラムの割り出し元に制御を帰すよう
にプログラムの論理に従った命令の実行を追跡しながら
性能測定を行うようにしている。By executing the measurement target program in the debug mode program execution environment unit 300 in the debug mode, control is transferred to the performance measurement unit 200 according to the generated index, and the necessary performance measurement information is processed for each instruction. Performance is measured while tracing execution of instructions according to the logic of the program so that control is returned to the index source of the measurement target program.
【0017】プログラムの実行時間の測定は上記発生す
る割り出しにより制御を移される命令実行時間収集手段
6が割り出し元に制御を戻すとき計時を開始し、上記測
定対象プログラムの1命令の実行後発生する割り出しに
より制御が移されるとき計時を終了して上記1命令の命
令実行時間として一時記憶し、これをプログラム実行時
間測定手段9により測定開始から測定終了までに実行す
る命令について順次積算して記憶するようにしている
(請求項1、5)。The measurement of the execution time of the program is started after the instruction execution time collection means 6 whose control is transferred by the above-mentioned indexing returns control to the indexing source, and after the execution of one instruction of the program to be measured. When the control is transferred by indexing, the time measurement is ended, and the instruction execution time of the above-mentioned one instruction is temporarily stored, and the instruction is executed by the program execution time measuring means 9 from the start of measurement to the end of measurement, and is sequentially accumulated and stored. (Claims 1 and 5).
【0018】ダイナミックステップの測定はダイナミッ
クステップ測定手段7により上記割り出しで制御を移さ
れる毎に回数を累積して記憶するようにしている(請求
項2、6)。The dynamic step measurement is performed by accumulating and storing the number of times each time the control is transferred by the dynamic step measuring means 7 by the indexing (claims 2 and 6).
【0019】ルートトレース測定手段8では上記割り出
しにより制御を移される毎に測定対象プログラムの実行
する命令のアドレスおよびコードを時系列で蓄積記憶よ
うにして実行したプログラムの命令のルートを測定記録
するようになっている(請求項3、7)。The route trace measuring means 8 measures and records the route of the instruction of the executed program by accumulating and storing the address and code of the instruction to be executed by the program to be measured every time the control is transferred by the above-mentioned indexing. (Claims 3 and 7).
【0020】100は測定操作部では、実行制御手段1
により上記測定対象プログラムの測定を開始する命令の
アドレスと測定を終了する命令のアドレスを指定し、上
記プログラムを起動し、上記起動されたプログラムが上
記指定した測定開始命令の実行に到ったとき上記プログ
ラムの実行を中断し、状態操作手段2では上記中断した
プログラムの実行ルートを決定するデータの設定を行
い、上記作実行制御手段1により再度上記中断したプロ
グラムの実行を再開するようになっている(請求項4、
8)。Reference numeral 100 denotes a measurement operation unit, which is an execution control means 1
When the address of the instruction to start the measurement of the measurement target program and the address of the instruction to end the measurement are specified by, the above program is started, and the started program reaches the execution of the specified measurement start instruction. The execution of the program is interrupted, the state operation means 2 sets the data for determining the execution route of the interrupted program, and the operation execution control means 1 restarts the execution of the interrupted program again. (Claim 4,
8).
【0021】[0021]
【実施例】図2に本発明の実施例の構成図を示す。測定
操作部100は測定対象プログラム300の測定条件、
測定環境を操作するものであり、実行制御部1、状態操
作部2とデータ解析部23を含む。なお、測定操作部1
00は従来技術であるデバッガの機能である。DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 2 shows a block diagram of an embodiment of the present invention. The measurement operation unit 100 is a measurement condition of the measurement target program 300,
It operates the measurement environment and includes an execution control unit 1, a state operation unit 2, and a data analysis unit 23. The measurement operation unit 1
00 is a function of a conventional debugger.
【0022】実行操作部1は測定対象プログラム300
をデバッグモードで実行できる状態に設定し、性能測定
を行う命令の先頭と測定を終了する命令をそれぞれ測定
点XA25、測定点XB26としてそのアドレスを指定
して設定する。アドレスはデバッガのシンボル情報を用
いてシンボルで指定したり、オブジェクトコードのリス
トからアドレスを調べて指定することもできる。The execution operation unit 1 is a measurement target program 300.
Is set to a state where it can be executed in the debug mode, and the start of the instruction for performance measurement and the instruction for ending the measurement are set by designating their addresses as measurement points XA25 and XB26, respectively. The address can be specified as a symbol by using the symbol information of the debugger, or can be specified by checking the address from the list of object code.
【0023】実行ルートの指定は測定対象プログラムの
データ部27にあるデータを変更して設定することによ
り内部ロジックで決まるルートを変更できる。すなわ
ち、状態操作部2によりデバッガの機能であるデータの
操作を行い必要なデータの設定を行うことによりルート
の指定ができる。The execution route can be specified by changing the data in the data section 27 of the program to be measured and setting it to change the route determined by the internal logic. That is, the route can be specified by operating the data, which is the function of the debugger, by the state operating unit 2 and setting the necessary data.
【0024】操作は測定開始時および上記設定した測定
点に到達したときにオペレータに制御が与えられ、ディ
スプレイ画面、キーボード、マウスなどの入出力機能を
有した操作端末21によりオペレータとの会話により行
う。測定結果のデータについては上記操作端末21に表
示するほか、解析結果を含めて出力装置22に記録する
ことができるようになっている。The operation is controlled by the operator at the time of starting the measurement and when reaching the set measuring point, and is carried out by a conversation with the operator through the operation terminal 21 having an input / output function such as a display screen, a keyboard and a mouse. . The data of the measurement result can be displayed on the operation terminal 21 and can be recorded on the output device 22 including the analysis result.
【0025】性能測定部200は測定対象プログラム3
00の実行にともない発生する性能情報を収集、記憶
し、処理して測定データ格納部10に記録するものであ
る。次に、図3に示す本発明の実施例の操作フローチャ
ートを説明する。性能測定項目の組み合わせは種々ある
がここではプログラムの実行時間の測定を例として説明
する。The performance measuring unit 200 uses the measurement target program 3
The performance information generated by executing 00 is collected, stored, processed, and recorded in the measurement data storage unit 10. Next, an operation flowchart of the embodiment of the present invention shown in FIG. 3 will be described. There are various combinations of performance measurement items, but here, the measurement of the program execution time will be described as an example.
【0026】ステップS31では実行時間を測定しよう
とするプログラムを実行制御部1により指定し、プログ
ラムを性能測定可能な環境下で実行可能な状態とする。
つまり、プログラムを配置し、デバッグモードで実行可
能とするもので、上記したデバッガの機能を利用する。In step S31, the program whose execution time is to be measured is specified by the execution control unit 1 so that the program can be executed in an environment where performance can be measured.
In other words, the program is arranged so that it can be executed in the debug mode, and the function of the above-mentioned debugger is used.
【0027】ステップS32において、上記設定したプ
ログラム内の実行時間の測定を開始する位置として測定
点XA25と終了する位置として測定点XB26を対応
するプログラムリストにあるアドレスを指定して設定す
る。In step S32, the measurement point XA25 is set as the position to start the execution time measurement in the set program and the measurement point XB26 is set as the end position by designating the addresses in the corresponding program list.
【0028】ステップS33ではプログラムの実行を開
始するように実行制御部1により指示する。プログラム
は通常の起動と同様入口点から実行を開始する。すなわ
ち、通常のプログラムの動作でのデータの初期設定等は
測定対象プログラムに備わった機能がそのまま動作す
る。ただし、実行モードは上記設定されたようにデバッ
グモードとなっているので測定対象プログラム300は
1命令実行毎に割り出しを発生するようになり、割り出
しにより性能測定部200に制御が渡ることになる。そ
こで、アドレスが上記設定した測定開始すべきところす
なわち測定点XA25に到達したか否かの検出を行う。In step S33, the execution control unit 1 gives an instruction to start the execution of the program. The program starts executing from the entry point, just like a normal start. That is, the functions provided in the measurement target program operate as they are for the initial setting of data in the normal operation of the program. However, since the execution mode is the debug mode as set above, the measurement target program 300 will generate an index each time one instruction is executed, and the performance measurement unit 200 will be controlled by the indexing. Therefore, it is detected whether or not the address has reached the set measurement start point, that is, the measurement point XA25.
【0029】ステップS34に示すように測定点XA2
5に到達したことを実行制御部1からオペレータに通知
され、操作端末21からオペレータが状態操作部2を操
作することが可能となる。As shown in step S34, the measurement point XA2
The execution control unit 1 notifies the operator that the number 5 has been reached, and the operator can operate the state operation unit 2 from the operation terminal 21.
【0030】オペレータはステップS35においてプロ
グラム環境の設定を変更することができる。ここで、状
態操作部2を利用してプログラムのメモリの内容などの
動作環境を設定し、プログラム上の意図した実行ルート
が動作するように準備する。The operator can change the setting of the program environment in step S35. Here, the operating environment such as the contents of the memory of the program is set by using the state operation unit 2, and preparation is made so that the intended execution route on the program operates.
【0031】また、上記設定した二つの測定点間の設定
したルートを実行するときに測定すべき測定項目をメニ
ューから選択する。メニューにはプログラム実行時間の
測定の他にダイナミックステップ数や実行したプログラ
ムのルートの測定があるがここでは実行時間の測定を指
定する。Further, a measurement item to be measured when executing the set route between the two set measuring points is selected from the menu. In addition to measuring the program execution time in the menu, the number of dynamic steps and the route of the executed program are measured, but here the measurement of the execution time is specified.
【0032】ステップS36において、性能測定をしな
がら、プログラムの実行を再開することを実行制御部1
に指示する。プログラムの実行にともない各命令の実行
の毎に制御が渡される性能測定部200では上記指定さ
れた性能測定項目に従い性能情報を収集して行く。ここ
ではプログラムの実行時間の測定を行うために各命令ご
との実行時間を時刻情報を読み取りながらプログラムの
実行に要した時間を測定して行く。同時に性能測定部2
00ではプログラムの実行アドレスが測定終了を示す測
定点XB26に到達したか否かを監視する。In step S36, the execution control unit 1 restarts the execution of the program while measuring the performance.
To instruct. The performance measurement unit 200, to which control is passed each time a command is executed as the program is executed, collects performance information according to the specified performance measurement items. Here, in order to measure the execution time of the program, the execution time of each instruction is measured while reading the time information to measure the time required to execute the program. At the same time, performance measurement unit 2
At 00, it is monitored whether or not the execution address of the program reaches the measurement point XB26 indicating the end of measurement.
【0033】ステップS37において測定点XBに到達
したときには実行制御部1からオペレータにその由通知
され、オペレータの指示待ちの状態になる。ステップS
38において、オペレータの判断により、データの設定
を変えることにより別のルートの実行時間の測定を行う
ようにするか、あるいは測定を終了することにするのか
を決めることになる。再度、測定を行うときは実行制御
部によりステップS32に移行する。When the measurement point XB is reached in step S37, the execution control unit 1 notifies the operator of the reason and waits for the operator's instruction. Step S
At 38, the operator decides whether to change the data setting to measure the execution time of another route or to end the measurement. When the measurement is performed again, the execution control unit moves to step S32.
【0034】性能測定部200の動作の説明に入る前
に、図4によりデバッグモードにおける割り出しの説明
を行う。測定対象プログラム300の図中には実行する
順序に命令を並べてある。すなわち、物理的なアドレス
の順ではなく分岐命令などで実行される順序が変わると
きには分岐先の命令を次に並べるようにしたものであ
る。Before entering the description of the operation of the performance measuring section 200, the indexing in the debug mode will be described with reference to FIG. In the figure of the measurement target program 300, the instructions are arranged in the order of execution. That is, when the execution order of a branch instruction or the like is changed instead of the physical address order, the branch destination instruction is arranged next.
【0035】A命令実行41の後では矢印のように割り
出しが発生し、測定対象プログラム300の命令の実行
は次に進まず、割り出しにより性能測定部200に制御
が渡る。性能測定部200での動作の詳細は図5、図6
により後述するが、本来の処理である性能測定処理では
測定内容により、あるいは測定データを外部記憶媒体に
格納するような時間を要するI/O動作が入ったりする
ことにより性能測定部200の処理に要する時間が一定
するものではなく、さらに測定対象プログラム300の
命令の実行ステップ数に比較して多くのステップが必要
となり、特に時間の測定においては何処で時計を記録す
るか注意が必要である。したがって、割り出し、復帰の
ためのレジスタなどの測定対象プログラム300の状態
の保存と復元を最小限に止め、時計の読み取りをできる
だけ入口部と出口部に近いところで行うようにして時間
の測定に供するようにしている。逆にこのようにしてお
けば性能測定処理45ではどの様な処理を行っても性能
測定の精度には影響を与えないようにできる。After the A instruction execution 41, indexing occurs as shown by the arrow, and the execution of the instruction of the measurement target program 300 does not proceed to the next, and control is passed to the performance measuring unit 200 by the indexing. Details of the operation of the performance measuring unit 200 are shown in FIGS.
As will be described later, the performance measurement process, which is the original process, causes the performance measurement unit 200 to perform the process depending on the measurement content or by the time-consuming I / O operation of storing the measurement data in the external storage medium. The time required is not constant, and more steps are required in comparison with the number of execution steps of the instruction of the measurement target program 300. In particular, in measuring the time, it is necessary to be careful where the clock is recorded. Therefore, saving and restoring the state of the measurement target program 300 such as a register for indexing and restoring is minimized, and reading of the clock is performed as close to the entrance and exit as possible so as to be used for time measurement. I have to. On the contrary, in this way, in the performance measurement processing 45, it is possible to prevent the accuracy of the performance measurement from being affected by any processing.
【0036】性能測定部200から復帰したときは、上
記したようにA命令41が実行された結果として次に実
行されるべき命令B42に制御が移る。B命令42が実
行されると上記と同様に割り出しにより性能測定部の先
頭に制御が移る。そして、性能測定処理45が終了する
と性能測定部200からC命令43に実行が戻り以下同
様に測定対象プログラム300の命令を実行して行く。When returning from the performance measuring unit 200, as a result of the execution of the A instruction 41 as described above, the control shifts to the instruction B42 to be executed next. When the B instruction 42 is executed, control is transferred to the head of the performance measuring unit by indexing as in the above. Then, when the performance measurement processing 45 ends, the performance measurement unit 200 returns to the C instruction 43, and thereafter, the instructions of the measurement target program 300 are similarly executed.
【0037】このように、測定対象プログラム300の
1命令実行の毎に割り出しにより、1命令毎に各種の性
能測定を進めることができる。図5と図6には性能測定
部の動作のフローチャート(その1、その2)を示す。
また、図7には性能測定処理に使用する測定情報記憶テ
ーブルの構成説明図を示してあり、これらを参照しなが
ら動作を説明する。As described above, various performances can be measured for each instruction by determining each execution of one instruction of the measurement target program 300. 5 and 6 are flowcharts (No. 1 and No. 2) of the operation of the performance measuring unit.
Further, FIG. 7 shows a configuration explanatory diagram of a measurement information storage table used for performance measurement processing, and the operation will be described with reference to these.
【0038】ステップS501では次のステップS50
2で行う時計を一次記憶するために必要な最低限のレジ
スタの保存を行う。ステップS502において割り出し
の発生する直前に実行した測定対象プログラムの命令の
実行終了時刻として時計を読み取り命令実行終了時刻と
して測定情報記憶テーブル72のTGに記憶する。次に
その他のレジスタ保存をステップS503で行い性能測
定部の本体の動作に進む。In step S501, the next step S50
Save the minimum number of registers necessary for the temporary storage of the clock performed in 2. In step S502, the clock is stored in the TG of the measurement information storage table 72 as the read instruction execution end time as the execution end time of the instruction of the measurement target program executed immediately before the indexing. Next, the other registers are saved in step S503, and the operation of the main body of the performance measuring unit proceeds.
【0039】先ず、測定情報記憶テーブル72のTBに
ある測定中フラグを調べる。測定中フラグは測定開始の
測定点XA25と測定終りの測定点XB26の間の測定
対象の部分の命令を実行しているのか否かを示すもの
で、測定対象部分での割り出し時にはONとしておくも
のである。First, the in-measurement flag in TB of the measurement information storage table 72 is checked. The in-measuring flag indicates whether or not the command of the part to be measured between the measurement start point XA25 and the measurement end point XB26 is being executed, and it is set to ON when indexing at the measurement target part. Is.
【0040】まだ、測定対象部分に入っていないときに
はステップS508でアドレスが測定点XAに到達した
か否かを判定する。測定点XAではないことがわかると
性能測定部200の本体の動作はなにもせずに測定対象
プログラム300に戻ることになるが、S511〜S5
13により割り出し元への復帰の手順としてレジスタの
復旧を行う必要がある。このように測定開始点に到達す
るまでは実質なにもせず測定開始点の検出のみを行って
いる。If the address has not reached the measurement target portion, it is determined in step S508 whether or not the address has reached the measurement point XA. If it is found that the measurement point is not at the measurement point XA, the operation of the main body of the performance measurement unit 200 is not performed and the process returns to the measurement target program 300.
It is necessary to restore the register as a procedure for returning to the indexing source by 13. Thus, until the measurement start point is reached, nothing is actually done and only the measurement start point is detected.
【0041】ステップS508において測定開始点に到
達したことを検出したときは、ステップS509に移り
測定中フラグTBをONとする。これにより、次に割り
出しにより性能測定部200に制御が渡ったときには性
能測定のデータが収集されることになる。When it is detected in step S508 that the measurement start point has been reached, the process proceeds to step S509 to set the measuring flag TB to ON. As a result, the performance measurement data will be collected when control is passed to the performance measurement unit 200 next by indexing.
【0042】ステップS510では制御が測定操作部1
00に移されオペレータに測定開始点に到達したことを
知らせ、オペレータの指示の入力待ちとなる。そこで、
意図するルートをプログラムが進むようにデータの確認
を行い変更すべきデータの設定を行う。必要な設定を確
認した後オペレータの指示で性能測定部200に再開の
ために制御が戻る。In step S510, the control is the measurement operation unit 1
00, the operator is informed that the measurement start point has been reached, and the operator waits for input of an instruction. Therefore,
Check the data so that the program can proceed on the intended route and set the data to be changed. After confirming the necessary settings, the control is returned to the performance measuring unit 200 for restarting according to the operator's instruction.
【0043】ステップS511以下は上記説明したよう
に測定対象プログラム300に戻る手順であるが、上記
で説明を省略したステップS512における時計の読み
取りは次に実行される測定対象プログラムの命令の実行
開始時刻として測定情報記憶テーブル72のTHに記憶
する。The procedure from step S511 onward is the procedure for returning to the measurement object program 300 as described above, but the reading of the clock in step S512, which has been omitted from the above description, is the execution start time of the instruction of the measurement object program to be executed next. Is stored in TH of the measurement information storage table 72.
【0044】次に、ステップS504に戻って割り出し
が発生したときに測定中フラグTBがONとなっていた
場合は性能測定中でありステップS505に移る。ま
ず、プログラム実行時間の測定のための処理としてステ
ップS505からステップS507までで各実行した命
令の開始と終了時刻の差を積算する処理を行う。Next, returning to step S504, if the in-measuring flag TB is ON when the indexing occurs, the performance is being measured and the process proceeds to step S505. First, as a process for measuring the program execution time, a process of integrating the difference between the start time and the end time of each executed instruction is performed in steps S505 to S507.
【0045】ステップS505では第1次命令実行時間
として今回の性能測定部200の先頭のステップS50
2で読み取った時刻、これは今回の割り出しの発生する
直前に実行した命令の実行終了時刻であり、これと前回
の性能測定部200の最後のステップS507で読み取
った時刻、すなわち前回の割り出しの発生した後実行し
た命令の実行開始時間との差である。この第1次命令実
行時間には実際に命令を実行した時間に加えて割り出し
のための時間、割り出し元にもどる時間が含まれてい
る。これらの時間は限られたレジスタの保存、復旧の時
間など予め測定した固定の値の時間であり測定情報記憶
テーブルのTKに割り出し処理時間という定数として記
憶されている。In step S505, the first instruction execution time is set as the first step S50 of the performance measuring unit 200 at this time.
The time read in 2 is the execution end time of the instruction executed immediately before the occurrence of the current index, and this and the time read in the last step S507 of the performance measuring unit 200, that is, the occurrence of the previous index. This is the difference from the execution start time of the instruction executed after the execution. The primary instruction execution time includes not only the time when the instruction was actually executed, but also the time for indexing and the time for returning to the indexing source. These times are times of fixed values measured in advance such as limited register saving and restoration times, and are stored in TK of the measurement information storage table as constants of indexing processing time.
【0046】ステップS506では第2次命令実行時間
として上記の補正を行ったものを算出しテーブルのTJ
に記憶している。ステップS507では測定中の間すな
わち測定中フラグTBがONの間について第2次命令実
行時間TJを積算して、測定中に実行した命令のトータ
ルのプログラム実行時間としてテーブルのTLに記憶し
ている。In step S506, the value obtained by performing the above correction is calculated as the secondary command execution time, and the TJ of the table is calculated.
I remember. In step S507, the secondary command execution time TJ is accumulated during measurement, that is, while the measurement flag TB is ON, and is stored in TL of the table as the total program execution time of the commands executed during measurement.
【0047】ステップS601では測定項目としてダイ
ナミックステップのカウントが必要か、測定条件を確認
し、必要なときは測定情報記憶テーブルのTMにカウン
トするようになっている。In step S601, whether the measurement of dynamic steps is required as a measurement item is checked, and the measurement condition is confirmed. When it is necessary, the TM is counted in the measurement information storage table.
【0048】ルートトレースについても同様にステップ
S603で要否を判定して、必要ならステップS604
とステップS605において測定情報記憶テーブルのT
Oにあるルートトレースレコード74に測定対象プログ
ラム300の実行した命令のアドレス情報と命令コード
を対にして累積して記憶する。記録するレコード74が
いっぱいになったら測定データ格納部10に書き出して
格納するようにしている。Similarly for the route trace, whether or not it is necessary is determined in step S603, and if necessary, step S604.
And in the measurement information storage table T in step S605.
The address trace information and the instruction code of the instruction executed by the measurement target program 300 are accumulated and stored in the route trace record 74 in O as a pair. When the record 74 to be recorded becomes full, the record 74 is written and stored in the measurement data storage unit 10.
【0049】測定対象項目の処理が終了したときステッ
プS606においてアドレスが測定点XBと一致したと
きには測定終了とし、測定を続行するときにはステップ
S511から測定対象プログラム300に戻る処理を行
う。When the processing of the item to be measured is completed, the measurement is ended when the address coincides with the measurement point XB in step S606, and when the measurement is continued, the process of returning from step S511 to the program 300 to be measured is performed.
【0050】測定終了の処理はステップS607で今回
の測定区間における測定データを測定データ格納部10
に記録するべく出力し、後刻、データ解析部23で処理
加工が行える様にしておく。In the measurement end processing, the measurement data in the current measurement section is stored in the measurement data storage unit 10 in step S607.
The data is output so that it can be recorded in the data analysis section 23 and can be processed later by the data analysis section 23.
【0051】ステップS608で測定中フラグをOFF
として、ステップS609で測定操作部100に制御を
移行し、オペレータの指示による新たな測定点の設定を
行う。このとき、新たな測定のための測定情報記憶テー
ブル72の初期設定が行われる。ステップS511に移
りレジスタの復旧を行って新たに測定対象プログラムの
実行に戻る。The measuring flag is turned off in step S608.
As a result, in step S609, control is transferred to the measurement operation unit 100, and a new measurement point is set according to an operator's instruction. At this time, the measurement information storage table 72 for new measurement is initialized. In step S511, the registers are restored and the measurement target program is newly executed.
【0052】以上のようにして任意の区間について設定
したデータによって定まるルートを測定対象プログラム
300を実行させながら指定した性能項目のデータを測
定することができる。 〔その他の実施例〕上記実施例においては性能測定項目
として、プログラム実行時間、ダイナミックステップ
数、ルートトレースを例にあげたがこれ以外に、1命令
毎に状態を監視し、指定した状態に基づいて性能情報を
記憶したり、情報処理を行うような任意の性能測定を行
うようにしてもよい。As described above, it is possible to measure the data of the specified performance item while executing the measurement target program 300 on the route determined by the data set for the arbitrary section. [Other Embodiments] In the above embodiments, the performance measurement items are the program execution time, the number of dynamic steps, and the route trace, but in addition to this, the status is monitored for each instruction and based on the specified status. The performance information may be stored or arbitrary performance measurement such as information processing may be performed.
【0053】1命令の実行時間の測定を割り出し元に戻
る時刻と割り出しの時刻を時計を読み取る様にして行っ
ているが、これをタイマー等他の計時手段を用いてもよ
いし、割り出し、復帰に伴う処理時間の補正を1命令毎
に行っているが、これを測定した命令数を用いて一括し
て補正してもよい。Although the execution time of one instruction is measured by reading the clock at the time of returning to the indexing source and the time of indexing, other time measuring means such as a timer may be used, or indexing and restoration may be performed. Although the correction of the processing time is performed for each instruction, it may be corrected collectively by using the measured number of instructions.
【0054】また、測定操作部で測定範囲の指定やデー
タの設定を操作端末からのオペレータの操作によって行
うようにしているが、従来技術として行われているよう
に、オペレータにより与えるデータの操作やコマンド操
作を自動的にシステムで発生させ、性能測定の連続自動
測定を行うようにしてもよい。Further, although the measurement range is specified and the data is set by the operation of the operator from the operation terminal in the measurement operation unit, the operation of the data given by the operator and the operation of the data given by the operator are performed as in the prior art. A command operation may be automatically generated by the system to perform continuous automatic measurement of performance measurement.
【0055】[0055]
【発明の効果】以上の説明から明らかなように本発明に
よればプログラムの性能測定における環境準備を容易に
し、各実行ルート専用のドライバプログラムを作成せず
に測定を実施でき、また、各種の性能項目についても時
間測定と同時に柔軟に測定ができる性能測定手段を提供
し、コンピュータを利用した情報処理システムの性能向
上と信頼性向上、さらにはシステム構築の生産性向上
等、という著しい工業的効果がある。As is apparent from the above description, according to the present invention, it is possible to easily prepare an environment for measuring the performance of a program, perform the measurement without creating a driver program dedicated to each execution route, and perform various measurements. Providing a performance measurement means that can measure performance items flexibly at the same time as time measurement, and improve the performance and reliability of information processing systems that use computers, and further improve the productivity of system construction. There is.
【図1】 本発明の構成図FIG. 1 is a block diagram of the present invention.
【図2】 本発明の実施例の構成図FIG. 2 is a configuration diagram of an embodiment of the present invention.
【図3】 本発明の実施例の操作フローチャートFIG. 3 is an operation flowchart of an embodiment of the present invention.
【図4】 デバッグモードにおける割り出しの説明図FIG. 4 is an explanatory diagram of indexing in debug mode.
【図5】 性能測定部の動作のフローチャート(その
1)FIG. 5 is a flowchart (part 1) of the operation of the performance measuring unit.
【図6】 性能測定部の動作のフローチャート(その
2)FIG. 6 is a flowchart (No. 2) of the operation of the performance measuring unit.
【図7】 測定情報記憶テーブルの構成説明図FIG. 7 is an explanatory diagram of the configuration of a measurement information storage table.
1 実行制御手段 2 状態操作手段 5 性能測定制御部 6 命令実行時間収集手段 7 ダイナミックステップ測定手段 8 ルートトレース測定手段 9 プログラム実行時間測定手段 10 測定情報格納部 100 測定操作部 200 性能測定部 300 デバッグモードプログラム実行環境部 DESCRIPTION OF SYMBOLS 1 Execution control means 2 State operation means 5 Performance measurement control section 6 Instruction execution time collection means 7 Dynamic step measurement means 8 Route trace measurement means 9 Program execution time measurement means 10 Measurement information storage section 100 Measurement operation section 200 Performance measurement section 300 Debug Mode program execution environment section
Claims (8)
発生するデバッグモードを有するコンピュータのプログ
ラムの性能測定装置であって、 測定対象プログラムを上記デバッグモードで実行し、上
記発生する割り出しにより制御を移される性能測定部が
割り出し元に制御を戻すとき計時を開始し、上記測定対
象プログラムの1命令の実行後発生する割り出しにより
制御が移されるとき計時を終了して上記1命令の実行時
間として一時記憶する命令実行時間収集手段と、 上記一時記憶した1命令の実行時間を上記測定対象プロ
グラムの測定開始から測定終了までに実行する命令につ
いて積算して記憶するプログラム実行時間測定手段と、
を備えることを特徴とするプログラムの性能測定装置。1. A performance measuring apparatus for a program of a computer having a debug mode for generating an index each time a program instruction is executed, wherein a program to be measured is executed in the debug mode, and control is transferred by the index generated. When the performance measurement unit returns control to the indexing source, time counting is started, and when control is transferred by indexing that occurs after execution of one instruction of the measurement target program, time counting is ended and the execution time of the one instruction is temporarily stored. Instruction execution time collecting means, and program execution time measuring means for accumulating and storing the execution time of the temporarily stored one instruction for the instructions to be executed from the measurement start to the measurement end of the measurement target program,
An apparatus for measuring performance of a program, comprising:
回数を計数して記憶するダイナミックステップ測定手段
を追加して備えることを特徴とする請求項1のプログラ
ムの性能測定装置。2. The performance measuring device for a program according to claim 1, further comprising a dynamic step measuring means for counting and storing the number of times each time the control is transferred by the indexing.
測定対象プログラムの実行する命令のアドレスおよびコ
ードを時系列で記憶するルートトレース測定手段を追加
して備えることを特徴とする請求項1あるいは請求項2
のプログラムの性能測定装置。3. The method according to claim 1, further comprising a route trace measuring means for storing, in time series, an address and a code of an instruction executed by the measurement target program each time control is transferred by the indexing. Item 2
Program performance measuring device.
る命令と測定を終了する命令をアドレスで指定し、上記
測定対象プログラムを起動し、上記起動されたプログラ
ムが上記指定した測定開始命令の実行に到ったとき上記
プログラムの実行を中断し、上記中断したプログラムの
実行を再開する実行制御手段と、 上記測定対象プログラムが実行を中断したとき、上記中
断したプログラムの実行ルートを決定するデータの設定
を行う状態操作手段と、を追加して備えることを特徴と
する請求項1、請求項2あるいは請求項3のプログラム
の性能測定装置。4. An instruction for starting measurement and an instruction for ending measurement of the measurement target program are designated by addresses, the measurement target program is activated, and the activated program executes the designated measurement start instruction. Execution control means for interrupting the execution of the program when it reaches and restarting the execution of the interrupted program, and setting of data for determining the execution route of the interrupted program when the measurement target program interrupts the execution 4. The performance measuring device for a program according to claim 1, 2 or 3, further comprising a state operating means for performing.
発生するデバッグモードを有するコンピュータのプログ
ラム性能測定方法であって、 測定対象プログラムを上記デバッグモードで実行し、上
記発生する割り出しにより制御を移される性能測定部が
割り出し元に制御を戻すとき計時を開始し、上記測定対
象プログラムの1命令の実行後発生する割り出しにより
制御が移されるとき計時を終了して命令実行時間とし、 上記命令実行時間を上記測定対象プログラムの測定開始
から測定終了までに実行する命令について積算し、上記
測定対象プログラムの実行時間とすることを特徴とする
プログラムの性能測定方法。5. A method for measuring program performance of a computer having a debug mode for generating an index each time a program instruction is executed, wherein a measurement target program is executed in the debug mode, and control is transferred by the generated index. When the performance measurement unit returns control to the indexing source, timing is started, and when control is transferred by indexing that occurs after the execution of one instruction of the measurement target program, the timing is ended and the instruction execution time is set as the instruction execution time. A method of measuring performance of a program, characterized in that instructions to be executed from the measurement start to the measurement end of the measurement target program are added up to obtain an execution time of the measurement target program.
測定対象とする命令の数を計数することを追加すること
により測定対象プログラムのダイナミックステップ数を
測定することを特徴とする請求項5のプログラムの性能
測定方法。6. The program according to claim 5, wherein the number of dynamic steps of the measurement target program is measured by adding counting the number of instructions to be measured each time control is transferred by the indexing. Performance measurement method.
測定対象プログラムの実行する命令のアドレスおよびコ
ードを時系列で記憶することを追加することにより、ル
ートトレースを測定することを特徴とする請求項5ある
いは請求項6のプログラムの性能測定方法。7. The route trace is measured by adding the time-series storage of the address and code of the instruction executed by the measurement target program each time the control is transferred by the indexing. 5. The program performance measuring method according to claim 5 or claim 6.
る命令と測定を終了する命令をアドレスで指定し、上記
測定対象プログラムを起動し、上記起動されたプログラ
ムが上記指定した測定開始の命令の実行に到ったとき上
記プログラムの実行を中断し、上記中断したプログラム
の実行ルートを決定するデータの設定を行い上記中断し
たプログラムの実行を再開するようにすることを特徴と
する請求項5、請求項6あるいは請求項7のプログラム
の性能測定方法。8. An instruction to start measurement and an instruction to end measurement of the measurement target program are specified by addresses, the measurement target program is activated, and the activated program executes the designated measurement start instruction. 6. The execution of the program is interrupted when the time reaches, and data for determining the execution route of the interrupted program is set to restart the execution of the interrupted program. A method of measuring performance of a program according to claim 6 or claim 7.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18262395A JP3389745B2 (en) | 1995-07-19 | 1995-07-19 | Apparatus and method for measuring program performance |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18262395A JP3389745B2 (en) | 1995-07-19 | 1995-07-19 | Apparatus and method for measuring program performance |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0934754A true JPH0934754A (en) | 1997-02-07 |
JP3389745B2 JP3389745B2 (en) | 2003-03-24 |
Family
ID=16121531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18262395A Expired - Fee Related JP3389745B2 (en) | 1995-07-19 | 1995-07-19 | Apparatus and method for measuring program performance |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3389745B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6983453B2 (en) | 2001-08-30 | 2006-01-03 | International Business Machines Corporation | Method and system for obtaining performance data from software compiled with or without trace hooks |
WO2012023318A1 (en) * | 2010-08-17 | 2012-02-23 | 富士フイルム株式会社 | Image processing device, image processing method, image processing program, and recording medium |
US8543989B2 (en) | 2008-10-07 | 2013-09-24 | Fujitsu Limited | Program evaluation apparatus and program evaluation method |
US20140089941A1 (en) * | 2012-09-26 | 2014-03-27 | International Business Machines Corporation | Dynamic performance data collection in large computer servers |
KR20200084229A (en) * | 2019-01-02 | 2020-07-10 | 엘에스일렉트릭(주) | The method of scan division processing the PLC instruction |
-
1995
- 1995-07-19 JP JP18262395A patent/JP3389745B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6983453B2 (en) | 2001-08-30 | 2006-01-03 | International Business Machines Corporation | Method and system for obtaining performance data from software compiled with or without trace hooks |
US8543989B2 (en) | 2008-10-07 | 2013-09-24 | Fujitsu Limited | Program evaluation apparatus and program evaluation method |
WO2012023318A1 (en) * | 2010-08-17 | 2012-02-23 | 富士フイルム株式会社 | Image processing device, image processing method, image processing program, and recording medium |
US20140089941A1 (en) * | 2012-09-26 | 2014-03-27 | International Business Machines Corporation | Dynamic performance data collection in large computer servers |
US8904412B2 (en) * | 2012-09-26 | 2014-12-02 | International Business Machines Corporation | Dynamic performance data collection in large computer servers |
KR20200084229A (en) * | 2019-01-02 | 2020-07-10 | 엘에스일렉트릭(주) | The method of scan division processing the PLC instruction |
Also Published As
Publication number | Publication date |
---|---|
JP3389745B2 (en) | 2003-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5845064A (en) | Method for testing and verification of a CPU using a reference model | |
US20150006961A1 (en) | Capturing trace information using annotated trace output | |
JP3206641B2 (en) | Microcomputer system debugging method, debugging device, and recording medium recording debug program | |
JP3389745B2 (en) | Apparatus and method for measuring program performance | |
CA2492367C (en) | Data processing system | |
CN112527571B (en) | CPU instruction set coverage rate calculation method and device | |
JPH02220145A (en) | Program tracing system | |
CN114116291B (en) | Log detection method, log detection device, computer device and storage medium | |
JP2006202102A (en) | Simulation apparatus | |
JP2022068566A (en) | Test coverage update program, test coverage update method, and information processing apparatus | |
US20130007528A1 (en) | Using reverse time for coverage analysis | |
JP2775830B2 (en) | Instruction frequency measurement method | |
JPH03119436A (en) | Microinstruction address tracer | |
JP2001051872A (en) | Program debugging device and recording medium where program is recorded | |
JPS6324425A (en) | Test comprehensive state detection system | |
JPH0269837A (en) | Program debug support device | |
JPH05257741A (en) | Executing performance measurement system for program | |
JPH02242440A (en) | Instruction trace circuit | |
JP2001134464A (en) | Method and device for processing information | |
CN116594750A (en) | Function call collection method, device, equipment, storage medium and product | |
JPH0358144A (en) | System for gathering program run history information | |
JPS63289654A (en) | Program branching instruction monitoring system | |
JPH0443405A (en) | Method and device for recurrently checking moving route in numerical controller | |
JPH04302001A (en) | Programmable controller | |
JPS6112295B2 (en) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20021217 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080117 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090117 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100117 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110117 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110117 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120117 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |