JPH0520135A - 目的プログラムの実行時性能測定方式 - Google Patents

目的プログラムの実行時性能測定方式

Info

Publication number
JPH0520135A
JPH0520135A JP3200072A JP20007291A JPH0520135A JP H0520135 A JPH0520135 A JP H0520135A JP 3200072 A JP3200072 A JP 3200072A JP 20007291 A JP20007291 A JP 20007291A JP H0520135 A JPH0520135 A JP H0520135A
Authority
JP
Japan
Prior art keywords
basic block
execution
value
cpu
fundamental block
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
JP3200072A
Other languages
English (en)
Inventor
Mitsuo Kiyono
三男 清野
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 JP3200072A priority Critical patent/JPH0520135A/ja
Publication of JPH0520135A publication Critical patent/JPH0520135A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 簡単な機構で基本ブロックの実行CPU累積
値を得られるようにして、目的プログラムの実行時性能
を測定する。 【構成】 ソースプログラムを翻訳し目的プログラムを
生成するときに、基本ブロックCPU換算値集計手段5
は基本ブロックCPU換算値を集計して関数名および基
本ブロック番号とともに基本ブロック実行情報テーブル
7に登録し、基本ブロック実行回数値加算コード埋込み
手段6は各基本ブロックに対応するオブジェクトコード
の中に基本ブロック実行回数値加算コードを生成して挿
入する。目的プログラムの実行の終了時に、基本ブロッ
ク実行時性能編集出力手段8は、基本ブロック実行情報
テーブル7の基本ブロックCPU換算値および基本ブロ
ック実行回数値から基本ブロックの実行CPU累積値を
求め関数名および基本ブロック番号とともに編集して実
行時性能測定結果リスト12を出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理における性能測
定処理に関し、特に目的プログラムの実行時性能測定方
式に関する。
【0002】
【従来の技術】従来、この種の目的プログラムの実行時
性能測定方式では、ハードウェア機構等を使って1命令
毎に情報を収集するか、一定間隔毎に割込みを発生させ
てそのときに実行していた命令に対して情報を収集する
か、または単に文や関数などの実行回数を集計するかし
ていた。
【0003】
【発明が解決しようとする課題】上述した従来の目的プ
ログラムの実行時性能測定方式では、ハードウェア機構
等を使って1命令毎に情報を収集する方式および一定間
隔毎に割込みを発生させてそのときに実行していた命令
に対して情報を収集する方式の場合には、収集された情
報をそのつど集計するかあるいは蓄積するかしておかな
ければならないので、情報を収集するのに大掛かりな機
構を必要として処理時間もかかり、さらに収集された情
報を蓄積するための大きなメモリまたはファイル容量を
必要とするため、大規模プログラムや実行時間の長いプ
ログラムでは実質的に使えないという欠点がある。
【0004】また、文や関数などの実行回数を集計する
方式では、その文や関数などが目的プログラムの実行中
に何回実行されたかという情報しか得られないので、ど
の文や関数などがどれだけのCPU(Central
Processing Unit)時間を使ったかとい
う実行時性能を測定できないという欠点がある。
【0005】本発明の目的は、上述の点に鑑み、目的プ
ログラムのオブジェクトコードに基本ブロック実行回数
値加算コードを挿入するとともに、基本ブロックに対応
するオブジェクトコードのCPU換算値と実行回数値と
を情報として持つようにして、簡単な機構で基本ブロッ
クの実行CPU累積値を得られるようにした目的プログ
ラムの実行時性能測定方式を提供することにある。
【0006】
【課題を解決するための手段】本発明の目的プログラム
の実行時性能測定方式は、ソースプログラム中の対応す
る関数名と、その関数に対して生成された一連のオブジ
ェクトコードの命令の並びを分岐命令の出現毎に区切ら
れた基本ブロックと呼ばれる命令の集合として識別する
基本ブロック番号と、その基本ブロックの命令の集合を
実行するのに要するハードウェアのCPU性能値を示す
基本ブロックCPU換算値と、その基本ブロックの実行
時における実行回数を保持する基本ブロック実行回数値
とを情報として持つ基本ブロック実行情報テーブルと、
ソースプログラムを翻訳し目的プログラムを生成すると
きに各関数に対して生成されたオブジェクトコードの命
令群の各命令に対して分岐命令の出現まで毎にハードウ
ェアのCPU性能の換算値を集計しそれを基本ブロック
を構成するオブジェクトコードの命令群に対する基本ブ
ロックCPU換算値として基本ブロックを識別する基本
ブロック番号とその基本ブロックが属する関数名ととも
に前記基本ブロック実行情報テーブルに登録する基本ブ
ロックCPU換算値集計手段と、この基本ブロックCP
U換算値集計手段によって登録された前記基本ブロック
実行情報テーブル中の基本ブロック実行回数値にその基
本ブロックが実行される毎に1ずつ加算されるように目
的プログラム中の各基本ブロックに対応するオブジェク
トコードの中に基本ブロック実行回数値加算コードを生
成して挿入する基本ブロック実行回数値加算コード埋込
み手段と、目的プログラムの実行の終了時に前記基本ブ
ロック実行情報テーブル中の基本ブロックCPU換算値
と基本ブロック実行回数値とから基本ブロックの実行C
PU累積値を求め関数名および基本ブロック番号ととも
に編集して実行時性能測定結果リストを出力する基本ブ
ロック実行時性能編集出力手段とを有する。
【0007】
【作用】本発明の目的プログラムの実行時性能測定方式
では、基本ブロック実行情報テーブルがソースプログラ
ム中の対応する関数名と、その関数に対して生成された
一連のオブジェクトコードの命令の並びを分岐命令の出
現毎に区切られた基本ブロックと呼ばれる命令の集合と
して識別する基本ブロック番号と、その基本ブロックの
命令の集合を実行するのに要するハードウェアのCPU
性能値を示す基本ブロックCPU換算値と、その基本ブ
ロックの実行時における実行回数を保持する基本ブロッ
ク実行回数値とを情報として持ち、基本ブロックCPU
換算値集計手段がソースプログラムを翻訳し目的プログ
ラムを生成するときに各関数に対して生成されたオブジ
ェクトコードの命令群の各命令に対して分岐命令の出現
まで毎にハードウェアのCPU性能の換算値を集計しそ
れを基本ブロックを構成するオブジェクトコードの命令
群に対する基本ブロックCPU換算値として基本ブロッ
クを識別する基本ブロック番号とその基本ブロックが属
する関数名とともに基本ブロック実行情報テーブルに登
録し、基本ブロック実行回数値加算コード埋込み手段が
基本ブロックCPU換算値集計手段によって登録された
基本ブロック実行情報テーブル中の基本ブロック実行回
数値にその基本ブロックが実行される毎に1ずつ加算さ
れるように目的プログラム中の各基本ブロックに対応す
るオブジェクトコードの中に基本ブロック実行回数値加
算コードを生成して挿入し、基本ブロック実行時性能編
集出力手段が目的プログラムの実行の終了時に基本ブロ
ック実行情報テーブル中の基本ブロックCPU換算値と
基本ブロック実行回数値とから基本ブロックの実行CP
U累積値を求め関数名および基本ブロック番号とともに
編集して実行時性能測定結果リストを出力する。
【0008】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0009】図1は、本発明の一実施例に係る目的プロ
グラムの実行時性能測定方式の構成を示すブロック図で
ある。本実施例の目的プログラムの実行時性能測定方式
は、ジョブ起動手段1と、コンパイラ2と、ユーザプロ
グラム3と、オブジェクトコード生成部4と、基本ブロ
ックCPU換算値集計手段5と、基本ブロック実行回数
値加算コード埋込み手段6と、基本ブロック実行情報テ
ーブル7と、基本ブロック実行時性能編集出力手段8
と、ソースプログラムライブラリ9と、目的プログラム
ライブラリ10と、コンパイルリスト11と、実行時性
能測定結果リスト12と、パラメータ13とから構成さ
れている。
【0010】図2は、基本ブロックCPU換算値集計手
段5で登録され、ユーザプログラム3で更新され、基本
ブロック実行時性能編集出力手段8で参照される基本ブ
ロック実行情報テーブル7の詳細を示す図である。基本
ブロック実行情報テーブル7は、目的プログラムに対応
するソースプログラム中の各関数に対応する関数名と、
その関数に対して生成された一連のオブジェクトコード
の命令の並びを分岐命令の出現毎に区切られた基本ブロ
ックと呼ばれる命令の集合として識別する基本ブロック
番号と、その基本ブロックの命令の集合を実行するのに
要するハードウェアのCPU性能値を示す基本ブロック
CPU換算値と、その基本ブロックの実行時における実
行回数を保持する基本ブロック実行回数値とからなる複
数のエントリで構成されている。
【0011】次に、このように構成された本実施例の目
的プログラムの実行時性能測定方式の動作について説明
する。
【0012】ジョブ起動手段1は、パラメータ13を入
力して処理すべきプログラム名情報を得た後、指定され
たソースプログラムを翻訳するためにコンパイラ2を起
動する。
【0013】コンパイラ2は、ジョブ起動手段1より起
動されると、ソースプログラムライブラリ9より指定さ
れたソースプログラムを入力して翻訳を開始し、翻訳し
たソースプログラムに対してオブジェクトコードを生成
するためにオブジェクトコード生成部4を起動する。
【0014】オブジェクトコード生成部4は、コンパイ
ラ2より起動されると、翻訳されたソースプログラムの
各関数に対してオブジェクトコードを生成し、生成した
一連のオブジェクトコードの各命令の情報を持って基本
ブロックCPU換算値集計手段5を起動する。
【0015】基本ブロックCPU換算値集計手段5は、
各関数に対して生成されたオブジェクトコードの命令群
の各命令に対して分岐命令の出現まで毎にハードウェア
のCPU性能の換算値を集計し、それを基本ブロックを
構成するオブジェクトコードの命令群に対する基本ブロ
ックCPU換算値とし、その基本ブロックを識別する基
本ブロック番号とその基本ブロックが属する関数名とと
もに基本ブロック実行情報テーブル7に登録する。この
とき、基本ブロック実行情報テーブル7中の基本ブロッ
ク実行回数値は、ゼロに初期化しておく。その後、基本
ブロックCPU換算値集計手段5は、基本ブロック実行
回数値加算コード埋込み手段6を起動する。
【0016】基本ブロック実行回数値加算コード埋込み
手段6は、登録された基本ブロック実行情報テーブル7
中の基本ブロック実行回数値にその基本ブロックが実行
される毎に1ずつ加算されるように目的プログラム中の
各基本ブロックに対応するオブジェクトコードの中に基
本ブロック実行回数値加算コードを生成して挿入する。
【0017】コンパイラ2は、翻訳した結果を目的プロ
グラムとして目的プログラムライブラリ10に出力し、
ソースプログラムと各関数名および基本ブロック番号と
の対応を含む翻訳結果リストをコンパイルリスト11に
出力する。
【0018】その後、ジョブ起動手段1は、翻訳された
目的プログラムを目的プログラムライブラリ10より入
力し、ユーザプログラム3を起動する。
【0019】ユーザプログラム3は、ジョブ起動手段1
より起動されると、指定されたソースプログラムに対応
する目的プログラムを実行し、目的プログラムの実行中
に挿入された基本ブロック実行回数値加算コードが実行
される毎に対応する基本ブロック実行情報テーブル7中
の基本ブロック実行回数値が1ずつ加算される。目的プ
ログラムの実行が終了したならば、ユーザプログラム3
は、基本ブロック実行時性能編集出力手段8を起動す
る。
【0020】基本ブロック実行時性能編集出力手段8
は、基本ブロック実行情報テーブル7中の基本ブロック
CPU換算値と基本ブロック実行回数値とからその基本
ブロックの実行CPU累積値を求め、関数名および基本
ブロック番号とともに編集して実行時性能測定結果リス
ト12を出力する。
【0021】
【発明の効果】以上説明したように本発明は、目的プロ
グラムの実行時性能を測定する処理において、目的プロ
グラムのオブジェクトコードに基本ブロック実行回数値
加算コードを挿入するとともに基本ブロックに対応する
オブジェクトコードのCPU換算値と実行回数値とを情
報として持つことにより、情報を収集する機構が簡単で
あり、基本ブロック単位で挿入された基本ブロック実行
回数値加算コードにより実行回数値の加算が行われるた
めに処理速度が速く、必要とするテーブルエントリも基
本ブロックの個数分でよいためにメモリ量が少なく、蓄
積する必要もないためにファイル容量が不要であるとい
う効果がある。
【0022】また、単に文や関数などの実行回数を集計
する方式と違って、どの箇所でどれだけのCPU時間を
使ったかという情報(実行CPU累積値)が簡単かつ効
率よく得られるため、大規模プログラムや実行時間の長
いプログラムでも実行時性能を効率的に測定できるとい
う効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例に係る目的プログラムの実行
時性能測定方式の構成を示すブロック図である。
【図2】図1中の基本ブロック実行情報テーブルの構成
図である。
【符号の説明】
1 ジョブ起動手段 2 コンパイラ 3 ユーザプログラム 4 オブジェクトコード生成部 5 基本ブロックCPU換算値集計手段 6 基本ブロック実行回数値加算コード埋込み手段 7 基本ブロック実行情報テーブル 8 基本ブロック実行時性能編集出力手段 9 ソースプログラムライブラリ 10 目的プログラムライブラリ 11 コンパイルリスト 12 実行時性能測定結果リスト 13 パラメータ

