2017年11月5日日曜日

古代BASIC系ベンチマーク対決

エントリーするBASIC達
1)99BASIC
2)N88互換BASIC for Win95
3)MBASIC86
4)VBA on Access2010
5)ActiveBASIC424
6)N88BASIC on Anex86
7)ruby 2.33
※rubyは参考値 f-basic on eFMR-50は開くのも馬鹿馬鹿しいのでナシ

ベンチマークするソフト
1)マンデルブロ集合描画(640x400 上限回数100)
2)挿入ソート 10000要素
  計測用のデータはテキストファイルで用意する。
  ruby で (1..10000).to_i.shuffle.each{|i| puts i} > リダイレクトで作成する。

上記のエントリーで2種目を予選として実施してみた。
※F-BASIC on eFMR-50とActiveBasic262は書類選考で脱落って感じ。
 freeBasicは日本語が不得手でエントリーできず。

結果としてソートも種類を持たせずに挿入ソート1本とした。
まあ上記で予選って感じですわ。

---- 結果発表 ----
    名    称              |  挿入ソート (要素数 10000) |  マンデルブロ集合 (640x400)
---------------------+-------------------------------+--------------------------------
99Basic                 | 53 sec                              | 14 sec
Access VBA           | 6.99sec                            | 0.828sec
N88Basic on Anex  | 3442 sec                          | 981sec (16分21秒)
ruby 2.33              | 5.35 sec [oop 1.33sec]      | 9.63 sec (DxRuby利用)
activeBasic4.24     | 1sec 流石はコンパイラ        | 2.04sec 割りと優秀
N88互換Basic        | 1000要素で 96sec クソが! | 3844 sec (64分4秒)
MBasic86              | 1000要素で 38sec              | 1859 sec (30分59秒)
---------------------+-------------------------------+--------------------------------
---- 総評 ----
99Basicはリファレンス的に割りと良い感じ
AccessのVBAは使い慣れているし安心感もあって良い感じ
N88Basic on Anexは特別参加的な感じであるが今回でもう良いかな
ruby は次期標準言語だと思っているけど相応しい速度でありました。
arrayをオープンクラスで拡張するとなお速くなるなどOOP的な架け橋になる
activebasicは割りと小さな実行ファイルを吐けるしコンパイルもそこそこ速くて意外と使えるヤツ
N88互換Basicはダメポ!特にfiles等の命令がないとか、エラーメッセージが無いとか、[]を配列参照に使えなくて元祖N88Basic非互換とか([]を使うとエラー吐かずに死ぬとか考えられないくらい互換を謳うにはお粗末な出来)、目的のファイルなくても落ちるみたいだし、超!遅いし、去ね。
MBasic86はN88互換よりはマシな気もするけどもう良いかって感じ予定実行時間が1/100に成るはずの1000要素のソートで96secとか38secとかマンデル描画で30分以上でAnex上のN8BASICに軽く負けているって存在価値ナシ、特に互換の1時間以上ってもはやゴミ!

決勝進出はactiveBasic,VBA,99Basic,rubyの4者だと思うけど、ベンチはもう良いかって感じ。結局行番号を使うBASICでまだまともに使える感じなのは99Basicのみ。
今後はTPOに応じて使うのみ。

0 件のコメント:

dosvaxj3が更新されていた。

 最近、エミュレータ系をあまり触っていなかったのだけど久しぶりに見てみたらタイトルのようにdosvaxj3が更新されていた。 on emulatorでセルフにcなどのソースを書いて実行するのに母艦側の特定のフォルダをドライブとしてマウント出来たり普通に母艦のimeで漢字が入力でき...