ルア対 Javascript

スモールピック



最近、レイトレーサーの実行方法に関する投稿を書きました。 その後、レイトレーサーコードはJavaScriptで記述されました。 Lua、つまりLuaJIT 2.0がどのように同じタスクに対処するのかと思っていました。 以下は比較結果です。







参加者には、Chrome 9.0 Beta、Opera 11.01、Firefox 4.0 Beta 9、Explorer 9 Beta、およびLuaJIT 2.0 Beta 5が含まれていました。 シーンは次のとおりです。



BigImage



結果は次のとおりです(RPSは「1秒あたりの光線数」を表します)。



クロム 20,400 RPS
オペラ 15,700 RPS
Firefox 9,300 RPS
探検家 9,000 RPS
ルアジット 5,000 RPS




予期しない結果:LuaJITは最も遅く、他の参加者からはマージンがありました。



FreeLancerが指摘したように、Luaでガベージコレクターの設定を変更できます。 行のcollectgarbage( 'setpause'、2000)をコードの先頭に追加すると、ガベージコレクターはレイトレーサーの動作をほとんど中断せず、速度は25,000 RPSに増加しますが、ピークメモリ消費は1.5ギガバイトに増加します。 Chromeは、20,400 RPSの結果を示したときに150 MBしか「食べませんでした」。



ここからサンプルコードをダウンロードできます: JavaScriptおよびLuaJIT 。 JSとLuaのコードは、わずかな構文の違いを除いて同一です。 自宅のLuaでサンプルを実行するには、自分でluajit.exeファイルを作成し(ソースのソースLuaJITから準備またはコンパイルを行い)、コマンドラインで実行する必要があります。

luajit main.lua








All Articles