Claims (1)

  1. 【特許請求の範囲】 【請求項1】 ソースプログラム中の対応する関数名
    と、その関数に対して生成された一連のオブジェクトコ
    ードの命令の並びを分岐命令の出現毎に区切られた基本
    ブロックと呼ばれる命令の集合として識別する基本ブロ
    ック番号と、その基本ブロックの命令の集合を実行する
    のに要するハードウェアのCPU性能値を示す基本ブロ
    ックCPU換算値と、その基本ブロックの実行時におけ
    る実行回数を保持する基本ブロック実行回数値とを情報
    として持つ基本ブロック実行情報テーブルと、 ソースプログラムを翻訳し目的プログラムを生成すると
    きに各関数に対して生成されたオブジェクトコードの命
    令群の各命令に対して分岐命令の出現まで毎にハードウ
    ェアのCPU性能の換算値を集計しそれを基本ブロック
    を構成するオブジェクトコードの命令群に対する基本ブ
    ロックCPU換算値として基本ブロックを識別する基本
    ブロック番号とその基本ブロックが属する関数名ととも
    に前記基本ブロック実行情報テーブルに登録する基本ブ
    ロックCPU換算値集計手段と、 この基本ブロックCPU換算値集計手段によって登録さ
    れた前記基本ブロック実行情報テーブル中の基本ブロッ
    ク実行回数値にその基本ブロックが実行される毎に1ず
    つ加算されるように目的プログラム中の各基本ブロック
    に対応するオブジェクトコードの中に基本ブロック実行
    回数値加算コードを生成して挿入する基本ブロック実行
    回数値加算コード埋込み手段と、 目的プログラムの実行の終了時に前記基本ブロック実行
    情報テーブル中の基本ブロックCPU換算値と基本ブロ
    ック実行回数値とから基本ブロックの実行CPU累積値
    を求め関数名および基本ブロック番号とともに編集して
    実行時性能測定結果リストを出力する基本ブロック実行
    時性能編集出力手段とを有することを特徴とする目的プ
    ログラムの実行時性能測定方式。
