お知らせ: 拡張編集0.93でLuajitが採用されたのでこちらはもう必要ありません。また、DLLが古いためかカウンターなどで問題が起こるようです。

ダウンロード
LuaJIT-2.0.4-win-x86.zip
Ver2.0.4(Lua5.1) 2016/04/13

cap00

拡張編集に付属しているLua.txtを眺めていて次の一文を見つけました。
- Luaのバイナリについて -
付属のlua51.dllはLuaの本家サイトにあるバージョン5.1.4に
5.1.4-2のパッチを当ててビルドしたものです。

もし付属のDLLが通常のVMバージョンなら、JITに置き換えればそれなりの高速化が望めそうです。
というわけで早速試してみましょう。

インストール

まずはLuaJITからソースをダウンロードしてビルドします。
VisualStudio2015なら付属しているmsvcbuild.batをVS2015コマンドプロンプトから実行するだけで済みます。
今回はコンパイラオプションの/MDを/MTに置き換えてC Runtimeを不要にしました。
ビルドしたものをページの先頭に上げてあるので、よく分からない場合はこれを使用してください。
Aviutlで利用するのはlua51.dllのみです。拡張編集に付属していたものをバックアップしてから上書きしましょう。

ベンチマーク

とりあえず高速化されたかどうか試すためにフィボナッチで計測してみました。test.exo
フィボナッチ数(N=39)
1 2 3 4 5
通常 15.563秒 15.610 15.595 15.392 15.626
LuaJIT 0.8850秒 0.7460 0.9100 0.9050 0.9029
約17倍ほど速くなっています。やはり拡張編集に付属のDLLは通常のVMのようですね。
本家のベンチマークを見ると100倍以上速くなるケースもあるようです。フィボナッチ(recursive-fib)は18.17倍となっているので今回の結果も妥当でしょう。

さて、Aviutl向けのより実践的なベンチマークも取ってみましょう。
カスタムオブジェクト(雨:個数4000)
1 2 3 4 5
通常 0.1409 0.1250 0.1180 0.1399 0.1089
LuaJIT 0.0990 0.1080 0.0980 0.1070 0.1030
アニメーション効果(砕け散る)
1 2 3 4 5
通常 0.0150 0.0150 0.0160 0.0159 0.0159
LuaJIT 0.0099 0.0109 0.0100 0.0110 0.0109

Lua側の計算が多そうなスクリプトで試してみましたが、約10~50%程度しか高速化されませんでした。 ほとんどのスクリプトでは誤差レベルです。

拡張編集ではobj.effect()やobj.draw()などの描画処理が処理の大半を占めるので、luaだけが高速化されてもほとんど効果がありません。
それでも塵も積もれば何とやらですから、スクリプトを大量投入する方や、少しでもエンコードを早くしたい方は試してみてはいかがでしょうか。

追記

エンコード速度に関しても検証してみました。
x264guiexのデフォルト設定でエンコード。ログの「x264エンコード時間」を集計。
カスタムオブジェクト(星雪雨:個数4000) test.aup
1 2 3 avg. ratio
通常 0分25.3秒 0分26.1秒 0分25.9秒 0分25.7秒 x1.00
LuaJIT 0分23.8秒 0分23.3秒 0分24.1秒 0分23.7秒 x1.08
アニメーション効果(砕け散る:size10) test2.aup
1 2 3 avg.ratio
通常 0分17.9秒 0分18.1秒 0分18.0秒 0分18.0秒 x1.00
LuaJIT 0分12.0秒 0分12.0秒 0分12.0秒 0分12.0秒 x1.50

スクリプトのみで構成された動画なので前述のベンチマークとほぼ同程度の高速化が図れました。
LuaJITを使用してもプレビューが軽くなるまでの影響はないですが、重めのスクリプトを多用する場合はエンコード時間の短縮に十分効果があると言えそうです。