JPH06259245A - プログラムの性能測定装置およびその方法 - Google Patents

プログラムの性能測定装置およびその方法

Info

Publication number
JPH06259245A
JPH06259245A JP5044890A JP4489093A JPH06259245A JP H06259245 A JPH06259245 A JP H06259245A JP 5044890 A JP5044890 A JP 5044890A JP 4489093 A JP4489093 A JP 4489093A JP H06259245 A JPH06259245 A JP H06259245A
Authority
JP
Japan
Prior art keywords
program
block
execution
module
performance
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
Application number
JP5044890A
Other languages
English (en)
Inventor
Makio Matsumoto
萬樹男 松本
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5044890A priority Critical patent/JPH06259245A/ja
Publication of JPH06259245A publication Critical patent/JPH06259245A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 プログラムの性能測定、分析、評価のために
必要なプログラム、モジュ−ル、およびル−チンの実行
回数、実行命令数、および性能指数を、少量のハ−ドウ
ェア資源のみで高速かつ効率よく、しかもリアルタイム
で測定する。 【構成】 分岐先アドレス取得部により取得した分岐先
アドレスとブロック情報記憶部中のブロック情報とか
ら、ブロック実行カウント部がブロックの実行回数をカ
ウントする。被測定プログラムが終了すると、ブロック
情報中のブロックの命令数、性能指数、実行回数とプロ
グラム構成情報記憶部中のモジュ−ル構成情報、ル−チ
ン構成情報とから、性能デ−タ算出部がプログラム、モ
ジュ−ル、ル−チンの実行回数、実行命令数、および性
能指数を求める。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムの性能評価
に必要なデ−タを採取するプログラム性能測定装置およ
びその測定方法に関し、特にプログラムの制御構造の基
本単位であるブロックを利用して、モジュ−ル別、ル−
チン別の実行回数、実行命令数および性能指数を測定す
る性能測定装置およびその方法に関する。
【0002】
【従来の技術】従来より、プログラムの性能を測定・分
析・評価する方法が行われていた。その中の1つとし
て、命令の実行毎に割り込みを発生させて実行命令数を
カウントしたり、または分岐命令毎に割り込みを発生さ
せて、前回の分岐命令の分岐先アドレスから今回の分岐
命令の分岐元アドレスまでの一連の実行命令群の命令数
をカウントしたりすることによって、実行命令数を調べ
る方法があった。この場合、実行命令数は全体のプログ
ラムとして命令数をカウントするだけであって、プログ
ラムの性能を測定・分析・評価するために重要な被測定
プログラムを構成するモジュ−ル別、ル−チン別の実行
回数および実行命令数を求める方法はなかった。また、
上記従来の方法では、プログラムやそれを構成するモジ
ュ−ルやル−チンの性能指数を求める方法もなかった。
なお、この種のプログラムの性能測定方法としては、例
えば特開昭63−300333号公報、および特開平1
−147741号公報に記載された方法がある。
【0003】
【発明が解決しようとする課題】上述の方法において、
被測定プログラムを構成するモジュ−ル・ル−チン別の
実行回数(すなわち他のモジュ−ルや、他のル−チンか
ら呼ばれた回数)および実行命令数を求めるには、命令
トレ−ス情報または分岐命令トレ−ス情報を格納して分
析する必要があった。このためには、大量のトレ−ス情
報を格納できるような大規模なハ−ドウェア資源が必要
になっていた。また、大量のトレ−ス情報をファイルに
書き出し、これを読み出すためには、その元になる大量
のトレ−ス情報を測定する必要があり、その測定に長時
間がかかっていた。さらに、前述のように、プログラ
ム、モジュ−ルおよびル−チンの性能指数を測定する方
法がなかったので、これを測定することは不可能であっ
た。本発明の目的は、これら従来の課題を解決し、少量
のハ−ドウェア資源を用いて、プログラムとそのプログ
ラムを構成するモジュ−ルやル−チンの実行回数、実行
命令回数および性能指数を、高速かつ効率よく、リアル
タイムで採取し、編集することが可能なプログラムの性
能測定装置およびその方法を提供することにある。
【0004】
【課題を解決するための手段】上記目的を達成するた
め、本発明によるプログラムの性能測定装置は、(イ)
被測定プログラムがロ−ディングされたとき、そのプロ
グラムのロ−ディングアドレスを取得して、そのアドレ
スを記憶するロ−ディング検出手段(2)と、被測定プ
ログラムの分岐命令の分岐先アドレスを取得し、そのア
ドレスを記憶する分岐先アドレス取得手段(3)と、ロ
−ディング検出手段により取得したプログラムのロ−デ
ィングアドレス、分岐先アドレス取得手段(3)により
取得した分岐先アドレス、およびプログラムを構成する
ブロックの性能指数を記憶しているブロック情報記憶手
段(1)内の情報から実行ブロックを決定し、そのブロ
ックの実行回数をカウントするブロック実行カウント手
段(4)と、被測定プログラムの実行が終了すると、ブ
ロック情報記憶手段(1)内のブロック情報とブロック
によるモジュ−ルおよびル−チンの構造を示すプログラ
ム構成情報記憶手段(7)内のモジュ−ル構成情報およ
びル−チン構成情報からプログラム、モジュ−ルおよび
ル−チンの実行回数、実行命令数および性能指数を求め
る性能デ−タ算出手段(5)と、性能デ−タ算出手段
(5)により求められたプログラム、モジュ−ル、およ
びル−チンの実行回数、実行命令数および性能指数を編
集して、印刷あるいは表示する出力手段(6)とを具備
することを特徴としている。また、本発明によるプログ
ラムの性能測定方法は、(ロ)被測定プログラムが走行
開始すると、分岐命令が実行される毎に分岐先アドレス
を記憶し、その分岐先アドレスと、プログラムを構成す
る各ブロックの相対的な性能を示すブロック性能指数を
記憶しているブロック情報記憶部(1)中の情報とか
ら、実行ブロックの実行回数をカウントし、被測定プロ
グラムの実行が終了すると、ブロック情報記憶部(1)
内のブロック情報と、ブロックによるモジュ−ルおよび
ル−チンの構造を示すプログラム構成情報記憶手段
(7)内のモジュ−ル構成情報およびル−チン構成情報
とから、プログラム、モジュ−ルおよびル−チンの実行
回数、実行命令数、および性能指数を求めた後、求めら
れた情報を編集して出力することを特徴としている。
【0005】
【作用】本発明においては、ブロック実行カウント手段
がプログラムの制御構造の最小単位であるブロックの実
行回数をカウントすることにより、実行命令数を求め
る。また、プログラム構成情報記憶手段が、プログラム
を構成するモジュ−ル・ル−チン別の実行回数および実
行命令数を測定する。さらに、ブロック情報記憶部が、
プログラムを構成する各ブロックの相対的な性能を示す
ブロック性能指数を記憶しておく。本発明では、命令の
実行あるいは分岐命令の実行毎に大量のトレ−ス情報を
ファイルに出力する命令トレ−ス、あるいは分岐命令ト
レ−ス方式ではないので、大容量のファイル装置は不要
である。つまり、被測定プログラムを構成するブロック
個数分のブロック情報と、被測定プログラムを構成する
モジュ−ル、ル−チン数分のプログラム構成情報を記憶
するだけの少容量の記憶装置でよい。また、長時間を要
する大量デ−タのファイルへの書き出し、読み出しの必
要がなく、リアルタイムに測定結果を求めることができ
る。さらに、ブロック情報として、それを構成する命令
の数に加え、ブロックの性能指数情報を保持しているた
め、プログラム、モジュ−ル、およびル−チンの性能指
数を取得することができる。これにより、少数のハ−ド
ウェア資源により、プログラム、モジュ−ルおよびル−
チンの実行命令数および実行回数を高速に、かつ効率よ
く、リアルタイムで採取し、編集することができる。
【0006】
【実施例】以下、本発明の一実施例を示すプログラム性
能測定装置のブロック図である。図1において、1はブ
ロック情報を記憶するブロック情報記憶部、2は被測定
プログラムがメモリにロ−ディングされたことを検出す
るロ−ディング検出部、3は分岐先アドレスを格納する
分岐先アドレス取得部、4は実行されるブロックのプロ
グラムの先頭からのロケ−ションを求めるブロック実行
カウント部、5はプログラムの実行命令数と性能指数と
モジュ−ル、ル−チン毎の実行回数、実行命令数、およ
び性能指数を算出する性能デ−タ算出部、6はプログラ
ム、モジュ−ルおよびル−チンの実行回数、実行命令
数、および性能指数を印刷、表示する出力部、7はプロ
グラム構成情報記憶部である。ところで、プログラムに
はブロックと呼ばれるプログラムの制御構造の最小単位
がある。ブロックは、連続して実行される命令の集りで
あって、入口は先頭の命令だけであり、最後の命令を除
いて分岐や停止がないものを言う。従って、プログラム
はブロックの集合から形成されており、命令は必ずどれ
かのブロックに属していることになる。また、プログラ
ムの性能測定においては、命令毎に実行スピ−ドが異な
るため、プログラムの実行命令数を知るだけではプログ
ラムの性能を分析・評価することはできない。しかし、
タイミングに左右される命令のNIBR(Not InBu
ffer Ratio)や、イベント待ち等のプログラムの状態
を考慮した性能を求めることは極めて困難である。
【0007】そこで、少なくとも相対的に命令だけの実
行性能を示すものが必要となる。相対的に命令の性能を
表わすものとしては、命令の動作クロック数が挙げられ
る。また、ブロックの相対的な性能を示す性能指数とし
ては、ブロックを構成する全命令のクロック数の総和値
が挙げられる。この値を、ブロックの性能指数と呼ぶ。
本発明は、このブロックを利用したもので、図1に示す
ように、ロ−ディング検出部2と、分岐先アドレス取得
部3と、ブロック実行カウント部4と、性能デ−タ算出
部5と、出力部6とから構成される。ロ−ディング検出
部2は、被測定プログラムがロ−ディングされたとき
に、そのプログラムのロ−ディングアドレスを取得し、
これを記憶する。また、分岐先アドレス取得部3は、被
測定プログラムの分岐命令の分岐先アドレス(分岐命令
の分岐が成立か不成立かにかかわらず、その分岐命令の
次に実行される命令のアドレスをいう)を取得して記憶
する。また、ブロック実行カウント部4は、ロ−ディン
グ検出部2により取得したプログラムのロ−ディングア
ドレスと、分岐先アドレス取得部3により取得した分岐
先アドレスと、ブロック情報記憶部1内のブロック情報
とにより実行ブロックを決定し、そのブロックの実行回
数をカウントする。また、性能デ−タ算出部5は、被測
定プログラムの実行が終了すると、ブロック情報記憶部
1内のブロック情報とプログラム構成情報記憶部7内の
モジュ−ル構成情報、ル−チン構成情報とにより、プロ
グラム、モジュ−ルおよびル−チンの実行回数、実行命
令数および性能指数を求める。さらに、出力部6は、性
能デ−タ算出部5により求められたプログラム、モジュ
−ルおよびル−チンの実行回数、実行命令数および性能
指数を編集して、印刷または表示する。
【0008】図2は、図1におけるブロック情報記憶部
内のブロック情報の内容を示す図である。図2に示すよ
うに、ブロック情報の各エントリは、プログラムを構成
する各ブロックに対応しており、プログラムを構成する
全ブロックを網羅している。そして、プログラムの先頭
より順番に配列するブロックに対応して、エントリが並
べられている。すなわち、各エントリは、対応するブロ
ックのプログラムの先頭からのロケ−ションと、ブロッ
クを構成する命令の数と、ブロックの性能指数と、ブロ
ックの実行の回数をカウントする実行カウンタとから構
成される。図3は、図1におけるプログラム構成情報記
憶部内のプログラム構成情報のうちのモジュ−ル構成情
報を示す図である。図3においては、プログラム構成情
報として、モジュ−ル構成情報とル−チン構成情報の2
種類あるうちのモジュ−ル構成情報の内容だけが示され
ている。ル−チン構成情報は、モジュ−ル構成情報と殆
んど同じ内容であるため、記載を省略している。モジュ
−ル構成情報の各エントリは、プログラムを構成する各
モジュ−ルに対応しており、プログラムを構成する全モ
ジュ−ルを網羅している。各エントリは、対応するモジ
ュ−ルのモジュ−ル名と、モジュ−ルの入口であるブロ
ックを示す入口ブロック番号と、モジュ−ルを構成する
一連のブロック群を示す先頭ブロック番号と、最終ブロ
ック番号とから構成されている。これらのブロック番号
は、図2に示すブロック情報の何番目のエントリ、つま
りプログラムの先頭から何番目のブロックに該当するか
を示している。
【0009】図4は、本発明の一実施例を示すプログラ
ム性能測定方法の動作フロ−チャ−トである。先ず、ブ
ロック実行カウント部4のカウンタ値を初期化(0)す
る(ステップ101)。被測定プログラムがメモリにロ
−ディングされると(ステップ102)、ロ−ディング
検出部2がプログラムのロ−ディングアドレスを取得し
て、これを記憶する(ステップ103)。次に、被測定
プログラムが走行を開始して(ステップ104)、分岐
命令が実行されると(ステップ105)、その分岐先ア
ドレスを分岐先アドレス取得部3が取得して、これを記
憶する(ステップ106)。この場合の分岐先アドレス
は、分岐命令の分岐が成立か不成立かにかかわらず、そ
の分岐命令の次に実行される命令のアドレスである。次
に、ブロック実行カウント部4は、先に分岐先アドレス
取得部3が取得した分岐先アドレスからロ−ディング検
出部2が取得した被測定プログラムのロ−ディングアド
レスを減じることにより、実行されるブロックのプログ
ラムの先頭からのロケ−ションを求める(ステップ10
7)。さらに、ブロック情報記憶部1中のブロック情報
から、先に求めた実行ブロックのロケ−ションと等しい
ロケ−ションを有するエントリを見付ける(ステップ1
08)。エントリがあれば(ステップ109)、そのエ
ントリの実行カウンタに1を加算する(ステップ11
0)。
【0010】ここまでの処理が被測定プログラムの実行
中続行され、被測定プログラムが終了すると(ステップ
111)、性能デ−タ算出部5が起動される(ステップ
112)。性能デ−タ算出部5は、ブロック情報記憶部
1中のブロック情報と、プログラム構成情報記憶部7中
のモジュ−ル構成情報、ル−チン構成情報とにより、プ
ログラムの実行命令数と性能指数、ならびにモジュ−
ル、ル−チン毎の実行回数、実行命令数、および性能指
数を算出する(ステップ113)。ここで、プログラム
の実行命令数は、ブロック情報記憶部1中の各ブロック
情報エントリの(命令数×実行カウンタの値)の総和と
して求められる。同じようにして、プログラムの性能指
数も求められる。また、モジュ−ルの実行回数は、プロ
グラム構成情報記憶部7中のモジュ−ル構成情報エント
リの入口ブロック番号に対応するブロック情報記憶部1
中のブロック情報エントリの実行カウンタの値である。
また、モジュ−ルの実行命令回数は、モジュ−ル構成情
報エントリの先頭ブロック番号から最終ブロック番号で
示されるブロック情報記憶部1中の一連のブロック情報
エントリ群の(命令数×実行カウンタの値)の総和とし
て求められる。同じようにして、モジュ−ルの性能指数
も求められる。また、ル−チン毎の実行回数、実行命令
数、性能指数は、モジュ−ルのそれらを求める場合と同
じようにして求められる。最後に、求められたプログラ
ム、モジュ−ル、およびル−チンの実行回数、実行命令
数、および性能指数を、出力部5が出力装置に出力し、
印刷または表示する(ステップ114)。
【0011】
【発明の効果】以上説明したように、本発明によれば、
少量のハ−ドウェア資源だけで、プログラム、モジュ−
ル、およびル−チンの実行命令数および実行回数を高速
に効率よく、リアルタイムで採取して編集することがで
きる。また、実行命令数、実行回数の他に、プログラ
ム、モジュ−ルおよびル−チンの性能指数も取得でき
る。
【図面の簡単な説明】
【図1】本発明の一実施例を示すプログラム性能測定装
置のブロック図である。
【図2】図1におけるブロック情報記憶部内のブロック
情報の一例を示す図である。
【図3】図1におけるプログラム構成情報記憶部内のプ
ログラム構成情報のうちのモジュ−ル構成情報の一例を
示す図である。
【図4】本発明の一実施例を示すプログラム性能測定方
法の動作フロ−チャ−トである。
【符号の説明】
1 ブロック情報記憶部 2 ロ−ディング検出部 3 分岐先アドレス取得部 4 ブロック実行カウント部 5 性能デ−タ算出部 6 出力部 7 プログラム構成情報記憶部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 被測定プログラムがロ−ディングされた
    とき、該プログラムのロ−ディングアドレスを取得し
    て、該アドレスを記憶するロ−ディング検出手段と、上
    記被測定プログラムの分岐命令の分岐先アドレスを取得
    し、該アドレスを記憶する分岐先アドレス取得手段と、
    上記ロ−ディング検出手段により取得したプログラムの
    ロ−ディングアドレス、上記分岐先アドレス取得手段に
    より取得した分岐先アドレス、およびプログラムを構成
    するブロックの性能指数を記憶しているブロック情報記
    憶手段内の情報から実行ブロックを決定し、該ブロック
    の実行回数をカウントするブロック実行カウント手段
    と、上記被測定プログラムの実行が終了すると、上記ブ
    ロック情報記憶手段内のブロック情報とブロックによる
    モジュ−ルおよびル−チンの構造を示すプログラム構成
    情報記憶手段内のモジュ−ル構成情報およびル−チン構
    成情報からプログラム、モジュ−ルおよびル−チンの実
    行回数、実行命令数および性能指数を求める性能デ−タ
    算出手段と、上記性能デ−タ算出手段により求められた
    プログラム、モジュ−ル、およびル−チンの実行回数、
    実行命令数および性能指数を編集して、印刷あるいは表
    示する出力手段とを具備することを特徴とするプログラ
    ムの性能測定装置。
  2. 【請求項2】 被測定プログラムが走行開始すると、分
    岐命令が実行される毎に分岐先アドレスを記憶し、該分
    岐先アドレスと、プログラムを構成する各ブロックの相
    対的な性能を示すブロック性能指数を記憶しているブロ
    ック情報記憶部中の情報とから、実行ブロックの実行回
    数をカウントし、該被測定プログラムの実行が終了する
    と、上記ブロック情報記憶部内のブロック情報と、ブロ
    ックによるモジュ−ルおよびル−チンの構造を示すプロ
    グラム構成情報記憶手段内のモジュ−ル構成情報および
    ル−チン構成情報とから、プログラム、モジュ−ルおよ
    びル−チンの実行回数、実行命令数、および性能指数を
    求めた後、求められた情報を編集して出力することを特
    徴とするプログラムの性能測定方法。
