コンピュータプラクティスⅠ 性能評価 水野嘉明 本日の内容 性能評価 応答時間と実行時間、起動時間の測 定 実験レポート 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,000? ・・・ 「十分大きい」と言うための条件は? 求めたい有効数字桁数による ⇒ 有効桁以下にしか影響 しなければOK 12 実験2 second.exe の応答時間を測定せよ 有効桁数は2桁とする 得られた結果から、前回の実験1の 結果についても考察せよ 13 実験2 ヒント 実験1と同様のバッチファイルにて 測定する L06Y01.EXEではなく second.exe を計測する TIMEコマンドによる計測は不要 second.exeにて second.exeを計測 14 実行時間の測定 15 実行時間の測定 次は、実行時間を測定する 起動時間 + 実行時間 = 応答時間 16 実行時間の測定 起動時間 + 実行時間 = 応答時間 起動時間を除いた「実行時間」を測 定するには プログラム中の測定対象コードを time() 関数ではさみ、ラップを計測する 17 実行時間の測定 int { main(void) : time(&t0); for(i=0; i<N; i++){ // 対象コード } } time(&t1); lap = t1 – t0; : 対象コードを time()関数ではさ み、開始時刻と終 了時刻を求める 必要に応じて繰り 返す 18 実行時間の測定 対象コードは、関数呼び出しとする 対象プログラムの main()を、適当な 名前に置き換える 測定用プログラムに埋め込み、繰り 返し呼び出す 水野のサイトの「【付録】実行時間 測定ツール (measuer.cpp)」を参照 19 演習 次ページの簡単なプログラムの実行時 間を、有効数字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 = L06Y01) の 起動時間を測定せよ 有効数字2桁 ヒント 応答時間と実行時間から求める 必要な有効数字を得られるように、 繰り返し回数を調整する 25 課題 プログラムの応答時間や実行時間を 測定する方法には、他にどのような 方法があるか調べよ それらの方法の特徴や長所・短所等 について、考察せよ 26 実験レポート 前回の実験1、本日の 実験2、実験 3、課題を 実験レポートR2として提 出せよ 表題は「時間の測定と性能評価」 レポートの形式は、前回のスライド 資料を参照 27 実験のねらい 以下のような実験の狙いに注意して、 レポートを書くこと 実験1 測定ツールの精度の差が、実験 にどのような影響を与えるか 28 実験のねらい 実験2 測定ツール(second.exe) の応答 時間は、実験1の測定にどのよう な影響があったか (なかったか) 実験3 実行時間を測定する 応答時間、実行時間、起動時間の 関係を理解する 29 実験を開始して下さい 30 次回の予定 「比較実験」 二つのプログラムの比較 パラメータを変化させての比較 お疲れ様でした 31
© Copyright 2024 ExpyDoc