コンピュータプラクティ スⅠ
性能評価
水野嘉明
本日の内容
性能評価
応答時間と実行時間、起動時間の測 定 実験レポート R2
実験1: 応答時間の測定 (前回実 施)
実験2: ツールの応答時間
実験3: 起動時間の測定
課題: バッチファイルのコマンド 2プログラム実行の仕組み
(1)
ソースファイルは、コンパイル&
リンクされて実行可能な形式とな
る オブジェク
トファイル ファイルソース
ファイル実行可能
ライブラリ
コンパイル リン
ライブラリ ク
一度に行うことができる 3
プログラム実行の仕組み
(2)
プログラムは、メモリに読み込ま れて(ロードされて)から実行さ れる
OS
プログラ実行可能
ム 補助記憶装置
( ディスク)
4
プログラム実行の仕組み
(
3)
ネットワーク経由でロードされる こともある
サーバ
ネットワー ク
OS
プログラ実行可能 ム
5
プログラムの実行時間
プログラムのロードには時間を要す る
「起動時間」 「実行時間」は、実行開始から終了 まで
両者の合計が「応答時間」
起動時間 + 実行時間 = 応答時間
6
応答時間の測定
7
応答時間の測定
前回の実験 1 は、応答時間を測定し た
8
起動時間 + 実行時間 = 応答時間
応答時間の測定
前回の実験 1 は、応答時間を測定し たsecond.exe
FOR /L %%I IN (1,1,10000) DO L06Y01.EXE >NUL
second.exe
(1) 開始時刻 (秒単位の時刻表示)
(2) 測定対象 (L06Y01.EXE) を繰返し 実行
(3) 終了時刻
9応答時間の測定
実験1にて、このバッチで測定した 時間(終了時刻ー開始時刻)は、
測定時間 = second.exe の応答時 間
+ L06Y01.EXE の応答時間 (前頁の例では N×N
=10000 )10
応答時間の測定
前記の式を変形すると、L06Y01 の応答時間 =
(測定時間 - second の応答時 間)/ N
N が十分大きければ
L06Y01 の応答時間≒測定時間/ N
11
問題
Nがいくつくらいならば「十分大 きい」と言えるのか?
10,000? 100,000? 1,000,00 0? ・・・ 「十分大きい」と言うための条件 は?
求めたい有効数字桁数による
⇒ 有効桁以下にしか影響 しなければOK
12
実験2
second.exe の応答時間を測定せ よ
有効桁数は2桁とする 得られた結果から、前回の実験 1 の結果についても考察せよ
13
実験2
ヒント
実験1と同様のバッチファイル にて測定する
L06Y01.EXE ではなく second.e xe を計測する
TIME コマンドによる計測は不要 second.exe にて second.exe を計測 14
実行時間の測定
15
実行時間の測定
次は、実行時間を測定する
起動時間 + 実行時間 = 応答時間
16
実行時間の測定
起動時間を除いた「実行時間」を 測定するには
起動時間 + 実行時間 = 応答時間
プログラム中の測定対象コードを
time() 関数ではさみ、ラップを計
測する
17実行時間の測定
対象コードを ti me() 関数ではさ み、開始時刻と 終了時刻を求め る
必要に応じて繰 り返す
int main(void) { :
time(&t0);
time(&t1);
lap = t1 – t0;
} :
for(i=0; i<N; i++){
// 対象コード }
18
実行時間の測定
対象コードは、関数呼び出しとする
対象プログラムの main() を、適 当な名前に置き換える
測定用プログラムに埋め込み、繰 り返し呼び出す19
水野のサイトの「【付録】実行時間
測定ツール (measuer.cpp) 」を
参照
演習
次ページの簡単なプログラムの実行 時間を、有効数字2桁まで測定せよ
20
演習
簡単なプログラム#include <stdio.h>
#include <time.h>
void main() {
int c=0, i;
for(i=1; i<=1000000;
i=i+1) {
c = c + 1;
}
}
21起動時間の測定
22
起動時間の測定
応答時間、実行時間は、ともに誤差 を含む測定値である。
演算による精度の変化に注意する 必要がある起動時間 = 応答時間 - 実行時間
23
演算による精度の変化
(
復 習) 例) 1 . 2 × 10ー2 – 3 . 4 × 10-3
1 . 2 × 10ー2
-) 0 . 34 × 10ー2 0 . 9 × 10ー2
有効数字の桁数に注意すること
誤差範囲は広がっている24
実験3
前回のプログラム(付録A = L06Y0 1 )の 起動時間を測定せよ
有効数字2桁 ヒント
応答時間と実行時間から求める
必要な有効数字を得られるように、繰り返し回数を調整する
25
課題
プログラムの応答時間や実行時間 を測定する方法には、他にどのよ うな方法があるか調べよ
それらの方法の特徴や長所・短所 等について、考察せよ
26
実験レポート
前回の実験1、本日の 実験2、
実験3、課題を 実験レポートR 2として提出せよ
表題は「時間の測定と性能評 価」
レポートの形式は、前回のスラ イド資料を参照27
実験のねらい
以下のような実験の狙いに注意し て、レポートを書くこと
実験1
測定ツールの精度の差が、実験 にどのような影響を与えるか28
実験のねらい
実験2
測定ツール( second.exe ) の 応答時間は、実験1の測定にど のような影響があったか (な かったか) 実験3
実行時間を測定する
応答時間、実行時間、起動時間の関係を理解する 29
実験を開始して下さ い
30
次回の予定
「比較実験」
二つのプログラムの比較
パラメータを変化させての比較お疲れ様でした
31