Windows版Amusaについて、画面出力およびキーボード・マウス等の入力に関係しない部分についてテストプログラムを作り100万回の繰り返しにかかった時間を測定しました。
| 測定環境 | |
| HostOS | Windows2000 Profesional |
| Memory | 256M Byte |
| CPU | Pentium3 600Mhz |
| HD | IDE 20G Byte NTFSフォーマット |
| データベース構造 | 結果保存用 |
| 計測用 |
(0は測定限界以下をあらわしています。)
| カテゴリー | 測定項目 | 付記 | 秒数 |
| 制御系 | |||
| if A=B then 文 | if文が真である場合の分岐にかかる秒数 |
3.03 |
|
| else endif | if文が偽である場合の分岐にかかる秒数 |
3.68 |
|
| switch case 文 | switch文の値に対するcase文への分岐にかかる秒数 |
1.75 |
|
| loop endloop文 | loop文とendloop文の間の繰り返しにかかる秒数 |
0.11 |
|
| repeat until文 | repeat文とuntil文による評価の間の繰り返しにかかる秒数 |
3.65 |
|
| while wend文 | while文による評価とwend文の間の繰り返しにかかる秒数 |
3.36 |
|
| class.call文 | クラスを指定した外部プロシージャの呼び出し復帰にかかる秒数 |
118.28 |
|
| rem文 | rem文にかかる秒数 |
0.26 |
|
| 演算系 | |||
| +演算 | 数値同士の加算にかかる秒数 |
2.82 |
|
| -演算 | 数値同士の減算にかかる秒数 |
2.89 |
|
| *演算 | 数値同士の乗算にかかる秒数 |
2.37 |
|
| /演算 | 数値同士の除算にかかる秒数 |
2.31 |
|
| NS演算 | 数値と文字列の連結にかかる秒数 |
12.54 |
|
| ND演算 | 数値と日付の連結にかかる秒数 |
24.10 |
|
| SS演算 | 文字列同士の連結にかかる秒数 |
2.54 |
|
| SN演算 | 文字列と数値の連結にかかる秒数 |
13.03 |
|
| SD演算 | 文字列と日付の連結にかかる秒数 |
8.84 |
|
| DN演算 | 日付に対すつ加算にかかる秒数 |
24.34 |
|
| DS演算 | 日付と文字列の連結にかかる秒数 |
27.10 |
|
| DD演算 | 日付同士の間の減算にかかる秒数 |
24.15 |
|
| 変数参照 | メモリー変数の値への参照にかかる秒数 |
0.86 |
|
| 変数代入 | メモリー変数への値の代入にかかる秒数 |
2.01 |
|
| 配列参照 | メモリー変数配列への参照にかかる秒数 |
0.56 |
|
| 配列代入 | メモリー変数配列への値の代入にかかる秒数 |
2.54 |
|
| 関数系 | |||
| abs関数 | 絶対値を求めるための秒数 |
1.29 |
|
| asc関数 | 文字のアスキーコードを求めるための秒数 |
1.40 |
|
| cos関数 | コサインを求めるための秒数 |
1.18 |
|
| date関数 | 本日を求めるための秒数 |
7.00 |
|
| day関数 | 日付から日を求めるための秒数 |
1.75 |
|
| fix関数 | fixの値を求めるための秒数 |
1.37 |
|
| hex関数 | 16進数を求めるための秒数 |
2.29 |
|
| instr関数 | 文字列の中に含まれる文字の位置を求めるための秒数 |
1.95 |
|
| int関数 | 整数を求めるための秒数 |
1.29 |
|
| jweek関数 | 日付から曜日を日本語で求めるための秒数 |
8.62 |
|
| lastkey関数 | 最後に押されたキーの値を求めるための秒数 |
0.53 |
|
| len関数 | 文字列の長さを求めるための秒数 |
1.40 |
|
| left関数 | 文字列の先頭から指定文字数を切り出す |
2.00 |
|
| log関数 | 自然対数を求めるための秒数 |
1.14 |
|
| ltrim関数 | 文字列の先頭の空白を取るための秒数 |
1.76 |
|
| max関数 | 2値の大きい値を求めるための秒数 |
1.29 |
|
| mid関数 | 文字列の指定した位置から文字列を切り出すための秒数 |
2.42 |
|
| min関数 | 2値の小さい値を求めるための秒数 |
1.29 |
|
| month関数 | 日付から月を求めるための秒数 |
1.75 |
|
| pai関数 | 円周率を求めるための秒数 |
0.51 |
|
| right関数 | 文字列の終端から指定した文字数を切り出すための秒数 |
2.21 |
|
| rtrim関数 | 文字列の末尾の空白を取るための秒数 |
1.81 |
|
| secont関数 | 時間を表す文字列の0時0分0秒からの経過時間を求めるための秒数 |
2.09 |
|
| setesc関数 | 文字列入力から脱出するためのデリミタを指定するのにかかる秒数 |
1.79 |
|
| sin関数 | サインを求めるための秒数 |
1.20 |
|
| space関数 | 指定した大きさの空白文字列を作るための秒数 |
1.34 |
|
| sqr関数 | 平方根を求めるための秒数 |
1.10 |
|
| str関数 | 数値の文字列化にかかる秒数 |
10.31 |
|
| tan関数 | タンジェントを求めるための秒数 |
1.26 |
|
| time関数 | 現在時刻を求めるための秒数 |
7.79 |
|
| tod関数 | 文字列から日付型の値を求めるための秒数 |
2.57 |
|
| trim関数 | 文字列から空白を取り除くための秒数 |
2.04 |
|
| type関数 | 値の形を求めるための秒数 |
1.04 |
|
| using関数 | 値の整形にかかる秒数 |
17.93 |
|
| val関数 | 文字列の数値化にかかる秒数 |
1.70 |
|
| week関数 | 日付の曜日を求めるためにかかる秒数 |
8.31 |
|
| wildcomp関数 | 文字列をワイルドカードで評価するための秒数 |
1.92 |
|
| year関数 | 日付から年を求めるための秒数 |
1.92 |
|
| データベース系 | |||
| append関数 | 1,000,000レコードの追加を行ったときの秒数 |
289.54 |
|
| update関数 | 1,000,000レコードのデータ更新にかかった秒数 |
137.90 |
|
| フィールド参照 | フィールドの値を求める |
3.82 |
|
| フィールド代入 | フィールドへの代入 |
22.50 |
|
| 配列フィールド参照 | 配列フィールドの値を求める |
5.35 |
|
| 配列フィールド代入 | 配列フィールドへの代入 |
26.37 |
|
| 別名フィールド参照 | alias化されたフィールドへの参照 |
4.50 |
|
| 別名フィールド代入 | alias化されたフィールドへの代入 |
25.90 |
|
| field関数 | フィールド番号で値を求める |
3.14 |
|
| setfield関数 | フィールド番号を指定して値を代入 |
22.00 |
|
| forward関数 | 1,000,000件のレコードポインタを進めるのにかかった秒数 |
43.64 |
|
| back関数 | 1,000,000件のレコードポインターを後退させるのにかかった秒数 |
44.01 |
|
| top/botom関数 | レコードポインターを先頭/終端移動する |
96.43 |
|
| find関数 | 索引による1,000,000件の検索を行ったときの秒数 |
227.231 |
|
| bind関数 | 索引による1,000,000件の絞込みを行ったときの秒数 |
271.81 |
|
| where関数 | 索引による1,000,000件の絞込みタイプ2を行ったときの秒数 |
289.78 |
|