JP5044890A 1993-03-05 1993-03-05 プログラムの性能測定装置およびその方法 Pending JPH06259245A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5044890A JPH06259245A (ja) 1993-03-05 1993-03-05 プログラムの性能測定装置およびその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5044890A JPH06259245A (ja) 1993-03-05 1993-03-05 プログラムの性能測定装置およびその方法

Publications (1)

Publication Number Publication Date
JPH06259245A true JPH06259245A (ja) 1994-09-16

Family

ID=12704085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5044890A Pending JPH06259245A (ja) 1993-03-05 1993-03-05 プログラムの性能測定装置およびその方法

Country Status (1)

Country Link
JP (1) JPH06259245A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001188691A (ja) * 1999-12-28 2001-07-10 Toshiba Corp 検証プログラム自動生成方法及び検証プログラム自動生成プログラムを記録したコンピュータ読み取り可能な記録媒体
US6658654B1 (en) 2000-07-06 2003-12-02 International Business Machines Corporation Method and system for low-overhead measurement of per-thread performance information in a multithreaded environment
JP2010286892A (ja) * 2009-06-09 2010-12-24 Mitsubishi Electric Corp 処理時間見積り装置および処理時間見積りプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001188691A (ja) * 1999-12-28 2001-07-10 Toshiba Corp 検証プログラム自動生成方法及び検証プログラム自動生成プログラムを記録したコンピュータ読み取り可能な記録媒体
US6658654B1 (en) 2000-07-06 2003-12-02 International Business Machines Corporation Method and system for low-overhead measurement of per-thread performance information in a multithreaded environment
JP2010286892A (ja) * 2009-06-09 2010-12-24 Mitsubishi Electric Corp 処理時間見積り装置および処理時間見積りプログラム

