コンピュータプラクティ スⅠ
時間の測定
水野嘉明
本日の内容
プログラムの性能評価
有効数字、測定精度
プログラム実行時間の測定
実験1
実験2、3、レポートは次回2
プログラムの評価基準
性能 (performance)
機能 (function)
再利用性 (reusability)
安全性 (信頼性 reliability )
維持性 (保守性serviceability,maintenan cebility )
3
性能の評価
実行時間
行数や命令数は実行時間と強い 相関
資源( resource : メモリやディ スク容量等)の消費量4
物理量の測定
物理量の測定においては、目盛り の 10 分の 1 まで読む (アナログ時)
5 10 1
5
測定値には必ず誤差がある 12.3mm
の 「.3
」はあまり確か
ではない12.3±0.05
の範囲を示すと考え る12.3m m
m m
5
有効数字
この測定値を 「 12.3123mmだ!」 と主張しても意味はない
5 10 1
5
「12.3
」までが意味のある数字 = 有効数字m m
測定の精度を考慮した上で特にその桁 の数字に書くだけの合理的根拠がある
こと 6
有効数字の表記
「 12 」 と 「 12.0 」 は異なる
12 ⇒ 12±0.5 (11.5 ~ 12.5)
12.0 ⇒ 12.0±0.05 (11.95 ~ 1 2.05)
120 と書いてあったら?科学表記
有効数字2桁
有効数字3桁
各々1.2×10 1 1.20×10 1
1.20×10 2
(または1.2×10 2
)と 表記する7
有効数字の計算 (乗除)
乗除の結果の有効数字は、元の有効 桁数の小さな方と等しい1.23×10
2
× 3.4×103
= 4.182×10
5
= 4.2×10
5
有効数字2
桁 8
有効数字の計算 (加減)
加減算は、桁を揃えて計算してから、一番粗い(有効数字の末位が最高 の)項に有効数字の末位を揃える
1.23×10
2
+ 3.4×103
= 0.123×10
3
+ 3.4×103
=0.1
×103
+ 3.4×103
= 3.5×10
3
9
有効数字の計算 (加減)
有効数字の桁数が、増えたり減った りすることがある
特に桁落ちに注意する1.234×10
2
- 1.233×102
= 123.4 - 123.3 = 1×10
-1
有効数字4桁同士の演算
の結果が有効数字1桁に 10
有効数字の計算 (定数の扱 い)
測定値でない数値(定数など)は、有効数字は無限桁数と考える
π 、√ 2 などは、有効数字より 1 桁 以上大きい桁数を使用する練習:球の半径が 2.674 m(有効 数字 4桁)と計測されたとき、表
面積は
4×3.1416×2.674×2.674 = 89.85 (m 2 )
4π
r2
=
11有効数字の計算 (筆算)
筆算するときは、計算の途中では有 効数字よりも 1 桁分だけ桁数の大き な数で計算する
全桁計算し最後に丸める⇒面倒&ミス のもと、センスが悪い
毎回丸める⇒有効数字が落ちるので 不 可12
有効数字の計算: 練習
次の計算をせよ{(2.234×5.67815)+100.9049 }×4.60
2.234 × 5.67815 =
+ 100.9049 = × 4.60 =
13
練習 解説
不可な例2.234 × 5.67815 = 12.6849871 12.68498710 + 100.9049 =
113.5898871
113.5898871 × 4.60 = 522.51348066
= 523 2.234 × 5.67815 = 12.68
12.68 + 100.9049 = 113.58 113.58 × 4.60 = 522
面倒&ミスのも と、センスが悪
い
精度が落ちる 14
練習 解説
2.234 × 5.67815 = 12.685
12.685 + 100.9049 = 113.590 113.590 × 4.60 = 523
本当は全桁数
4
桁の12.68
だが、1
桁増やす
本当は小数第
2
位までの113.59
であるが,1
桁増やす 15
測定精度
測定器により測定精度は異なる
最小目盛(分解能)が1 mm のデ ジタル式定規では、1 mm 未満の 長さは測れない
この定規で「 82mm 」と計測され た場合の有効数字は、2桁16
測定精度
前記の 1mm 刻みの定規で 1mm 未 満の長さを測るには、拡大して(または同じものを複数並べて)
測り、測定値を倍率で割る
プログラムの時間を計る場合も同 じ測定精度が不足する場合は、繰返し
実行させて計測する
秒単位で 100 秒以上計測すれば 有効数字は2桁
17
測定精度
・・・
100ヶ並べて 85
mm
な らば1ヶの幅は 8.
5×
10-1
mm
100回実行して 85秒なら ば1回の実行時間は 8.
5×
10-1
秒18
測定精度: 練習
1mm 刻みの定規で、44ヶ並べて 計測したところ、909 mm であった。1ヶの長さは何 mm か?
・・・
44ヶ :
909mm
答:
909/44 = 20.65909090909090
・・
= 2.07×10
1(mm)
19平均
測定数値を平均しても、有効数字の 桁は増えない
誤差(ばらつき)をキャンセルする ことはできる
プログラムの実行時間のように測定 値が分解能より小さい場合は、繰り 返し実行させた時間を測定する20
時間による性能評価
– バッチによる応答時間の 計測
測定の原理1 . 開始時刻を測定
2 . 対象プログラムを、十分な 回数 実行する
3 . 終了時刻を測定
4 . ( 終了時刻ー開始時刻 ) を 回数で 割れば、一回あたりの実行時 間
21
時間による性能評価
– バッチによる応答時間の 計測
TIME コマンド (Window s)
現在時刻を分単位で表示する
time関数 (C言語)
秒単位の時刻を求める time() と ctime() を用いて、時刻を秒単位で表示する 22
TIMEコマンド
コマンドプロンプト(CMD . EX E)にて使用
TIME/T
/Tがないと 時刻の設定
/Tがあると 分単位の表示23
time()関数
time_t time(time_t *t)
システム時刻までの経過時間を t に設定する
経過時間 t は、万国標準時( U TC )の「 1970 年 1 月 1 日 0 時 0 分 0 秒」からの経過時間を秒単位 で表した数値24
ctime()関数
char *ctime(const time_t *t)
経過時間t
を現地時間に合わせ て日時の文字列に変換する
文字列の書式は次のようになり、必ず 26 文字になる
[ 曜日 ] [ 月 ] [ 日 ] [ 時 : 分 :
秒 ] [ 年 ]\n\0
25
演習1
現在時刻を秒単位で表示するプロ グラム second.exe を作成せよ// second:
秒単位での日付・時刻を表示// 2009 May
水野嘉明 (テキストの付録C
を編集)#include <stdio.h>
#include <time.h>
int main( void ) {
time_t t; //
現在時刻time(&t); //
現在時刻を求めるprintf("%s\n", ctime(&t)); //
日時の文字列に変換し表 示return 0;
}
26
バッチファイル
複数のコマンドを記述しておき、一 括して実行する
テキストで記述する
エディタ(ノートパッド等)を使 用する
拡張子は .BAT
コマンドプロンプト( CMD) にて使用 27
バッチファイル
@ECHO OFF
REM FOO.BAT
:時間 測定REM 2008/11 MIZUNO
TIME /T
A.EXE > NUL TIME /T
PAUSE
以後のコマンド を表示しない
コメント 時刻表示
測定したいコマ ンド
>NUL
は出力を捨て 停止してキー入力待ちる28
バッチでの繰り返し
同じコマンドを100回繰り返すには、
FOR /L %%I IN (1,1,100) DO A.EXE
開始値、刻み、終値
制御変数 実行する
コマンド 変数
%I
を1
から100
まで動かしながら、という意味回数を増やすときは「
100
」を書き換える 29バッチによる応答時間計測
計測しているのは、正確に言えば「応答時間 」
ロード時間 + 実行時間
さらに、計測用コマンド( TIME または second )の応答時間も含 まれるこれらについては、次回30
演習2
second.exe を用いたバッチファイ ルにより、あるプログラムの応答 時間を測定した。繰返し回数10
0回 で測定したところ、24秒
という結果になった。
真の応答時間は、どのような範 囲にあると考えられるか
この測定で得られる有効数字の桁数は、何桁か 31
演習2 解説
全体の( 100 回分の)時間は32
0:0:00 0:01 0:02 0:23 0:24 0:25
23秒強 25秒
弱
どちらも、0:00~0:24 の2 つまり、全体時間は23秒超25秒4秒間未満
演習2 解説
したがって、応答時間の範囲は
有効数字は、1桁
33
0
.
23秒 ~ 0.
25 秒2
×
10-1
秒実験1 プログラム全体の応答 時間
プログラム L06Y01 (付録 A) につ いて応答時間を TIME 、 second( time 関数)のそれぞれの方法 で測定せよ
TIME 、 second の各方法での有 効数字桁数は、各々1桁、2桁 になるように繰返し回数を設定 する
二つの方法の応答時間を比較し、考察せよ
34
実験1の注意事項
(1)
TIME と second では、繰り返し回 数は当然異なる必要な有効数字桁数が出る回 数⇒ 同じになってはおかしい
TIME
分単位 有効数字1桁 10分程度
secon
d
秒単位 有効数字2 桁100秒程
度 35
※ 繰返し回数は、レポートに明記する こと
実験1の注意事項
(2)
プログラム L06Y01.EXE は、サーバではなく ローカルマシン に置くこと
ネットワークの負荷によるばら つきが大きい36
実験1の注意事項
(3)
実験レポートの章立ては、 R1 とは 異なる
章立ては、固定されたものでは ない
R2では、R1とは別の章立て を用いる ( CP 2以降で用いる もの)37
新しい章立て
新しい章立て
章の構成39
–
表紙–
目次–
第1
章 目的–
第2
章 理論–
第3
章 実験方法–
第4
章 実験結果–
第5
章 考察と結論–
第6
章 課題–
参考文献、付録新しい章立て
「目的」
R1 の「序論」に相当する
次のようなことを記述する
実験の目的・意図(結論と対応する事を忘れな い)
各実験の関係
レポートの全体像・構成 40新しい章立て
「理論」
どのような理論あるいは原理に 基づき実験を行ったかを書く
各実験について、
理論と観察に基づき仮説を立て る
何を対象に、どのような測定を行なうかを書く 41
新しい章立て
「実験方法」
実験で使った道具(ツール、ソ フトウエアなど)を明示する
実験の手順、条件、環境を詳し く
第3者が、このレポートだけ
を読んで、同じ実験が間違いなくできるように書く 42
新しい章立て
「実験結果」
各実験の結果を文章で書く
表やグラフを有効に利用する
観測した生の値を省略しないこ と
四捨五入した値だけだと、妥 当性が検証できないことがある 43
新しい章立て
考察と結論
考察は、今回の実験全体を通し て得られたこと(知見)を論理 的に導くこと
結論は、目的の章の内容と対応 させ、実験により分かったことを書く(感想を書かないこと) 44
新しい章立て
課題
課題は通常、文献の調査と考察 からなる
二つ以上の文献を調べ、参照・引用する
考察は、必ず自分の言葉で書く(自分の文章と引用は区別す
る、引用だけで終わらない) 45
実験を開始して下さ い
46
次回の予定
「性能評価」
応答時間と実行時間、起動時間
実験レポート R2
応答時間の測定
起動時間の測定
コマンドプロンプト47