高速化 - Scheme VM を書く
Threaded code を試したところ速くなった。
0.400sec前後から 0.300sec前後に。
Direct threaded code は VM の命令列が配列じゃなくて面倒なのでやらなかった。
いろいろ気づいたことがある。
以下の比較を見ると分かるが
Gauche ネイティブで VM用に Wiki をコンパイル | 0.168 sec |
---|---|
VM で VM用に Wiki をコンパイル | 0.158 sec |
Gauche ネイティブで Wiki を実行 | 0.035 sec |
VM でコンパイル済みの Wiki を実行 | 0.024 sec |
と2つであることから
導かれる結論は
Gauche VM 用の Gauche 上のコンパイラ >> 俺 VM 用の Gauche 上のコンパイラ ≒ 俺 VM 用の 俺 VM 上のコンパイラ
つまり Scheme のコードとしてのコンパイラの速度が遅い。
ではどうすれば良いか? compiler.scm の速度を 1/10 にする。
手段は
あたり。