JP3200072A 1991-07-15 1991-07-15 目的プログラムの実行時性能測定方式 Pending JPH0520135A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3200072A JPH0520135A (ja) 1991-07-15 1991-07-15 目的プログラムの実行時性能測定方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3200072A JPH0520135A (ja) 1991-07-15 1991-07-15 目的プログラムの実行時性能測定方式

Publications (1)

Publication Number Publication Date
JPH0520135A true JPH0520135A (ja) 1993-01-29

Family

ID=16418380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3200072A Pending JPH0520135A (ja) 1991-07-15 1991-07-15 目的プログラムの実行時性能測定方式

Country Status (1)

Country Link
JP (1) JPH0520135A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279150B1 (en) * 1997-09-01 2001-08-21 Siemens Nixdorf Informationssysteme Aktiengesellschaft Method for converting an object code into a program code
WO2011058946A1 (ja) * 2009-11-10 2011-05-19 株式会社日立製作所 実行命令数計測方法、実行クロック数計測方法及び計算機システム
JP2015210574A (ja) * 2014-04-24 2015-11-24 富士通株式会社 情報処理装置,処理方法及び処理プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279150B1 (en) * 1997-09-01 2001-08-21 Siemens Nixdorf Informationssysteme Aktiengesellschaft Method for converting an object code into a program code
WO2011058946A1 (ja) * 2009-11-10 2011-05-19 株式会社日立製作所 実行命令数計測方法、実行クロック数計測方法及び計算機システム
JP2011103026A (ja) * 2009-11-10 2011-05-26 Hitachi Ltd 実行命令数計測方法、実行クロック数計測方法及び計算機システム
JP2015210574A (ja) * 2014-04-24 2015-11-24 富士通株式会社 情報処理装置,処理方法及び処理プログラム

