uttsu.com > N88BASIC >

Quick Bench

内容

 Basic 上で手軽に速度を計測できるベンチマーク・ソフトです。マシンの速度の他、指定したアルゴリズム(一連の命令)の実行速度も計測できます。

使用方法

 マシンの速度を計測したい場合は「1,全体の処理」を、指定した命令の実行速度を計りたい場合は「2,指定の処理」を選んでください。

 「全体の処理」は、数値の計算や画面への描画、ディスクの読み書き等の処理が一定時間内に何回実行できるかを計測します。

 「指定の処理」は、プログラム中の指定された場所に記述されているアルゴリズム(一連の命令)を、一定時間内に何回実行できるかを計測します。記述する命令は複数でもよく、サブルーチンの形でも構いません。

「全体の処理」の計測について

 「全体の処理」では、整数の計算、(単精度)実数の計算、矩形(正方形)の描画、円の描画、テキスト文字の出力、ディスクに対する読み書きを、それぞれ1秒間に何回実行できるかを計測します。

 全ての計測が終わると結果が表示されます。「対サンプル」は、サンプルのデータ(筆者のコンピュータのデータ)との比較値です。また、「Total」の値は、他の項目の平均ではなく、各項目の「対サンプル」の値をもとに総合して算出しています。これは、計測結果の各項目には確固たる基準値がないため、単純に足し合わせるだけでは値の小さい項目と大きい項目により「Total」値への影響度が違ってくるからです。「対サンプル」値を用いることにより、データの信憑性が格段に向上します。

 なお、ディスクに対する読み書きでは、FD などの場合、バッファリングなどの影響を大きく受けると思われます。なので、データはあまり正確でないかもしれません。

「任意の処理」の計測について

 最近はマシンの性能が向上し、プログラムの実行速度の向上をアルゴリズムに求めることは少なくなりました。しかし、N88Basic では、比較的動作する機種が古いのと、インタプリタという性質上実行速度が遅いため、アルゴリズム(一連の命令)によっては大きな差がでてきます。また、速度を重要視するプログラムの場合、どの命令が一番高速なのかを知りたい場合が時々あります。そういう時、命令の実行速度を求めるのは以外に難しいものですが、この機能を用いれば簡単に調べることができます。

 実行速度を調べたいアルゴリズム(一連の命令)を、プログラム中の *USER というサブルーチン内に記述してください。調べたいアルゴリズムをサブルーチンの形式で記述し、そのサブルーチンを呼ぶ部分だけを記述しても構いません。

 デフォルトでは、IF 命令を使った場合と、計算式(ON 〜 GOTO など)を使った場合の比較が行われるようになっています。IF 命令を使うよりも計算式で処理した方が実行速度が速いとはよく言われることです。筆者もずっとそう思って極力 IF 命令での条件分岐を避け、計算式での分岐を使うようにしていたのですが、実際に計測してみると、若干 IF 命令の方が実行速度が速いという結果が得られました。

 このように、個々のアルゴリズムの実行速度を求めることにより、全体の速度を向上させるヒントにすることができます。

その他

 速度計測の「矩形」「円」「テキスト」の各処理では、RND 命令を用い計算により描画する座標を決定していますが、そのために計測対象の「描画」以外の処理で時間が消費されています。これは、見た目も考慮したためです。


Copyright (C) Takashi Utsunomiya. All Rights Reserved.
2001.04.01掲載, 2001.05.22更新