先日のActiveBasicのFibを比較のためにと思ってoldBASIC形式でも試してみた。
あくまでも変数で疑似スタックを作成することの不備を確認するためだと思っていた。
予想は10倍位遅くなっても妥当だと思っていた。
しかし結果は予想を覆すものだった。
結果は下記
old形式:
debug : 3214ms
release : 3167ms
新形式:
debug : 167358ms
release : 5023ms
どうやら旧BASICの書式では殆んどdebug情報がオーバーヘッドに成らないようだ。
多分、碌なdebugが出来ないのかもしれない。
そしてActiveBasicに限って言えばfunction や subの形式にしたときはかなりのオーバーヘッドが発生するほどDebug支援のためのコードが裏で動いていると思われる。
CPUスタックに配置されるであろうローカル変数の操作よりもグローバル変数のみのコードは元の6掛けぐらいの速度になる。
検証用にVBAでも試行してみるか?