HSPに憑いて…その4
■ このスレッドは過去ログ倉庫に格納されています
0516デフォルトの名無しさん
NGNG以前2バイトの命令コードと可変長のオペランドを解釈して実行するプログラムを試しに作ったことがあって、
そのとき大体HSPの2倍の速度が出た。
変数の種類はHSPより多くCの組み込み型+文字列、まぁこれは速度に関係ないけど。
んで、そのときはループ使って、リアルタイムに命令を解釈し、各命令を実行する関数にディスパッチする方法でやったんだが、
よくよく考えれば起動時に全部ファンクタに変換して、ループでばばーと連続で呼び出してしまえば、オペランドを読み込む分の時間を短縮できる。
んで、さらによくよく考えれば、そのファンクタを連続で呼び出すプログラムを始めから機械語にしてしまえばループに費やす分の時間を短縮できる。まぁ簡易JITってところかな。
しかもそんときはマルチスレッドを想定してスタックを引数で渡していたんだけどHSPはシングルスレッドなのでスタックはグローバルに1個でじゅうぶん、その分高速化できる。
以上の事からHSPは現在の2倍以上は高速化できると予想。
もちろんHSPの内部の事情等でそううまくは行かない面もあるだろうけど。
■ このスレッドは過去ログ倉庫に格納されています