2017年12月6日水曜日

面白い現象 ー ActiveBasicに見るコンパイルの仕方

先日のActiveBasicのFibを比較のためにと思ってoldBASIC形式でも試してみた。
あくまでも変数で疑似スタックを作成することの不備を確認するためだと思っていた。
予想は10倍位遅くなっても妥当だと思っていた。
しかし結果は予想を覆すものだった。

結果は下記
 old形式:
  debug : 3214ms
 release : 3167ms

 新形式:
  debug : 167358ms
 release :    5023ms

どうやら旧BASICの書式では殆んどdebug情報がオーバーヘッドに成らないようだ。
多分、碌なdebugが出来ないのかもしれない。
そしてActiveBasicに限って言えばfunction や subの形式にしたときはかなりのオーバーヘッドが発生するほどDebug支援のためのコードが裏で動いていると思われる。

CPUスタックに配置されるであろうローカル変数の操作よりもグローバル変数のみのコードは元の6掛けぐらいの速度になる。

検証用にVBAでも試行してみるか?

dosvaxj3が更新されていた。

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