Similar Documents

Publication Publication Date Title
EP1703403B1 (en) Determining an actual amount of time a processor consumes in executing a portion of code
US7577875B2 (en) Statistical analysis of sampled profile data in the identification of significant software test performance regressions
US20100251160A1 (en) Measurement and reporting of performance event rates
JPH06259245A (ja) プログラムの性能測定装置およびその方法
CN115357501B (zh) 航天测控软件的自动化测试方法和系统
CN111368104B (zh) 信息处理方法、装置及设备
CN114253821B (zh) 一种分析gpu性能的方法、装置及计算机存储介质
US20030036884A1 (en) Parallel efficiency calculating method and apparatus
JP3389745B2 (ja) プログラムの性能測定装置と方法
JP2995841B2 (ja) ガスクロマトグラフ質量分析計のデータ処理装置
JPH07191882A (ja) メモリアクセス頻度測定方式
JP2530841B2 (ja) プログラム性能測定方法
JPH0452835A (ja) プログラムテスト評価方式
CN114325801A (zh) 表面污染检测类设备性能指标数据检测方法、装置
JP3212214B2 (ja) 状態遷移試験装置
CN115774669A (zh) 一种动态获取存储系统最优性能的方法及系统
JP2697601B2 (ja) 乗算・除算命令インタロックのシミュレーション方式
JPH09297129A (ja) クロマトグラフ用データ処理装置
JP3102153B2 (ja) 測定器のスケーリング方法
JPS6029991B2 (ja) 検査デ−タ出力処理方式
JPH10260872A (ja) 計算機システムおよび記録媒体
JPH04358237A (ja) 性能評価方法
RU84591U1 (ru) Система регистрации ошибок и анализа надежности программного обеспечения
JPS61181961A (ja) クロマトグラフ用デ−タ処理装置
JPS61124869A (ja) 多項目自動分析装置