Similar Documents

Publication Publication Date Title
Klappert et al. Interpolation of dense and sparse rational functions and other improvements in FireFly
Ketterlin et al. Profiling data-dependence to assist parallelization: Framework, scope, and optimization
US20040216091A1 (en) Method and apparatus for resolving memory allocation trace data in a computer system
JPH07234792A (ja) コンパイル処理装置
US20070094646A1 (en) Static single assignment form pattern matcher
JPH04307625A (ja) ループ最適化方法及び装置
US6425124B1 (en) Resource allocation device for reducing the size and run time of a machine language program
Novillo Samplepgo-the power of profile guided optimizations without the usability burden
Huda et al. Automatic parallel pattern detection in the algorithm structure design space
US6643630B1 (en) Apparatus and method for annotating an intermediate representation of an application source code
Yu et al. Multi-slicing: a compiler-supported parallel approach to data dependence profiling
CN106294136B (zh) 并行程序运行期间性能变化的在线检测方法和系统
JPH0520135A (ja) 目的プログラムの実行時性能測定方式
Ermedahl et al. Clustered worst-case execution-time calculation
CN114969446B (zh) 一种基于敏感度模型的分组混合精度配置方案搜索方法
Cox et al. Commercializing profile-driven optimization
Lee et al. Performing data flow analysis in parallel
JP3175768B2 (ja) 複合型命令スケジューリング処理装置
CN117271011B (zh) 一种建筑信息模型数据的转换处理系统和方法
JPH0721032A (ja) プログラム最適化処理方式
US6694512B1 (en) Data processing device, data processing method and supply medium thereof
Braßel et al. Lazy call-by-value evaluation
JPH03201144A (ja) プログラムの実行時性能測定方式
JPH02176938A (ja) 機械語命令最適化方式
Bernardi et al. Supporting the Comprehension of Object-oriented Software Systems by Extended MM Graph.