JP2712142B2 - 実行時間測定方式 - Google Patents

実行時間測定方式

Info

Publication number
JP2712142B2
JP2712142B2 JP4038424A JP3842492A JP2712142B2 JP 2712142 B2 JP2712142 B2 JP 2712142B2 JP 4038424 A JP4038424 A JP 4038424A JP 3842492 A JP3842492 A JP 3842492A JP 2712142 B2 JP2712142 B2 JP 2712142B2
Authority
JP
Japan
Prior art keywords
execution time
procedure
program
measurement
execution
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.)
Expired - Fee Related
Application number
JP4038424A
Other languages
English (en)
Other versions
JPH05210536A (ja
Inventor
幸一 豊田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP4038424A priority Critical patent/JP2712142B2/ja
Publication of JPH05210536A publication Critical patent/JPH05210536A/ja
Application granted granted Critical
Publication of JP2712142B2 publication Critical patent/JP2712142B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムの実行開始
からのある時点までの実行時間を測定するシステム機能
を有する計算機システムにおいて、複数の手続きから構
成されるプログラムの手続き毎の実行時間測定方式に関
するものである。
【0002】
【従来の技術】従来、複数の手続きから構成されるプロ
グラムの手続き毎の実行時間測定の方式では、プログラ
ムの実行開始時点で実行時間測定のためのオーバヘッド
を測定し、その値で手続き毎の実行時間を補正してい
た。
【0003】
【発明が解決しようとする課題】従来の実行時間測定方
式には、測定中にシステムの負荷が変化した場合に、プ
ログラムの実行開始時点で測定した実行時間測定のため
のオーバヘッドも変化するためオーバヘッドの補正が正
しく行われず、実行時間が正しく測定できないという問
題がある。
【0004】本発明の目的はプログラムの手続き毎の実
行時間測定において測定によるオーバヘッドを除いた正
確な実行時間を測定する方式を提供することにある。
【0005】
【課題を解決するための手段】本発明の第1は、複数の
手続きから構成されるプログラムの手続き毎の実行時間
測定方式において、被測定対象のソースプログラムを入
力し、プログラムの実行開始時点でのオーバヘッド測定
ルーチンへのコール文と、手続きの入口での前処理ルー
チンへのコール文と、手続きの出口での後処理ルーチン
へのコール文と、プログラムの実行終了時点での実行時
間補正ルーチンへのコール文とを挿入した測定用プログ
ラム生成手段と、前記測定用プログラムの実行開始時点
でコールされ、実行時間測定に要するオーバヘッドを測
定するオーバヘッド測定手段と、前記測定用プログラム
の手続きの入口でコールされる前処理ルーチンと手続き
の出口でコールされる後処理ルーチンとを含み、各々の
ルーチンで採取した時刻の差を手続き毎の実行時間とし
て累積する実行時間測定手段と、前記測定用プログラム
の実行終了時点でコールされ実行時間測定に要するオー
バヘッドを再測定し、手続き毎の実行時間のオーバヘッ
ドを補正する実行時間補正手段とを有することを特徴と
する。
【0006】本発明の第2は、複数の手続きから構成さ
れるプログラムの手続き毎の実行時間測定方式におい
て、複数の手続きから構成されるプログラムの手続き毎
の実行時間を測定する方式において、被測定対象のソー
スプログラムを入力し、プログラムの実行開始時点での
オーバヘッド測定ルーチンへのコール文と、手続きの入
口での前処理ルーチンへのコール文と、手続きの出口で
の後処理ルーチンへのコール文と、プログラムの実行終
了時点での実行時間補正ルーチンへのコール文とを挿入
した測定用プログラム生成手段と、前記測定用プログラ
ムの実行開始時点でコールされ、実行時間測定に要する
オーバヘッドを測定し、一定時間毎に割り込みを発生さ
せることで、自身のプログラムを再起動してその都度オ
ーバヘッドを測定するオーバヘッド測定手段と、前記測
定用プログラムの手続きの入口でコールされる前処理ル
ーチンと手続きの出口でコールされる後処理ルーチンと
を含み、各々のルーチンで採取した時刻の差を手続き毎
の実行時間として累積する実行時間測定手段と、前記測
定用プログラムの実行終了時点でコールされ、手続き毎
の実行時間のオーバヘッドを補正する実行時間補正手段
とを有することを特徴とする。
【0007】
【実施例】次に、本発明の実施例について図面を参照し
て詳細に説明する。実施例は本発明の第1に対応してお
り、最後に本発明の第2との相違点を実施例で説明す
る。
【0008】図1は本発明の一実施例の全体構成図であ
る。同図において、11は被測定対象となるソースプロ
グラムであり、複数の手続きから構成されている。本実
施例の実行時間測定方式は、このソースプログラム11
中の各手続きの実行時間を測定するものであり、ソース
プログラム11を入力して測定用プログラム13を出力
するプログラム生成手段12と、実行時間測定に要する
オーバヘッドをプログラムの実行開始時点で測定するオ
ーバヘッド測定手段14と、手続きの入口と出口で時刻
を採取し両時刻の差を蓄積する手続き毎の実行時間を測
定する実行時間測定手段15と、プログラムの実行終了
時点で実行時間測定に要するオーバヘッドを再測定し最
終的なオーバヘッドを決定しその値で手続き毎の実行時
間を補正する実行時間補正手段16とで構成されてい
る。
【0009】本実施例の実行時間測定方式の詳しい構成
と動作を図を参照しながら具体的に説明する。
【0010】まず、プログラム生成手段を図2を参照し
て具体的に説明する。
【0011】プログラム生成手段12は、被測定対象の
ソースプログラム11を入力すると、図2に示すよう
に、その主プログラムの先頭にオーバヘッド測定ルーチ
ンのコール文20を挿入し、また、全ての手続き即ち主
プログラムメインおよび手続きサブの実行文の先頭に実
行時間測定前処理ルーチン27へのコール文21,25
を挿入し、更に手続きの終了の直前に実行時間測定後処
理ルーチン28のコール文23,26を挿入する。ここ
で、前処理ルーチン27は実行開始時点の時刻の記録を
行う実行時ルーチンで、その中ではコール文29でクロ
ックルーチン31を呼び出すことにより時刻を取得す
る。また、後処理ルーチン28は、手続きの終了時点で
の時刻を得て、手続きの実行に要した時間を累積する実
行時ルーチンであり、前処理ルーチン27と同様クロッ
クルーチン31を呼び出すことによって時刻を取得して
いる。
【0012】次に、プログラム生成手段12によって生
成した測定用プログラム13の実行時の動作を以下に説
明する。
【0013】まず、主プログラムの先頭でオーバヘッド
測定ルーチン14が実行される。オーバヘッド測定ルー
チン14では実行時間測定に要するオーバヘッドが測定
されるが、その詳細は後述する。
【0014】実行中は、主プログラムを含めた全ての手
続きの開始時に前処理ルーチンが呼び出され、手続きの
終了時は後処理ルーチンが呼び出される。以下に各々の
ルーチンの処理について説明する。
【0015】まず、時間測定ルーチンで取り扱うコール
スタック(図3)および実行情報テーブル(図4)につ
いて説明する。
【0016】コールスタック(図3)には、主プログラ
ムから現在実行中の手続きが呼ばれるまでにコールされ
てきた手続き番号(プログラム全体で一意に割り当てら
れた番号で手続きと一対一に対応する)のネストが格納
されている。ここでスタックポインタは現在実行中の手
続きを差す。
【0017】実行情報テーブル(図4)は手続き番号順
に手続き毎の実行情報を格納するテーブルであり、手続
き中から他の手続きを呼び出した回数、他の手続きから
呼び出された回数、手続き開始時刻(実行中の手続きの
場合)、および実行時間の累積を格納している。
【0018】以下に、前処理ルーチンの処理を示す。 ・コールスタックの先頭の手続きのコールした回数をカ
ウントアップ。ただし、主プログラムの場合は未だスタ
ックが空であるため何もしない。 ・引数で渡された手続き番号をコールスタックにプッシ
ュ。 ・手続き番号に対応する実行情報テーブルエントリ中の
コールされた回数をカウントアップ。 ・クロックルーチンをコールして得た手続き開始時刻
を、同じく実行情報テーブルエントリに設定。
【0019】続いて、後処理ルーチンの処理を以下に示
す。 ・クロックルーチンをコールして手続き終了時刻を取
得。 ・手続き実行時間=手続き終了時刻−手続き開始時刻
(手続き開始時刻はコールスタックの先頭の手続き番号
に対応する実行情報テーブルエントリを参照する。) ・同じ実行情報テーブルエントリの累積実行時間に先に
求めた手続き実行時間を加算する。 ・コールスタックを1つポップアップ。 ・コールスタックの先頭手続き(=呼び出した手続き)
に対し、実行情報テーブルエントリ中の累積実行時間か
ら呼び出した手続きの実行時間分を差し引く。
【0020】以上の前処理ルーチン/後処理ルーチンの
処理によって手続き毎のコールした回数、コールされた
回数、および累積実行時間が計算される。
【0021】主プログラムの後処理が終わると最後に実
行時間補正ルーチン16が呼び出される。時間測定によ
るオーバヘッドは、手続き呼び出し時にコールした手続
きとコールされた手続きの両者に含まれる。実行時間補
正ルーチン16では、再度オーバヘッドの測定を行い、
プログラムの先頭で予め測定していた結果との平均をと
ったコーラーオーバヘッドとコーリーオーバヘッドおよ
び実行時間測定ルーチン15(前処理ルーチン27、後
処理ルーチン28)で測定した実行情報テーブル(図
4)を用いて実行時間を以下のように補正する。
【0022】手続きの合計実行時間 = 累積実行時間 − コーラーオーバヘッド*コールした回数 − コーリーオーバヘッド*コールされた回数 以下に、オーバヘッド測定ルーチン14でのコーラーオ
ーバヘッドとコーリーオーバヘッドの測定方法について
図2を参照して説明する。
【0023】コールされた手続きのオーバヘッドは、前
処理ルーチン27のクロックルーチンへのコール文29
で時間を計測してから後処理ルーチン28のクロックル
ーチンへのコール文30で時間を計測するまでの時間の
中で、手続きの実行に関係のない時間である。前処理ル
ーチンの開始からクロックルーチンのコール文29まで
の実行時間をs1、前処理ルーチンのクロックルーチン
のコール文29の後から終了までの実行時間をs2、後
処理ルーチンの開始からクロックルーチンのコール文3
0までの実行時間をe1、後処理ルーチンのクロックル
ーチンのコール文30の後から終了までの実行時間をe
2、クロックルーチン31の実行時間の中で、実際の実
行時間を計測32までの時間をc1、実行時間の計測3
2から後の時間をc2、c1とc2を合わせたクロック
ルーチン全体の実行時間をc0とすると、 コーリーオーバヘッド=c2+s2+e1+c1 =s2+e1+c0 となる。
【0024】一方、コールした手続きのオーバヘッド
は、前処理ルーチン開始時点から時間の計測29までの
時間と、後処理ルーチンでの時間を計測30から終了す
るまでの時間である。したがって、 コーラーオーバヘッド=s1+c1+c2+e2 =s1+e2+c0 となる。なお、s1およびe1には、前処理ルーチンお
よび後処理ルーチンのコールの時間を含んでいる。
【0025】オーバヘッド測定ルーチンで、上記のs
1,s2,e1,e2,c0を計測する方法について図
5,図6を参照して説明する。
【0026】図5において、前処理ルーチンの開始から
クロックルーチンをコールするまでの実行時間(s1)
は、 s1=a3−a1−c0 前処理ルーチンのクロックルーチンをコールしてから終
了までの実行時間(s2)は、 s2=a2−a3−c0 同様にして、後処理ルーチンの開始からクロックルーチ
ンをコールするまでの実行時間(e1)は、 e1=b3−b1−c0 後処理ルーチンのクロックルーチンをコールしてから終
了までの実行時間(e2)は、 e2=b2−b3−c0 で計算される。
【0027】クロックルーチン31全体の時間c0の測
定方法の例を図6に示す。
【0028】以上のオーバヘッドの測定によって、 コーリーオーバヘッド=c2+s2+e1+c1 =s2+e1+c0 コーラーオーバヘッド=s1+c1+c2+e2 =s1+e2+c0 が計算できる。
【0029】以上が本発明の第1の実施例である。
【0030】以下に本発明の第1と第2との相違点を上
述の実施例において説明する。
【0031】図1の本発明の一実施例の全体構成図にお
いて、本発明の第1の場合は、プログラムの実行終了時
点で起動される実行時間補正手段16で実行時間測定に
要するオーバヘッドを再測定するのに対し、本発明の第
2の場合は、実行時間測定に要するオーバヘッドの再測
定をプログラムの実行開始時点で起動されるオーバヘッ
ド測定手段14がその後も一定時間毎に起動されて行
う。
【0032】オーバヘッド測定ルーチンは、オーバヘッ
ド測定後、一定時間後に割り込みが発生するようにタイ
マー割り込みを設定し、さらに割り込み処理ルーチンと
して、自分自身すなわちオーバヘッド測定ルーチンを設
定する。
【0033】実行時間補正手段16では、測定したオー
バヘッドの平均を計算し、その値で手続き毎の実行時間
を補正する。
【0034】
【発明の効果】以上説明したように、本発明は、手続き
毎の実行時間測定において、実行時間測定によるオーバ
ヘッドの時間を複数回測定することによって、実行中に
システムの負荷状態が変わった場合でも手続き毎の正確
な実行時間を測定できるという効果がある。特に本発明
の第2の場合はプログラムの実行時間の長短に拘らず正
確な実行時間を測定できる。
【図面の簡単な説明】
【図1】本発明の一実施例の全体構成図である。
【図2】本発明の一実施例の動作の説明図である。
【図3】手続き毎の実行時間測定に用いるコールスタッ
クである。
【図4】手続き毎の実行情報テーブルである。
【図5】実行時間測定ルーチンのオーバヘッド測定方法
を示し、(a)は前処理ルーチンオーバヘッド測定、
(b)は後処理ルーチンオーバヘッド測定である。
【図6】クロックルーチンのオーバヘッド測定方法を示
す図である。
【符号の説明】
11 ソースプログラム 12 プログラム生成手段 13 測定用ソースプログラム 14 オーバヘッド測定手段 15 実行時間測定手段 16 実行時間補正手段 17 オーバヘッド情報 18 実行時間情報

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の手続きから構成されるプログラム
    の手続き毎の実行時間を測定する方式において、 被測定対象のソースプログラムを入力し、プログラムの
    実行開始時点でのオーバヘッド測定ルーチンへのコール
    文と、手続きの入口での実行時間測定前処理ルーチン
    (以下、前処理ルーチンと略す)へのコール文と、手続
    きの出口での実行時間測定後処理ルーチン(以下、後処
    理ルーチンと略す)へのコール文と、プログラムの実行
    終了時点での実行時間補正ルーチンへのコール文とを挿
    入した測定用プログラム生成手段と、 前記測定用プログラムの実行開始時点でコールされ、実
    行時間測定に要するオーバヘッドを測定するオーバヘッ
    ド測定手段と、 前記測定用プログラムの手続きの入口でコールされる前
    処理ルーチンと手続きの出口でコールされる後処理ルー
    チンとを含み、各々のルーチンで採取した時刻の差を手
    続き毎の実行時間として累積する実行時間測定手段と、 前記測定用プログラムの実行終了時点でコールされ実行
    時間測定に要するオーバヘッドを再測定し、手続き毎の
    実行時間のオーバヘッドを補正する実行時間補正手段と
    を有することを特徴とする、実行時間測定方式。
  2. 【請求項2】 複数の手続きから構成されるプログラム
    の手続き毎の実行時間を測定する方式において、 被測定対象のソースプログラムを入力し、プログラムの
    実行開始時点でのオーバヘッド測定ルーチンへのコール
    文と、手続きの入口での実行時間測定前処理ルーチン
    (以下、前処理ルーチンと略す)へのコール文と、手続
    きの出口での実行時間測定後処理ルーチン(以下、後処
    理ルーチンと略す)へのコール文と、プログラムの実行
    終了時点での実行時間補正ルーチンへのコール文とを挿
    入した測定用プログラム生成手段と、 前記測定用プログラムの実行開始時点でコールされ、実
    行時間測定に要するオーバヘッドを測定し、一定時間毎
    に割り込みを発生させることで、自身のプログラムを再
    起動してその都度オーバヘッドを測定するオーバヘッド
    測定手段と、 前記測定用プログラムの手続きの入口でコールされる前
    処理ルーチンと手続きの出口でコールされる後処理ルー
    チンとを含み、各々のルーチンで採取した時刻の差を手
    続き毎の実行時間として累積する実行時間測定手段と、 前記測定用プログラムの実行終了時点でコールされ、手
    続き毎の実行時間のオーバヘッドを補正する実行時間補
    正手段とを有することを特徴とする複数の手続きから構
    成されるプログラムの手続き毎の実行時間測定方式。
JP4038424A 1992-01-30 1992-01-30 実行時間測定方式 Expired - Fee Related JP2712142B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4038424A JP2712142B2 (ja) 1992-01-30 1992-01-30 実行時間測定方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4038424A JP2712142B2 (ja) 1992-01-30 1992-01-30 実行時間測定方式

Publications (2)

Publication Number Publication Date
JPH05210536A JPH05210536A (ja) 1993-08-20
JP2712142B2 true JP2712142B2 (ja) 1998-02-10

Family

ID=12524930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4038424A Expired - Fee Related JP2712142B2 (ja) 1992-01-30 1992-01-30 実行時間測定方式

Country Status (1)

Country Link
JP (1) JP2712142B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774784B2 (en) * 2005-03-17 2010-08-10 Microsoft Corporation Determining an actual amount of time a processor consumes in executing a portion of code
JP2009205472A (ja) * 2008-02-28 2009-09-10 Nec Corp ログ出力システム、ログ出力方法、およびログ出力プログラム

Also Published As

Publication number Publication date
JPH05210536A (ja) 1993-08-20

Similar Documents

Publication Publication Date Title
US8402463B2 (en) Hardware threads processor core utilization
US11553240B2 (en) Method, device and apparatus for adding video special effects and storage medium
CN110244991A (zh) 一种微服务依赖分析方法及装置
JP2712142B2 (ja) 実行時間測定方式
CN114489801A (zh) 高精度测量嵌入式系统中断时长的方法、系统及介质
Wasly et al. Bundled scheduling of parallel real-time tasks
US20150169375A1 (en) Method for the management of task execution in a computer system
CN117470228A (zh) 多传感器融合定位系统的时间同步方法、装置及设备
US20100332888A1 (en) Deriving accurate media position information
US6813760B1 (en) Method and a tool for estimating probability of data contention in a multi-processor shared-memory system
JP2643606B2 (ja) 実行時間測定方式
JPH04153742A (ja) プログラム性能測定方式
JP3389745B2 (ja) プログラムの性能測定装置と方法
CN114138433B (zh) 一种任务定时策略的方法、装置及介质
JPH04326434A (ja) ジョブ実行予測精度向上制御方法
JP2005352894A (ja) 性能解析プログラム及び性能解析プログラムの生成方法
CN111831521B (zh) 中断响应时间的测试方法、处理器与电子设备
JPS63228344A (ja) 使用cpu時間計測方式
CN116302385A (zh) 一种基于rtos的声速剖面仪嵌入式软件设计方法
JP2913679B2 (ja) スタックサイズの算出処理方式
JP2805894B2 (ja) ソフトウェアタイマの校正方式
CN115640197A (zh) 物联网操作系统内核性能测试方法、装置及系统
JPS6158055A (ja) Osコンポ−ネントのcpu使用量分析方式
JPH04153741A (ja) 被デバッグプログラムのデバッグにおける逆方向実行方式
JPH05242103A (ja) スケジューリングシステム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees