JP2002229818A - プログラム実行時間解析方法およびその装置 - Google Patents

プログラム実行時間解析方法およびその装置

Info

Publication number
JP2002229818A
JP2002229818A JP2001025243A JP2001025243A JP2002229818A JP 2002229818 A JP2002229818 A JP 2002229818A JP 2001025243 A JP2001025243 A JP 2001025243A JP 2001025243 A JP2001025243 A JP 2001025243A JP 2002229818 A JP2002229818 A JP 2002229818A
Authority
JP
Japan
Prior art keywords
execution time
processing
program
analyzing
variable
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
JP2001025243A
Other languages
English (en)
Inventor
Shingo Kori
伸吾 郡
Yoshimi Funahashi
吉美 舟橋
Takashi Iijima
隆志 飯島
Takayasu Kasahara
孝保 笠原
Tsutomu Matsuki
勉 松木
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 JP2001025243A priority Critical patent/JP2002229818A/ja
Publication of JP2002229818A publication Critical patent/JP2002229818A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 計算機で実際に動作することなく、プログラ
ムを静的に解析して実行時間(性能値)の予測を行うプ
ログラム実行時間解析方法及び装置を提供する。 【解決手段】 ソースプログラム(111)を入力と
し、ソースプログラムの処理構造を解析し実行時間に影
響を与える変数を抽出する処理構造解析手段(101)
と、処理構造解析手段で抽出した変数についてソースプ
ログラムのデータの構造を解析し値の入力を必要とする
変数を抽出するデータ構造解析手段(102)と、デー
タ構造解析手段で抽出された変数に値の入力する推定用
データ入力手段(103)と、推定用データ入力手段で
入力された値に対応した実行時間を推定する実行時間推
定手段(104)とで構成され、プログラムを解析して
実行時間の長短を比較評価する指標を算出し、実行時間
の推定を行うことを可能とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、計算機システムの
実行時間を解析する方法、及び、そのための装置に係わ
り、特に、実際に動作する環境が無くとも、計算機向け
ソースプログラムの実行時間を、プログラム単位で、静
的に解析を行う方法、及び、そのための装置に関する。
【0002】
【従来の技術】計算機向けソースプログラムの実行時間
などの性能測定は、実際に動作する環境では、既に周知
の方式であり、一般的には、例えば、ストップウオッチ
を用い、あるいは、プログラム上にタイムスタンプを埋
め込むことにより、その性能測定が行われる。しかしな
がら、動作する環境が無い場合には、熟練者がその性能
を予想することが一般的に行われている。
【0003】また、実際に動作する環境が無い場合にお
けるプログラムの性能測定に関する従来の技術として
は、例えば、特開平11−296399号公報等によっ
て既に知られるように、ソースコードを解析して実際に
動作するための最適なテストケースを作成する技術や、
あるいは、例えば、特開平10−91416号公報等に
よって知られるように、ループ制御における実行ステッ
プ数を表示する技術などがある。
【0004】
【発明が解決しようとする課題】計算機システムは、一
般的に、設計、製作、テストという段階を踏んで開発さ
れる。しかしながら、プログラムの実行時間が表面化す
る(問題とされる)のは、実際に動作が可能になる工
程、即ち、テストの最終工程である。その為、プログラ
ムに問題があった場合には、システムの設計からのやり
直しが必要となり、これでは、開発コストが多大となっ
てしまう。また、プログラム開発においては、早い段階
での実行時間評価、問題部分の早期摘出が重要である。
【0005】そこで、本発明では、上述した従来技術に
おける問題点に鑑みて、プログラムを実際に動作しなく
とも、プログラムの実行時間(性能値)の予測解析を可
能とするプログラム実行時間解析方法、及び、そのため
の装置を提供することを目的とし、もって、その実行時
間(性能値)の予測及び/又はその性能問題の対策を行
うことを可能とするものである。
【0006】
【課題を解決するための手段】本発明によれば、上記の
目的を達成するため、まず、計算機向けソースプログラ
ムの実行時間を解析するプログラム実行時間解析方法で
あって:前記ソースプログラムを入力とし、前記ソース
プログラムの処理構造を解析して実行時間に影響を与え
る変数を抽出する処理構造解析ステップと;前記処理構
造解析ステップで抽出した変数について、前記ソースプ
ログラムのデータ構造を解析し、値の入力を必要とする
変数を抽出するデータ構造解析ステップと;前記データ
構造解析ステップで抽出された前記変数に値を入力する
推定用データ入力ステップと;前記推定用データ入力ス
テップで入力された前記変数の値に対応した実行時間を
推定する実行時間推定ステップとを有し、もって、プロ
グラムの実行時間を算出するプログラム実行時間解析方
法が提供される。
【0007】また、本発明の方法においては、前記処理
構造解析ステップでは、前記ソースプログラムのループ
処理に着目して実行時間を導出し、あるいは、前記デー
タ構造解析ステップでは、前記ソースプログラムの制御
構造のループ回数に含まれる変数を抽出して実行時間の
導出に使用し、あるいは、前記実行時間推定ステップで
は、ループ回数を元に実行時間を算出してもよい。
【0008】さらに、本発明の方法においては、前記処
理構造解析ステップでは、ループ処理以外の処理につい
ては処理の内容に関わらずあらかじめ決められた一定の
実行時間とし、あるいは、ループ処理以外の処理につい
ては処理の内容に応じてあらかじめ決められた一定の実
行時間とすることも可能である。
【0009】加えて、本発明によれば、やはり上記の目
的を達成するため、計算機向けソースプログラムの実行
時間を解析するプログラム実行時間解析装置であって:
ソースプログラムを入力とし、前記ソースプログラムの
処理構造を解析して実行時間に影響を与える変数を抽出
する処理構造解析手段と;前記処理構造解析手段で抽出
した変数について、前記ソースプログラムのデータの構
造を解析して値の入力を必要とする変数を抽出するデー
タ構造解析手段と;前記データ構造解析手段で抽出され
た前記変数に値を入力する推定用データ入力手段と;前
記推定用データ入力手段で入力された値に対応した実行
時間を推定する実行時間推定手段を有し、もって、プロ
グラムの実行時間を算出するプログラム実行時間解析装
置が提供される。
【0010】また、本発明によれば、前記の装置におい
て、前記処理構造解析手段は、さらに、ループ処理に着
目して実行時間を導出する手段を有し、あるいは、前記
データ構造解析手段は、さらに、制御構造のループ回数
に含まれる変数を抽出し、実行時間の導出に使用する手
段を有し、あるいは、前記実行時間推定手段は、さら
に、ループ回数を元に実行時間を算出する手段を有して
もよい。
【0011】また、本発明によれば、前記の装置におい
て、さらに、設定情報の入力及び結果の出力手段を有す
ることも可能である。
【0012】
【発明の実施の形態】以下、本発明の実施の形態につい
て、添付の図面を参照しながら詳細に説明する。まず、
図1は、本発明の一実施の形態であるプログラム実行時
間解析方法を実施するための装置の構成を表す。
【0013】この装置は、図からも明らかなように、処
理構造解析手段(101)と、データ構造解析手段(1
02)と、推定用データ入力手段(103)と、実行時
間推定手段(104)と、実行時間表示手段(105)
と、そして、記憶手段(111〜115)とから構成さ
れる。なお、これらの手段(101〜105)は、例え
ばコンピュータ装置から構成されており、また、これら
の記憶手段には、計算機向けソースプログラム(11
1)と、そして、上記各手段(101〜104)により
演算処理された処理構造解析結果(112)、データ構
造解析結果(113)、実行時間推定用データ(11
4)、実行時間推定結果(115)が、それぞれ、格納
される。
【0014】まず、上記の処理構造解析手段(101)
は、記憶手段(111)に格納されたソースプログラム
を入力し、この入力したソースプログラムに対して解析
を行う。すなわち、このソースプログラムにおける制御
の流れや、プログラムの実行時間に影響を与える変数を
明確にし、そして、その結果を処理構造解析結果として
出力し、記憶手段(112)内に格納する。なお、この
ソースプログラムを解析する際、この処理構造解析手段
(101)は、プログラムの実行時間に大きく影響する
ループ処理の構造について特に着目して解析を行うもの
である。
【0015】次に、上記のデータ構造解析手段(10
2)は、上記処理構造解析手段(101)による処理構
造解析結果に記述されているプログラムの実行時間に影
響を与える変数について、すなわち、その変数の値を決
めるための変数の構成(データ構造)と、データ(値)
の入力を必要とする変数とを、上記記憶手段(111)
に格納されたソースプログラムを解析することにより求
め、その結果を、記憶手段(113)内にデータ構造解
析結果として出力する。
【0016】また、上記の推定用データ入力手段(10
3)は、上記データ構造解析手段(102)によるデー
タ構造解析結果から、データ(値)の入力を必要とする
変数について、プログラムの実行時間の推定に用いるた
めのデータ(値)の入力を行い、そして、この入力され
たデータ(値)を、記憶手段(114)内に実行時間推
定用データとして保存する。
【0017】そして、上記の実行時間推定手段(10
4)は、上記推定用データ入力手段(103)による実
行時間推定用データを、上記したデータ構造解析結果と
処理構造解析結果とに当てはめることにより、上記入力
した変数のデータ(値)に対応した実行時間を推定し、
上記記憶手段(111)に格納されたソースプログラム
の総実行時間を求める。なお、その結果は、記憶手段
(115)内に実行時間推定結果として保存する。ま
た、実行時間表示手段(105)は、ユーザに対して、
求めた実行時間推定結果などを提示する。また、この手
段は、例えばディスプレー装置から構成され、さらに、
設定情報の入力や結果の出力手段とすることも可能であ
る。
【0018】以下、上記にその概略構成を説明したプロ
グラム実行時間解析を行う装置の処理手順について、具
体的に説明する。なお、以降の説明では、プログラム実
行時間の解析対象となるプログラムの一例として、添付
の図2に示すソースプログラムを用いて説明を行う。
【0019】この図2に示したソースプログラムは、所
謂、C言語で記述されてものであるが、しかしながら、
本発明は、プログラムを記述する使用言語について所定
の言語に限定されるものではなく、その他の種々の言語
により記述されたプログラムにも適用することができ
る。
【0020】まず、処理構造解析手段(101)は、上
述のように、ソースプログラムの制御の流れやプログラ
ムの実行時間に影響する変数を求めるために、記憶手段
(111)内のソースプログラムに対して、以下の解析
を行う。
【0021】なお、この処理構造解析手段(101)に
おける詳細な処理手順を、図3に示す。すなわち、この
処理構造解析手段では、まず、ソースプログラムから処
理の内容を読み出す(ステップ:301)。次に、読み
出した処理の種類を判定する(ステップ:302)。こ
こで、処理の種類としては、代入やファイルへのアクセ
スなどのような単一の処理である「単純処理」、条件に
よって処理の流れを制御する「分岐処理」、そして、同
じ処理を繰り返し行う「ループ処理」の3種類に分けら
れる。
【0022】次に、上記複数の処理の種類に応じて解析
を行う(ステップ:303〜305)。なお、処理の種
類によって解析方法の詳細は異なるが、いずれの処理の
種類においても、解析結果から処理の流れを表す「処理
構造パターン」と、処理の実行時間を決める変数や値と
「実行時間指標」を表す「処理テーブル」とを作成す
る。
【0023】ここで、「実行時間指標」とは、ソースプ
ログラムを実際に動作させたときに得られる正確な実行
時間ではなく、ソースプログラムを実行することなしに
実行時間の長短を比較評価することができる値である。
本実施の形態では、例えば、1つの単純処理を実行時間
指標=1としている。しかしながら、単純処理の内容に
よっては、この実行時間指標の値を変えることも可能で
ある。例えば、代入文の場合は実行時間指標=1、ファ
イルアクセスの場合は実行時間指標=20にすることな
ども可能である。
【0024】上記図3において、単純処理の解析(ステ
ップ:303)の場合、処理構造パターンは、図4
(A)の処理構造パターン(401)となり、上記した
「実行時間指標」のブロックだけを持つことになる。ま
た、この単純処理では、その内容に関わらず、1つの単
純処理を「実行時間指標」に変換するため、このような
処理構造パターンとなる。また、複数の単純処理が連続
する場合には、それぞれの単純処理の実行時間指標を合
計し、1つのブロックの処理構造パターンとすることも
できる。この時の処理内容テーブルは、図4(B)の処
理内容テーブル(410)に示すように、処理構造パタ
ーン内のブロックの順序を表す「単純処理ブロック番号
欄」(411)と、実行時間指標をもつ「実行時間指標
欄」(412)とから構成されている。
【0025】例えば、上記図2に一例を示したソースプ
ログラムの単純処理部分(201)を解析すると、4つ
の単純処理が連続している。本実施の形態では、1つの
単純処理に対しては「実行時間指標」=1とするため、
「実行時間指標」=4となり、その結果、上記図2のソ
ースプログラムの単純処理部分(201)は、図5
(A)に示される処理構造パターン(501)と、図5
(B)に示される処理内容テーブル(510)となる。
【0026】次に、図3における分岐処理の解析(ステ
ップ:304)の場合には、「処理構造パターン」は、
図6(A)の処理構造パターン(601)となり、「処
理内容テーブル」は、図6(B)の処理内容テーブル
(610)に示すようになる。
【0027】すなわち、「処理構造パターン」は、「分
岐条件」のブロック(602)、TRUE時の「処理ブ
ロック」(603)、FALSE時の「処理ブロック」
(604)を持つことになる。他方、「処理内容テーブ
ル」は、処理構造パターン内のブロックの順序を表す
「分岐構成ブロック番号」の欄(611)と、分岐する
条件を表す「分岐条件」の欄(612)と、分岐条件が
TRUE時の実行時間指標を表す「TRUE実行時間指
標」の欄(613)と、分岐条件がFALSE時の実行
時間指標を表す「FALSE実行時間指標」の欄(61
4)から構成されている。
【0028】さらに、上記「分岐条件」におけるTRU
E時、及び、FALSE時の処理ブロック内が、共に単
純処理である場合は、これら単純処理を実行時間指標に
変換し、これにより、TRUE時、及びFALSE時に
おけるそれぞれの実行時間指標(「TRUE実行時間指
標」、「FALSE実行時間指標」)を求める。それか
ら、これら分岐処理を、以下に述べるループ処理と比較
してプログラムの実行時間への影響が少ないので、TR
UE時とFALSE時の実行時間指標の平均値を、「実
行時間指標」を持つ単純処理に変換する。このように、
ループ処理以外の処理については、その処理の内容に関
わらずあらかじめ定められた一定の実行時間とすること
により、あるいは、その処理の内容に応じたあらかじめ
定められた一定の実行時間とすることにより、処理構造
の簡略化を図ることが可能になる。
【0029】本実施の形態では、単純処理への変換時
に、TRUE時とFALSE時の実行時間指標の平均値
を用いたが、TRUE時とFALSE時の通過頻度を考
慮した算出方法を用いることもできる。また、TRUE
時、FALSE時の処理ブロック内に分岐処理がある場
合には、先に、この処理ブロックに含まれる分岐処理の
解析を行う。例えば、上記図2のソースプログラムの分
岐処理部分(202)を解析すると、TRUE時、FA
LSE時の処理ブロックは共に1つの単純処理であるた
め実行時間指標=1となり、そのため、図7(A)に示
される処理構造パターン(701)と、図7(B)に示
される処理内容テーブル(710)となる(TRUE実
行時間指標=FALSE実行時間指標=1)。それか
ら、TRUE時の実行時間指標(TRUE実行時間指標
=1)とFALSE時の実行時間指標(FALSE実行
時間指標=1)との平均値=1により、図8(A)及び
(B)に示すように、「実行時間指標=1」を持つ単純
処理に変換する。
【0030】さらに、ループ処理の解析(305)の場
合、「処理構造パターン」は、図9(A)の処理構造パ
ターン(901)となり、制御変数に初期値を与える
「制御変数の初期値」ブロック(902)、ループの終
了条件を示す「ループ終了条件」ブロック(903)、
ループ処理内で実行される「処理ブロック」(90
4)、制御変数の更新式である「制御変数の更新式」ブ
ロック(905)を持つことになる。
【0031】一方、「処理内容テーブル」は、図8
(B)の処理内容テーブル(910)に示すように、処
理構造パターン内のブロックの順序を表す「ループ構成
ブロック番号」欄(911)と、ループの回数を制御し
ている変数を表す「ループ制御変数」欄(912)と、
ループ制御変数の初期値を表す「制御変数の初期値」欄
(913)と、ループ制御変数を繰り返し毎に更新する
式を表す「制御変数の更新式」欄(914)と、ループ
処理から抜けるための条件を表す「ループ終了条件」欄
(915)と、ループ処理内で実行される処理の実行時
間指標を表す「ループ内実行時間指標」欄(916)
と、ループの回数を決定する式を表す「ループ回数」欄
(917)とから構成されている。
【0032】これを、再び上記図2に示したソースプロ
グラムのループ処理部分(203)に適用して解析する
と、上記の説明からも明らかなように、図10(A)及
び(B)で示される「処理構造パターン」(1001)
と「処理内容テーブル」(1010)となる。
【0033】ここで、再び、上記図3のフローチャート
に戻り、上述した複数の処理の種類に応じた解析(ステ
ップ:303〜305)が終わると、以前に解析を終え
た処理の部分と結合させる(ステップ:306)。その
後、ソースプログラムから読み込む処理がまだ残ってい
るか否かを判定する(ステップ:307)。この判定の
結果、残っていれば(「NO」の場合)、再び、処理内
容の読み込み(ステップ:301)から上記処理(ステ
ップ:302〜306)を繰り返し、他方、残っていな
ければ(「YES」の場合)、処理構造解析結果を保存
(ステップ:308)し、処理を終了することとなる。
【0034】以上に詳細に説明した処理構造解析の結果
の構成例を、添付の図11に示す。この図からも明らか
なように、処理構造解析結果は、1つのソースプログラ
ムに対して1つの「処理構造パターン」と、単純処理、
分岐処理、ループ処理に対応した複数の「処理内容テー
ブル」をもつ構成となる。なお、この図11に示す処理
構造解析結果は、上記図2のソースプログラムについ
て、上記処理構造解析手段(101)における図3の処
理手順に従って解析した結果を示している。
【0035】この図11の処理構造解析結果から、上記
図2のソースプログラム全体について、その実行時間の
長短を決めるのは、図の右側に示された「ループ構成ブ
ロック番号」の「B3−B6」、特に、そのループ処理
の「ループ回数」であり、そして、そのループ回数を決
めているのは、変数loopstartと変数loopendの2つであ
ることがわかる。
【0036】このように、上記処理構造解析手段(10
1)によりソースプログラムの処理構造解析結果が出力
されると、次に、データ構造解析手段(102)により
処理構造解析結果全体の実行時間の長短を決める変数に
与えるデータ(値)を決めるための変数の構成(データ
構造)と、データ(値)入力を必要とする変数とを、や
はり、上記記憶手段(111)内のソースプログラムを
解析することにより求め、その結果をデータ構造解析結
果として出力する。
【0037】このデータ構造解析手段(102)の詳細
な処理手順を、添付の図12に示す。データ構造解析手
段では、まず、上記処理構造解析手段(101)による
処理構造解析結果から、ループ回数を決める変数を読み
込み、これをデータ構造解析対象リストに登録する(ス
テップ:1201)。
【0038】次に、データ構造解析対象リストに登録さ
れている変数について、ソースプログラムを解析し、そ
の変数に対して値を与えている直前の代入文を検索する
(ステップ:1202)。その後、直前の代入文がある
か否かを判定する(ステップ:1203)。
【0039】上記の判定の結果、直前の代入文が見つか
らなかった(図の「なし」)場合、ソースプログラム内
では値を与えられないことになるので、外部からデータ
を与えてやる必要があるデータ入力変数として、データ
構造解析結果に登録する(ステップ:1204)。一
方、直前の代入文が見つかった(図の「あり」)場合、
さらに、その代入文に変数が含まれているか否かを判定
する(ステップ:1205)。判定の結果、代入文に変
数が含まれていない(図の「なし」)場合、その変数に
は固定値が与えられていることになるため、データ構造
解析結果に固定値として登録する(ステップ:120
6)。他方、代入文に変数が含まれる(図の「あり」)
場合、代入文に含まれている全ての変数をデータ構造解
析対象リストに登録する(ステップ:1207)。
【0040】次に、データ構造解析対象リストに登録さ
れている変数が未だあるか否かを判定する(ステップ:
1208)。もし、データ構造解析対象リストに変数が
残っていれば(図の「あり」)、残っている変数につい
て、再び、上記のステップ1202から解析を行う。他
方、データ構造解析対象リストに変数が残っていなけれ
ば(図の「なし」)、データ構造解析は終了となる。
【0041】上記にその動作を詳述したデータ構造解析
手段(102)により作成されるデータ構造解析結果の
一構成例を、添付の図13に示す。なお、このデータ構
造解析結果は、上記処理構造解析結果でデータ構造解析
が必要な変数毎に作成される。そして、図からも明らか
なように、このデータ構造解析結果は、データ構造解析
の対象となるループ処理のブロック番号である「ループ
構成ブロック番号」(1301)と、そのループ処理の
「ループ回数」を決める変数(1302)について、ル
ープ回数を決める変数である「解析対象変数」(130
3)と、解析対象変数の値を決める変数の構造を表した
「データ構造」(1304)と、外部からデータを入力
する必要がある変数である「入力変数」(1305)と
の関係を記述している。
【0042】なお、上記図13のデータ構造解析結果
は、上記図11に示した処理構造解析結果において、ル
ープ回数を決める変数について解析を行った結果であ
る。すなわち、解析対象変数は、変数loopstart(13
06)と変数loopend(1307)である。そして、解
析の結果、上記変数loopstartと変数loopendの値を決め
る変数は、引数start(1308)と引数end(130
9)であることが特定できる。
【0043】以上に述べたデータ構造解析手段(10
2)によりデータ構造解析結果が出力されると、次に、
推定用データ入力手段(103)により、データ構造解
析結果のデータ入力変数に値を与え、そのデータを実行
時間推定用データとして保存する。この実行時間推定用
データの構成例を、添付の図14に示す。
【0044】図14に示す実行時間推定データは、デー
タ構造解析結果で「入力変数」となった変数(引数)st
art(1308)と変数(引数)end(1309)につい
て表したものである。ここでは、一例として、変数(引
数)startと変数(引数)endに、それぞれ、その値とし
て100(1401)と500(1402)を与えてい
る。
【0045】以上のようにして推定用データ入力手段
(103)により実行時間推定用データが入力される
と、次に、実行時間推定手段(104)により、ソース
プログラムの総実行時間指標を算出する。なお、この実
行時間推定手段による詳細な処理手順を、添付の図15
により示す。
【0046】図15では、実行時間推定手段(104)
は、まず、上記実行時間推定用データから入力された値
を読み込む(ステップ:1501)。つまり、推定用デ
ータ入力手段(103)で入力された入力変数への値で
ある、変数(引数)start=100、変数(引数)end=
500が読み込まれる。
【0047】次に、読み込んだ値をデータ構造解析結果
(上記図13を参照)に当てはめ、「解析対象変数」の
値を算出する(ステップ:1502)。具体的には、上
記図13に示すデータ構造解析結果に、変数(引数)st
art=100(1308)、変数(引数)end=500
(1309)が適用され、「解析対象変数」(130
3)である変数(引数)loopstart=100と変数(引
数)loopend=500が算出される(1306、130
7)。
【0048】さらに、上記で算出した「解析対象変数」
を処理構造の解析結果(上記図11を参照)にあては
め、「ループ回数」を算出する(ステップ:150
3)。具体的には、上記図11の処理解析結果に、上記
で算出された変数(引数)loopstart=100と変数
(引数)loopend=500とを適用し、「ループ回数」
=loopend −loopstart=500−100=400が算
出される。
【0049】次に、上記処理解析結果(上記図11を参
照)の「実行時間指標」を合計し、ソースプログラムの
「総実行時間指標」を算出する(ステップ:150
4)。具体的には、上記図11の処理構造の解析結果か
ら、ループ処理部の「ループ内実行時間指標」は「1」
であることから、この部分の実行時間指標は400×1
=400となる。そして、「総実行時間指標」として
は、3+4+400=407が得られることとなる。そ
の後、これらの算出した「総実行時間指標」などの推定
結果を、実行時間推定結果として保存し(ステップ:1
505)、処理を終了する。
【0050】以上にその詳細な動作を説明した実行時間
推定手段(104)により求められた実行時間推定結果
の構成例を、添付の図16に示す。この図からも明らか
なように、この実行時間推定結果は、上記図11に示し
た処理解析結果に、入力された入力変数への値と、ルー
プ処理部分の実行時間指標と、総実行時間指標が追加さ
れたものである。
【0051】その後、上記の実行時間推定手段(10
4)により、実行時間推定結果が出力されると、実行時
間表示手段(105)により、この出力された実行時間
推定結果がユーザに提示される。なお、ここでは、上記
図16に示す実行時間推定結果が、例えばディスプレー
装置などから構成される上記実行時間表示手段(10
5)上に提示される。
【0052】次に、図17には、本装置の画面イメージ
の一例を示す。この画面で本装置を機能させるために
は、まず、「ファイル」部(1701)から実行時間指
標を求める対象となるソースプログラムを選択し、「解
析」ボタン(1702)を押す。その結果、「データ入
力」部(1703)の「入力変数」部(1704)に、
実行時間指標を求めるために値の入力が必要な「入力変
数」が表示される。次に、この「入力変数」について
「推定用データ」部(1705)に値を入力し、「推定
開始」ボタン(1706)を押す。その結果、「実行時
間指標」部(1707)には、「推定用データ部」に入
力した値に対応した実行時間指標が表示されることとな
る。
【0053】
【発明の効果】以上の詳細な説明からも明らかなよう
に、本発明になるプログラム実行時間解析方法および装
置によれば、例えばソースプログラムなどのプログラム
を静的に解析することにより、実行時間の長短を比較評
価することができる指標を算出することができ、これに
より、実際にプログラムが動作する環境が無くとも、プ
ログラム単位で静的に実行時間の推定を行うことが可能
となる。
【図面の簡単な説明】
【図1】本発明の一実施の形態であるプログラム実行時
間解析を行う装置の概略構成を示すブロック図である。
【図2】上記本発明の装置によりプログラム実行時間の
解析が行われるソースプログラムの一例を示す図であ
る。
【図3】上記本発明の装置における処理構造解析手段の
詳細な処理手順を示すフローチャート図である。
【図4】上記図3のフローチャートの単純処理による解
析結果(処理構造パターンと処理内容テーブル)を示す
図である。
【図5】特に、図2のソースプログラムの部分201に
ついて、上記単純処理による解析結果(処理構造パター
ンと処理内容テーブル)の一例を示す図である。
【図6】図3のフローチャートの分岐処理による解析結
果(処理構造パターンと処理内容テーブル)を示す図で
ある。
【図7】特に、図2のソースプログラムの部分202に
ついて、上記分岐処理による解析結果(処理構造パター
ンと処理内容テーブル)の一例を示す図である。
【図8】ソースプログラムの部分202についての上記
分岐処理から単純処理への変換(処理構造パターンと処
理内容テーブル)の一例を示す図である。
【図9】図3のフローチャートのループ処理における解
析結果(処理構造パターンと処理内容テーブル)を示す
図である。
【図10】特に、ソースプログラムの部分203の上記
ループ処理解析の結果(処理構造パターンと処理内容テ
ーブル)の一例を示す図である。
【図11】図3のフローチャートにおける処理構造解析
結果(処理構造パターンと処理内容テーブル)の一例を
示す図である。
【図12】上記本発明の装置におけるデータ構造解析手
段の詳細な処理手順を示すフローチャート図である。
【図13】上記データ構造解析手段により作成されるデ
ータ構造解析結果の一構成例を示す図である。
【図14】上記本発明の装置における推定用データ入力
手段により作成保存される実行時間推定用データの一構
成例を示す図である。
【図15】上記推定用データ入力手段における詳細な処
理手順を示すフローチャート図である。
【図16】上記本発明の装置における実行時間推定手段
により求められた実行時間推定結果の一構成例を示す図
である。
【図17】上記本発明のプログラム実行時間解析装置に
おける画面イメージの一例を示す図である。
【符号の説明】
101 処理構造解析手段 102 データ構造解析手段 103 推定用データ入力手段 104 実行時間推定手段 105 実行時間表示手段 111 ソースプログラム記憶手段 112 処理構造解析結果記憶手段 113 データ構造解析結果記憶手段 114 実行時間推定用データ記憶手段 115 実行時間推定結果記憶手段
───────────────────────────────────────────────────── フロントページの続き (72)発明者 飯島 隆志 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所情報制御システム事業部 内 (72)発明者 笠原 孝保 茨城県日立市大みか町七丁目2番1号 株 式会社日立製作所電力・電機開発研究所内 (72)発明者 松木 勉 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所情報制御システム事業部 内 Fターム(参考) 5B042 HH07 HH08 HH10 MC33 NN01

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 計算機向けソースプログラムの実行時間
    を解析するプログラム実行時間解析方法であって:前記
    ソースプログラムを入力とし、前記ソースプログラムの
    処理構造を解析して実行時間に影響を与える変数を抽出
    する処理構造解析ステップと;前記処理構造解析ステッ
    プで抽出した変数について、前記ソースプログラムのデ
    ータ構造を解析し、値の入力を必要とする変数を抽出す
    るデータ構造解析ステップと;前記データ構造解析ステ
    ップで抽出された前記変数に値を入力する推定用データ
    入力ステップと;前記推定用データ入力ステップで入力
    された前記変数の値に対応した実行時間を推定する実行
    時間推定ステップとを有し、もって、プログラムの実行
    時間を算出することを特徴とするプログラム実行時間解
    析方法。
  2. 【請求項2】 前記請求項1に記載の方法において、前
    記処理構造解析ステップでは、前記ソースプログラムの
    ループ処理に着目して実行時間を導出することを特徴と
    するプログラム実行時間解析方法。
  3. 【請求項3】 前記請求項1に記載の方法において、前
    記データ構造解析ステップでは、前記ソースプログラム
    の制御構造のループ回数に含まれる変数を抽出し、実行
    時間の導出に使用することを特徴とするプログラム実行
    時間解析方法。
  4. 【請求項4】 前記請求項1に記載の方法において、前
    記実行時間推定ステップでは、ループ回数を元に実行時
    間を算出することを特徴とするプログラム実行時間解析
    方法。
  5. 【請求項5】 前記請求項2に記載の方法において、前
    記処理構造解析ステップでは、ループ処理以外の処理に
    ついては処理の内容に関わらずあらかじめ決められた一
    定の実行時間とすることを特徴とするプログラム実行時
    間解析方法。
  6. 【請求項6】 前記請求項2に記載の方法において、前
    記処理構造解析ステップでは、ループ処理以外の処理に
    ついては処理の内容に応じてあらかじめ決められた一定
    の実行時間とすることを特徴とするプログラム実行時間
    解析方法。
  7. 【請求項7】 計算機向けソースプログラムの実行時間
    を解析するプログラム実行時間解析装置であって:ソー
    スプログラムを入力とし、前記ソースプログラムの処理
    構造を解析して実行時間に影響を与える変数を抽出する
    処理構造解析手段と;前記処理構造解析手段で抽出した
    変数について、前記ソースプログラムのデータの構造を
    解析して値の入力を必要とする変数を抽出するデータ構
    造解析手段と;前記データ構造解析手段で抽出された前
    記変数に値を入力する推定用データ入力手段と;前記推
    定用データ入力手段で入力された値に対応した実行時間
    を推定する実行時間推定手段を有し、もって、プログラ
    ムの実行時間を算出することを特徴とするプログラム実
    行時間解析装置。
  8. 【請求項8】 前記請求項7に記載の装置において、前
    記処理構造解析手段は、さらに、ループ処理に着目して
    実行時間を導出する手段を有することを特徴とするプロ
    グラム実行時間解析装置。
  9. 【請求項9】 前記請求項7に記載の装置において、前
    記データ構造解析手段は、さらに、制御構造のループ回
    数に含まれる変数を抽出し、実行時間の導出に使用する
    手段を有することを特徴とするプログラム実行時間解析
    装置。
  10. 【請求項10】 前記請求項7に記載の装置において、
    前記実行時間推定手段は、さらに、ループ回数を元に実
    行時間を算出する手段を有することを特徴とするプログ
    ラム実行時間解析装置。
  11. 【請求項11】 前記請求項7〜10の何れかに記載の
    装置において、さらに、設定情報の入力及び結果の出力
    手段を有することを特徴とするプログラム実行時間解析
    装置。
JP2001025243A 2001-02-01 2001-02-01 プログラム実行時間解析方法およびその装置 Pending JP2002229818A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001025243A JP2002229818A (ja) 2001-02-01 2001-02-01 プログラム実行時間解析方法およびその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001025243A JP2002229818A (ja) 2001-02-01 2001-02-01 プログラム実行時間解析方法およびその装置

Publications (1)

Publication Number Publication Date
JP2002229818A true JP2002229818A (ja) 2002-08-16

Family

ID=18890274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001025243A Pending JP2002229818A (ja) 2001-02-01 2001-02-01 プログラム実行時間解析方法およびその装置

Country Status (1)

Country Link
JP (1) JP2002229818A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009011057A1 (ja) * 2007-07-19 2009-01-22 Fujitsu Limited アプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置
WO2010001766A1 (ja) * 2008-07-02 2010-01-07 国立大学法人 東京工業大学 実行時間推定方法、実行時間推定プログラムおよび実行時間推定装置
JP2011181034A (ja) * 2010-03-04 2011-09-15 Nec Corp ソフトウェア実効性能評価システム、ソフトウェア実効性能評価方法、及びプログラム
JP2011180883A (ja) * 2010-03-02 2011-09-15 Nippon Steel Corp プログラム診断装置およびプログラム診断方法
US8966087B2 (en) 2009-12-08 2015-02-24 Nec Corporation Load characteristic estimation system, load characteristic estimation method, and program
WO2018150588A1 (ja) * 2017-02-20 2018-08-23 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009011057A1 (ja) * 2007-07-19 2009-01-22 Fujitsu Limited アプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置
US8392892B2 (en) 2007-07-19 2013-03-05 Fujitsu Limited Method and apparatus for analyzing application
JPWO2009011057A1 (ja) * 2007-07-19 2010-09-09 富士通株式会社 アプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置
CN102144222A (zh) * 2008-07-02 2011-08-03 国立大学法人东京工业大学 执行时间估计方法、执行时间估计程序以及执行时间估计装置
WO2010001766A1 (ja) * 2008-07-02 2010-01-07 国立大学法人 東京工業大学 実行時間推定方法、実行時間推定プログラムおよび実行時間推定装置
US8448140B2 (en) 2008-07-02 2013-05-21 Tokyo Institute Of Technology Execution time estimation method and device
JP5403760B2 (ja) * 2008-07-02 2014-01-29 国立大学法人東京工業大学 実行時間推定方法、実行時間推定プログラムおよび実行時間推定装置
CN102144222B (zh) * 2008-07-02 2014-11-05 国立大学法人东京工业大学 执行时间估计方法、执行时间估计程序以及执行时间估计装置
US8966087B2 (en) 2009-12-08 2015-02-24 Nec Corporation Load characteristic estimation system, load characteristic estimation method, and program
JP2011180883A (ja) * 2010-03-02 2011-09-15 Nippon Steel Corp プログラム診断装置およびプログラム診断方法
JP2011181034A (ja) * 2010-03-04 2011-09-15 Nec Corp ソフトウェア実効性能評価システム、ソフトウェア実効性能評価方法、及びプログラム
WO2018150588A1 (ja) * 2017-02-20 2018-08-23 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム
JPWO2018150588A1 (ja) * 2017-02-20 2019-06-27 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Similar Documents

Publication Publication Date Title
Nowak et al. White Analytical Chemistry: An approach to reconcile the principles of Green Analytical Chemistry and functionality
US7587437B2 (en) Parallel efficiency calculation method and apparatus
US20030171907A1 (en) Methods and Apparatus for Optimizing Applications on Configurable Processors
US8127261B2 (en) System for quickly specifying formal verification environments
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
US6757639B2 (en) Modification risk degree measurement system, modification risk degree measurement method and modification risk degree measurement program
JP2002229818A (ja) プログラム実行時間解析方法およびその装置
JP3054273B2 (ja) 病態型自動判定方法
JP3821834B2 (ja) 並列効率計算方法
CN112363784A (zh) 在应用程序中显示窗口的方法和装置
JP2606085B2 (ja) プログラム評価方式
Albert et al. Experiments in cost analysis of Java bytecode
JPWO2019142266A1 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP6742556B1 (ja) ソフトウェア解析装置
JPH05241915A (ja) 動的解析情報の予測算出方式
Zeiß et al. TRex–An Open-Source Tool for Quality Assurance of TTCN-3 Test Suites
JP2009128199A (ja) 分析処理システム
JP2001273174A (ja) プログラムステップ数測定装置及び方法、ソフトウェア性能評価方法
JP2002288007A (ja) シミュレーション解析支援装置及びシミュレーション解析支援プログラム
JPH0749883A (ja) 計算機
JPH03144835A (ja) プログラム単位時間当たり実行演算数計算方式
JPH0436844A (ja) Cpuタイム測定方式
JPH0298750A (ja) バグ修正装置
JPH10207740A (ja) デバッグシステム
JPH09319611A (ja) プログラム開発支援装置