JPS62245443A - Measuring method for execution time of program - Google Patents
Measuring method for execution time of programInfo
- Publication number
- JPS62245443A JPS62245443A JP61089610A JP8961086A JPS62245443A JP S62245443 A JPS62245443 A JP S62245443A JP 61089610 A JP61089610 A JP 61089610A JP 8961086 A JP8961086 A JP 8961086A JP S62245443 A JPS62245443 A JP S62245443A
- Authority
- JP
- Japan
- Prior art keywords
- module
- time
- execution time
- execution
- program
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 14
- 238000005259 measurement Methods 0.000 claims abstract description 27
- 238000007781 pre-processing Methods 0.000 claims description 7
- 238000012805 post-processing Methods 0.000 claims description 6
- 238000000691 measurement method Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 239000000284 extract Substances 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101001053641 Homo sapiens Plasma serine protease inhibitor Proteins 0.000 description 1
- 102100024078 Plasma serine protease inhibitor Human genes 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、磁子計算機におけるプログラムの実行時間
の測定方法に関するものである。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a method for measuring the execution time of a program in a magnetic computer.
柩子計算懺におけるプログラムの実行時間をプログラム
モジュール毎に測定するためには、従来は測定対象とな
るプログラムを表わすソースプログラムに対し、計時機
構から時間データを取り出す手続きを呼び出すためのプ
ログラムステップを加えていた。In order to measure the program execution time for each program module in a computer system, conventionally, a program step was added to the source program representing the program to be measured to call a procedure to retrieve time data from the clock mechanism. was.
第7図は従来の方法を示すフォーマット図で、図におい
て(70)は測定対象となるプログラムモジュールでソ
ースプログラムとして表わされており、被測定ソースプ
ログラムという。その名称は5UBROUTINE 5
UBIとして表わされる。(71)、(72)。FIG. 7 is a format diagram showing a conventional method. In the figure, (70) is a program module to be measured, which is expressed as a source program and is referred to as a source program to be measured. Its name is 5UBROUTINE 5
Expressed as UBI. (71), (72).
(73)、(79)はこのモジュール5LJB 1の本
来の構成であり、(71)と(73)の内容は省略して
あり、(71)と(73)との間に(72)として示さ
れる下位サブルーチンSUB 2へ分岐し、(79)に
おいてこのモジュールSUB 1を終る。(73) and (79) are the original configuration of this module 5LJB 1, the contents of (71) and (73) are omitted, and (72) is shown between (71) and (73). The module SUB 1 is then branched to a lower subroutine SUB 2, and the module SUB 1 is ended at (79).
(74)、(75)、(76)、(77)、(78)は
モジュール5UBIの実行時間を測定するために付加さ
れたステップで、(74)、(75)、(76)、(7
7)のCALL TI部は計時機構からその時点の時間
データを取り出し、その取り出したデータをそれぞれア
ドレスT1.T2.T3.T4においてメモリに格納す
る命令を表わし、(以下の説明I:おいては、Tl、T
2.T3.T4を以て各アドレス位置(;格納されてい
るデータである変数をも示すこと)二する)、ステップ
(78]ま実行時間の計算処理を示す。(74), (75), (76), (77), and (78) are steps added to measure the execution time of module 5UBI.
The CALL TI section of 7) extracts the time data at that point from the clock mechanism, and sends the extracted data to addresses T1. T2. T3. T4 represents an instruction to be stored in memory (in the following explanation I, Tl, T
2. T3. T4 indicates each address position (also indicates a variable that is stored data) and step (78) to calculate the execution time.
被測定ソースプログラム(70)はステップ(74)シ
:より取り出される時間データT1時点に始まり、ステ
ップ(77)により取り出される時間データ14時点で
終るが、T1→T4の間ζ:は下位サブルーチンSUB
2 (72)が実行されるためステップ(75)と(
76)により下位サブルーチン5UB2 (72)の実
行に必要な時間を測定し、被測定ソースプログラム(7
0)の実行時間の正味の合計時間TTIMEはTTI避
+(T4− T3)十(1’2−TI)とし、変数實I
廊をアドレスTTIMEのメモリに格納する。The measured source program (70) starts at the time point T1 of the time data retrieved from step (74) and ends at the time point 14 of the time data retrieved from step (77), but between T1 and T4, the lower subroutine SUB
2 (72) is executed, so steps (75) and (
76), the time required to execute the lower subroutine 5UB2 (72) is measured, and the time required to execute the lower subroutine 5UB2 (72) is measured.
The net total execution time TTIME of 0) is TTI + (T4 - T3) + (1'2 - TI), and the variable I
TTIME is stored in memory at address TTIME.
〔発明が解決しようとする問題点3
以上のように従来の実行時間測定方法ではソースプログ
ラムとして表わされた測定対象モジュールに対し、実行
開始点、実行終了点及び外部手続き呼び出しの前後に、
時間計測手続の呼び出しCALL TIMEを挿入し、
また、計測結果を集計する処理を行うTTIME =を
挿入してソースプログラムの修正を行う必要があり、こ
の処理を人手で行わねばならぬので、面倒であるという
問題点かありた。[Problem to be Solved by the Invention 3] As described above, in the conventional execution time measurement method, for the measurement target module expressed as a source program, the execution start point, execution end point, and before and after external procedure calls are determined.
Insert the time measurement procedure call CALL TIME,
In addition, it is necessary to modify the source program by inserting TTIME=, which performs the process of summing up the measurement results, and this process has to be performed manually, which is a problem.
この発明は上記のような問題点を′wf決するためl:
なされたもので、ソースプログラムの修正を必要としな
い実行時間測定方法を得ることを目的とする。This invention solves the above problems by:
The purpose of this invention is to obtain a method for measuring execution time that does not require modification of the source program.
この発明の方法では、ソースプログラムから目的プログ
ラムを作成するコンパイラによって、プログラムを構成
するモジュールの実行コードの開始点と終了点に時間計
測ルーチンの呼び出しを自動的に挿入するとともに、サ
ブルーチン呼び出しの入れ子関係を認識して測定対象モ
ジュールごとの正味の実行時間の計算処理を容易するた
め、上位モジュール識別機構を設けることCニした。In the method of this invention, a compiler that creates a target program from a source program automatically inserts calls to a time measurement routine at the start and end points of the execution code of modules that make up the program, and also In order to facilitate the calculation of the net execution time for each module to be measured by recognizing the above, it was decided to provide an upper module identification mechanism.
この発明ζ:おけるコンパイラはソースプログラムを目
的プログラムに翻訳する際、谷モジュールの実行コード
の前後に時間測定ルーチンの呼び出しのステップを挿入
する。モジュールの入口及び出口が複数個あるモジュー
ルの場合C二は、各々の入口及び出口で時間測定ルーチ
ンの呼び出しを挿入する。時間測定ルーチンは、測定対
象モジュールの実行開始から実行終了までの時間を計測
するとともに、上位モジュール識別機構を用いて測定対
象モジュールが上位のモジュールから呼び出されている
場合、当該上位モジュールの実行時間から上記測定対象
モジュールの実行時間を除去する処理を行なう。When the compiler in this invention ζ: translates a source program into a target program, it inserts steps for calling a time measurement routine before and after the execution code of the valley module. In the case of a module having multiple module entrances and exits, C2 inserts a call to a time measurement routine at each entrance and exit. The time measurement routine measures the time from the start of execution to the end of execution of the module to be measured, and if the module to be measured is called from a higher module using the upper module identification mechanism, it calculates the time from the execution time of the upper module. A process is performed to remove the execution time of the module to be measured.
以下この発明の実施例を図面について説明する。 Embodiments of the present invention will be described below with reference to the drawings.
第1図はこの発明の一実施例を示す説明図で、図におい
て(1)はソースプログラム、(2)はソースプログラ
ム中の1個のモジュール、(3)はコンパイラ、(4)
は目的プログラム、(5)は目的プログラム中の1個の
モジュールでソースプログラム(1)中のモジュール唸
)が目的プログラム(4)中のモジュール(5)に翻訳
されるとし、モジュール(5)は+61 、 +71
、18) 、 19)のステップから構成され、(6)
はモジュール(5)の目的プログラムの実行開始点にコ
ンパイラ(31が挿入した実行時間測定前処理ルーチン
LIBAの呼び出しステップであり、(7)は当該モジ
ュールを識別するためにコンパイラ(3)が出力したモ
ジュール名である。(8)はモジュール(5)の本来の
実行命令コードであり、ソースプログラム(1茅のモジ
ュール(2)が目的プログラムとして翻訳されたもので
ある。(9)は実行命令コード(8)の実行終了点にコ
ンパイラ(3)が挿入した実行時間測定後処理ルーチン
LIBBの呼び出しステップである。FIG. 1 is an explanatory diagram showing one embodiment of the present invention, in which (1) is a source program, (2) is one module in the source program, (3) is a compiler, and (4) is a source program.
is the target program, (5) is one module in the target program, and module (1) in the source program (1) is translated into module (5) in the target program (4), and module (5) is +61, +71
, 18), 19), and (6)
is the call step of the execution time measurement preprocessing routine LIBA inserted by the compiler (31) at the execution start point of the target program of module (5), and (7) is the step that is output by the compiler (3) to identify the module. This is the module name. (8) is the original execution instruction code of module (5), and the source program (1) module (2) has been translated as the target program. (9) is the execution instruction code This is the step of calling the execution time measurement post-processing routine LIBB inserted by the compiler (3) at the execution end point of (8).
また、(10)はステップ(6)によって呼び出される
ルーチンLIBA 、 (11)はステップ(9)シ
:よって呼び出されるルーチンLIBB 、 (12
)は計時機構、(13)は上位モジュール識別機構、(
14)は目的プログラム(4)の全モジュール;:関す
る時間情報を記憶するための実行時間記憶機構である。Also, (10) is the routine LIBA called by step (6), (11) is the routine LIBB called by step (9), (12
) is the clock mechanism, (13) is the upper module identification mechanism, (
14) is an execution time storage mechanism for storing time information related to all modules of the target program (4).
第2図は第1図(;示す上位モジュール識別機構(13
)と実行時間記憶機構(14)の構成を示す説明図であ
る。第2図において第1図と同一符号は同一部分を示し
、(13a)はモジュールの入れ子状態を示すスタック
であり、(13b)はスタック(13a)への最新エン
トリを示すスタックポインタである。Figure 2 shows the upper module identification mechanism (13) shown in Figure 1 (;
) and an explanatory diagram showing the configuration of an execution time storage mechanism (14). In FIG. 2, the same reference numerals as in FIG. 1 indicate the same parts, (13a) is a stack indicating the nested state of modules, and (13b) is a stack pointer indicating the latest entry to the stack (13a).
スタック(13a)中の各エントリには実行時間記憶機
m (14)の各エントリへのポインタが記憶されてお
す、P□〜P1が(14)へのエントリを示すが、P□
が最上位モジュールへのポインタを示し% Pi が
最下位モジュールへのポインタを示す。Pi−0はP、
の直接の上位モジュールへのポインタを示す。Each entry in the stack (13a) stores a pointer to each entry in the execution time memory m (14). P□ to P1 indicate entries to (14), and P□
indicates a pointer to the top module, and % Pi indicates a pointer to the bottom module. Pi-0 is P,
indicates a pointer to the immediate upper module.
実行時間記憶機構(14)の各エントリに記憶される内
容はエンド!j p、2t:対する分だけを示しである
が、(14a)はモジュール名の格納領域でMODIK
Nmで示し、(14b)はモジュール実行開始時間格納
領域で5TART TIME で示し、(14e)はモ
ジュール実行時間格納領域でMODaE TIMEで示
し、 (14d)は下位モジュール実行時間格納領域
で5UBROUTINE TI部で示す。The contents stored in each entry of the execution time storage mechanism (14) are END! j p, 2t: Only the corresponding part is shown, but (14a) is the storage area for the module name and MODIK
(14b) is the module execution start time storage area and is shown as 5TART TIME, (14e) is the module execution time storage area and is shown as MODaE TIME, (14d) is the lower module execution time storage area and is shown in 5UBROUTINE TI section. show.
第3図は第1図;:示すLIBA (10) !=おけ
る動作を示すフローチャート、第4図は第1図に示すL
IBB(11)における動作を示すフローチャートであ
り、これらの図で(30)〜(39)及び(40)〜(
46)はそれぞれのステップである。Figure 3 is Figure 1: shows LIBA (10)! 4 is a flowchart showing the operation at L shown in FIG. 1.
This is a flowchart showing the operation in IBB (11), and in these figures, (30) to (39) and (40) to (
46) are each step.
第5図はこの発明の方法による実行時間の測定例を示す
説明図、第6図はプログラムの実行により上位モジュー
ル識別機構(13)と実行時間記憶機構(14)とシニ
おける情報のに遷を示す説明図で、第5図及び第6図に
おいて2J!、1図、第2図及び第7図と同一符号は同
−又は相当部分を表わす。FIG. 5 is an explanatory diagram showing an example of measuring execution time using the method of the present invention, and FIG. 6 shows the transition of information between the upper module identification mechanism (13), the execution time storage mechanism (14), and the synchronizer by program execution. In the explanatory diagram shown in FIGS. 5 and 6, 2J! , 1, 2, and 7 represent the same or equivalent parts.
以下、第2図乃至第6図を用いてこの発明の方法の動作
を説明する。The operation of the method of the present invention will be explained below with reference to FIGS. 2 to 6.
2J!1図のCALL LIBA 161でI、IBA
(10) が呼び出されると(第3図ステップ(3
0) )ステップ(7)のモジュール名を抽出しくモジ
ュール名がPエ であるとする)実行時間記憶機構(1
4)をサーチする(ステップ(31) )。このモジュ
ール名が登録済ならステップ(35)にうつり当該エン
トリへのポインタなP工とするが、登録未済ならステッ
プ(33) 、 (34)により登録を済せた後ステッ
プ(36) 、 (37) 、 (38)を実行する。2J! CALL LIBA 161 in Figure 1, IBA
(10) When is called (Figure 3 step (3)
0)) To extract the module name of step (7), assume that the module name is P) Execution time storage mechanism (1
4) (step (31)). If this module name has been registered, go to step (35) and set it as a pointer to the entry, but if it has not been registered, register it in steps (33) and (34), and then go to steps (36) and (37). ), execute (38).
これは第5図■のm点、第6図■に対応し、スタックポ
インタ(13b)にはP工へのエントリが設定され、実
行時間記憶機構(14)のMODUL、ENAME(1
4a)にはP□に相当するPRUC1が、STMTTI
ME(14b)にはTIが書込まれる。This corresponds to point m in Figure 5 (■) and Figure 6 (■), where the stack pointer (13b) is set with an entry to P, and the execution time storage mechanism (14) MODUL, ENAME (1) is set.
In 4a), PRUC1 corresponding to P□ is STMTTI
TI is written to ME (14b).
次に、実行命令コード(8)の中に第7図(72)のC
ALI、 5UB2に対応する命令が入っていたとする
とこれは第5図■田はコに対応しSUB 21:対応す
るモジュール(モジュール名をP とする)に対する第
3図の各ステップが実行され(32)→(33)→(3
4)→(36)→(37)→(38)が実行される。こ
れは第6図■に相当しスタックポインタ(13b)には
plへのエントリの下へPへのエントリが設定され、実
行時間記憶機構(14)のエントリP2のWDDUI上
NAME (14a)にはPRo 2が、5TART
TIME (14b)にはT2が書き込まれる。次(二
、モジュールP2を出ると第4図(41)〜(4+)の
ステップが実行される。Next, in the execution instruction code (8), C
If the instruction corresponding to ALI, 5UB2 is contained, this corresponds to SUB21 in Figure 5, and each step in Figure 3 is executed for the corresponding module (the module name is P) (32). )→(33)→(3
4)→(36)→(37)→(38) are executed. This corresponds to Figure 6 (■), and the stack pointer (13b) is set with an entry for P below the entry for pl, and the NAME (14a) on the WDDUI of entry P2 in the execution time storage mechanism (14) is set. PRo 2 is 5TART
T2 is written to TIME (14b). Next (2) Upon exiting module P2, steps (41) to (4+) in FIG. 4 are executed.
これは第5図■、第6図■に相当し、ステップ(40)
のh24D TIIVJEとしてはT3が抽出され、ス
テップ(42)では実行時間記憶機構(14)内のエン
トリとしてP2が抽出され%P2 の欄では!6図■
に示すとおりMODUIJ TIMFI: (14(り
もSUH跪UTINE TI部(14d)も共に0であ
るからステップ(8)でMOI)ULg TIME (
:。This corresponds to Figure 5■ and Figure 6■, and step (40)
T3 is extracted as h24D TIIVJE, and in step (42), P2 is extracted as an entry in the execution time storage mechanism (14), and in the %P2 column! Figure 6■
MODUIJ TIMFI: (14 (MOI in step (8) since both Rimo SUH kneeling UTINE TI part (14d) are 0) ULg TIME (
:.
’I’3− T2が曹き込まれる。ステップ(44ンで
モジュールポインタ(13b)をP8にする。ステップ
(45)では、ステップ(43)で書込んだMODL几
E TIME T3−T2をモジュールPのSUB冊U
TINE Tl兇(14d)に蒼き込む。'I'3-T2 is added. In step (44), the module pointer (13b) is set to P8. In step (45), the MODL 几E TIME T3-T2 written in step (43) is set to the SUB book U of module P.
TINE Tl 兇 (14d) goes blue.
その次には、実行命令コード(8)の中に、災にCAL
L 5UB3という命令が入っていてこれが@5図■m
鎮Iのように分岐したとするとPROC3のモジュール
に対し第3図(31) 、 (32) 、 (33)
、 (34) 、 (35) 、 (36) 。Next, in the execution instruction code (8), there is a CAL
L There is an instruction called 5UB3, and this is @5 diagram m
If it is branched as shown in Section I, then for the PROC3 module, Figure 3 (31), (32), (33)
, (34), (35), (36).
(37) 、 (38)のステップが実行され第6図■
で示すようになり、第5図■でモジュールP3 を出
るとモジュールP3 に関し第4図ステップ(41)〜
(45)が実行され第6図■の如くなる。この場合P□
がエントリとなるモジュールの5UBROUTINE
TIME(14d)には第6図■のT3− T2にT
5− T4が加算される。次に第5図■Xの時点に到り
PROCIが終了するとモジュールP□ に関し第4図
のステップ(41)〜(45)が実行され、ステップ(
41)ではT6が抽出され、ステップ(42)でエント
リP□ が抽出され、ステップ(43)で(T1− T
6)−(T3− T2) −(Ts−T4)がTTIM
Eとして算出される。Steps (37) and (38) are executed as shown in Figure 6■
As shown in Figure 5, when exiting module P3 at ■, steps (41) to Figure 4 regarding module P3 are performed.
(45) is executed and the result is as shown in FIG. In this case P□
5UBROUTINE of the module whose entry is
TIME (14d) is T3-T2 in Figure 6 ■.
5- T4 is added. Next, when PROCI ends at point X in Figure 5, steps (41) to (45) in Figure 4 are executed for module P□, and step (
41), T6 is extracted, step (42) extracts the entry P□, and step (43) extracts (T1-T
6) - (T3 - T2) - (Ts - T4) is TTIM
Calculated as E.
なお、上記実施例ではモジュールの実行開始時刻の格納
領域(14b)及び下位モジュールの実行時間の格納領
域(14d)を実行時間記憶機構(14)円ζ装置いた
が、これらを上位モジュール識別機構(13)内心:記
憶してもよい。In the above embodiment, the storage area (14b) for the module execution start time and the storage area (14d) for the execution time of the lower module were provided by the execution time storage mechanism (14), but these were stored in the upper module identification mechanism (14). 13) Internally: May be memorized.
また、LIBA (10)、LIBB (11)によっ
て各モジュールの実行時間だけでなく、実行回数の計数
機構を設けることもできる。Furthermore, LIBA (10) and LIBB (11) can provide a mechanism for counting not only the execution time of each module but also the number of executions.
以上のようにこの発明I:よれば、実行時間測定ルーチ
ンの呼び出しをコンパイラが自動的に挿入するととも1
:、実行時間測定ルーチンにおいてモジュールの呼び出
しの入れ子関係を認識して上位モジュールの実行時間か
ら下位モジュールの実行時間を除外するよう(ニジたた
め、プログラムを構成する各モジュールの実行時間を、
ソースプログラムに修正を加えることなく、容易に測定
することができる。As described above, according to this invention I, when the compiler automatically inserts a call to the execution time measurement routine,
: In the execution time measurement routine, the nested relationship of module calls is recognized and the execution time of lower modules is excluded from the execution time of upper modules.
Measurements can be easily made without modifying the source program.
g1図はこの発明の一実施例を示す説明図、第2図は第
1図に示す上位モジュール識別機構と実行時間記憶機構
の構成を示す説明図、第3図は第1図4=示す実行時間
測定前処理ルーチンの動作を示すフローチャート、第4
図は第1図に示す実行時間測定後処理ルーチンの動作を
示すフローチャー)、第5図はこの発明の方法による実
行時間の測定例を示す説明図、第6図はプログラムの実
行により、第2図に示す上位モジュール識別機構と実行
時間記憶機構とにおける情報の変遷を示す説明図、第7
図は従来の方法を示す説明図。
(1)はソースプログラム、(3)はコンパイラ、(4
)は目的プログラム、(5)はモジュール、(61は実
行時間測定前処理ルーチンの呼び出し、(7)はモジュ
ール名、(8)は実行命令コード、(9)は実行時間測
定後処理ルーチンの呼び出し、(1のは実行時間測定前
処理ルーチン、(11)は実行時間測定後処理ルーチン
、(12)は計時機構、(13)は上位モジュール識別
機構、(14)は実行時間記憶機構。
尚、各図中同一符号は同−又は和尚部分を示す。Figure g1 is an explanatory diagram showing one embodiment of the present invention, Figure 2 is an explanatory diagram showing the configuration of the upper module identification mechanism and execution time storage mechanism shown in Figure 1, and Figure 3 is an explanatory diagram showing the configuration of the upper module identification mechanism and execution time storage mechanism shown in Figure 1. Flowchart showing the operation of the time measurement preprocessing routine, No. 4
The figure is a flowchart showing the operation of the execution time measurement post-processing routine shown in Fig. 1), Fig. 5 is an explanatory diagram showing an example of measuring the execution time by the method of the present invention, and Fig. 6 is a flowchart showing the operation of the execution time measurement post-processing routine shown in Fig. 1. Explanatory diagram showing the transition of information in the upper module identification mechanism and the execution time storage mechanism shown in Figure 2, No. 7
The figure is an explanatory diagram showing a conventional method. (1) is the source program, (3) is the compiler, (4
) is the target program, (5) is the module, (61 is the call to the execution time measurement preprocessing routine, (7) is the module name, (8) is the execution instruction code, and (9) is the call to the execution time measurement postprocessing routine. , (1 is the execution time measurement pre-processing routine, (11) is the execution time measurement post-processing routine, (12) is the clock mechanism, (13) is the upper module identification mechanism, and (14) is the execution time storage mechanism. The same reference numerals in each figure indicate the same or Buddhist parts.
Claims (1)
の実行時間を測定するプログラムの実行時間測定方法に
おいて、 上記ソースプログラムをコンパイラにより目的プログラ
ムに翻訳するに際して、ソースプログラムの各モジュー
ルごとに当該モジュールを識別するためのモジュール名
を付し、各モジュールの実行開始点に当該モジュールに
対する実行時間測定前処理ルーチンへの呼出し命令を挿
入し、各モジュールの実行終了点に当該モジュールに対
する実行時間測定後処理ルーチンへの呼出し命令を挿入
して上記目的プログラムを作成する段階、 上記目的プログラムを実行する計算機システムの記憶領
域内に実行時間記憶機構と上位モジュール識別機構とに
対する記憶領域を設ける段階、上記目的プログラムの実
行に当り、上記実行時間測定前処理ルーチンが呼び出さ
れたとき、当該モジュールのモジュール名が上記実行時
間記憶機構に登録済であるか登録未済であるかを検索し
、登録未済であれば新しくエントリを作成し、新エント
リへのポインタを定め、このポインタの示すエントリに
モジュール名を登録する登録段階、この登録段階の後、
又は既に登録済みのモジュールに対しては直ちに、当該
モジュールに対する実行時間記憶機構内のSTART
TIMEに上記計算機システムの計時機構から取り出し
た時刻を書き込み、当該モジュールに対するエントリを
上記上位モジュール識別機構の最新エントリとして登録
し、これに従って最新エントリを記憶するスタックポイ
ンタの内容を更新する段階、 上記目的プログラムの実行に当り、上記実行時間測定後
処理ルーチンが呼び出されたとき、上記計時機構から現
在の時刻をEND TIMEとして取り出し、(MOD
ULE TIME)=(END TIME)−(STA
RT TIME)−(SUBROUTINE TIME
)+(MODULE TIME)の演算によりMODU
LE TIMEを更新し、上記上位モジュール識別機構
の最新エントリを1つ前のエントリを指すように更新し
、上記更新したMODULE TIMEを1つ上位のモ
ジュールのSUBROUTINE TIMEに加算する
段階、 を備えたことを特徴とするプログラムの実行時間測定方
法。[Claims] In a program execution time measurement method that measures the execution time of each module of a source program, when the source program is translated into a target program by a compiler, the execution time of each module of the source program is measured. Add a module name to identify the module, insert a call instruction to the execution time measurement preprocessing routine for the module at the execution start point of each module, and insert a call instruction to the execution time measurement preprocessing routine for the module at the execution end point of each module. creating the objective program by inserting a call instruction to the processing routine; providing a storage area for an execution time storage mechanism and a higher-level module identification mechanism in a storage area of a computer system that executes the objective program; When the above execution time measurement preprocessing routine is called when executing a program, it is searched to see whether the module name of the module in question is registered in the above execution time storage mechanism or not, and if it is not registered. A registration stage where a new entry is created, a pointer to the new entry is set, and a module name is registered in the entry pointed to by this pointer. After this registration stage,
Or, for a module that has already been registered, immediately enter START in the execution time storage mechanism for that module.
writing the time taken out from the clock mechanism of the computer system into TIME, registering the entry for the module as the latest entry in the upper module identification mechanism, and updating the contents of the stack pointer that stores the latest entry accordingly; When the above-mentioned execution time measurement post-processing routine is called during program execution, the current time is retrieved from the above-mentioned clock mechanism as END TIME, and (MOD
ULE TIME) = (END TIME) - (STA
RT TIME)-(SUBROUTINE TIME)
) + (MODULE TIME)
LE TIME is updated, the latest entry of the upper module identification mechanism is updated to point to the previous entry, and the updated MODULE TIME is added to the SUBROUTINE TIME of the module one higher up. A method for measuring the execution time of a program characterized by the following.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61089610A JPS62245443A (en) | 1986-04-18 | 1986-04-18 | Measuring method for execution time of program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61089610A JPS62245443A (en) | 1986-04-18 | 1986-04-18 | Measuring method for execution time of program |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62245443A true JPS62245443A (en) | 1987-10-26 |
Family
ID=13975517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61089610A Pending JPS62245443A (en) | 1986-04-18 | 1986-04-18 | Measuring method for execution time of program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62245443A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0318939A (en) * | 1989-06-15 | 1991-01-28 | Yokogawa Electric Corp | In-circuit emulator |
JPH04215144A (en) * | 1990-12-13 | 1992-08-05 | Nec Corp | Execution time measuring system |
EP1732002A1 (en) * | 2005-06-10 | 2006-12-13 | Sap Ag | Calculating module runtimes on multiple platforms |
JP2008257287A (en) * | 2007-03-30 | 2008-10-23 | Ntt Data Corp | Program profiling device, program profiling method, and program |
JP2009187189A (en) * | 2008-02-05 | 2009-08-20 | Nec Corp | Stall detection device, stall detection method and stall detection program |
JP4905597B1 (en) * | 2011-03-15 | 2012-03-28 | オムロン株式会社 | Controller support device, controller support program to be executed in the device, and recording medium storing the program |
-
1986
- 1986-04-18 JP JP61089610A patent/JPS62245443A/en active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0318939A (en) * | 1989-06-15 | 1991-01-28 | Yokogawa Electric Corp | In-circuit emulator |
JPH04215144A (en) * | 1990-12-13 | 1992-08-05 | Nec Corp | Execution time measuring system |
EP1732002A1 (en) * | 2005-06-10 | 2006-12-13 | Sap Ag | Calculating module runtimes on multiple platforms |
JP2008257287A (en) * | 2007-03-30 | 2008-10-23 | Ntt Data Corp | Program profiling device, program profiling method, and program |
JP2009187189A (en) * | 2008-02-05 | 2009-08-20 | Nec Corp | Stall detection device, stall detection method and stall detection program |
JP4905597B1 (en) * | 2011-03-15 | 2012-03-28 | オムロン株式会社 | Controller support device, controller support program to be executed in the device, and recording medium storing the program |
WO2012124138A1 (en) * | 2011-03-15 | 2012-09-20 | オムロン株式会社 | Controller support device, controller support program to be executed in said device, and recording medium storing said program |
US10061281B2 (en) | 2011-03-15 | 2018-08-28 | Omron Corporation | Controller support device, method, and recording medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS62245443A (en) | Measuring method for execution time of program | |
JP3152178B2 (en) | Lock operation measurement method | |
JP4860564B2 (en) | Program profiling apparatus, program profiling method, and program | |
JP2004310186A (en) | Automatic journalization process, device for implementing it, its process program, and recording medium | |
JPH03210643A (en) | Task executing time measuring method | |
CN116185940B (en) | Atomic counter operation method, device, equipment and storage medium | |
JP2977951B2 (en) | Arithmetic unit | |
JP2765911B2 (en) | Data driven control method and compiling device | |
JPS6252898B2 (en) | ||
JP2749224B2 (en) | Performance analysis system for data driven programs | |
JPS638858A (en) | Style checking processing system for japanese document | |
JPH08297569A (en) | Source program correction supporting device | |
CN113537908A (en) | Processing method and device for settlement factors | |
CN114299143A (en) | Method and device for marking coordinate points in image | |
CN115879188A (en) | Method and device for generating climbing item material and manual prediction table | |
JPH05181712A (en) | Stack history forming system | |
JPS617944A (en) | Branch processing system of microcomputer | |
JPH08305601A (en) | Cpu individual standard decision method for computer device | |
JP2002091763A (en) | Development approval support system and storage medium | |
JPH0575841U (en) | Program converter | |
JPH1196017A (en) | Programmable controller system and its program preparing method | |
JPH03144730A (en) | Device for supporting reuse of program parts | |
JPH03286330A (en) | List output system | |
JPH04205063A (en) | Logical simulation method | |
JPS63148349A (en) | Cache memory positioning system |