57

編集: 残念ながら、LuaJIT は以下のリンクの比較から除外されました。

このプログラミング言語の比較は、LuaJIT が通常の Lua 実装よりも 10 倍以上改善されていることを示しています。なぜ変化が大きいのでしょうか?Lua について、JIT コンパイルから大きな恩恵を受ける特定の何かがありますか? Python も動的に型付けされ、バイトコードにコンパイルされますが、なぜ PyPy (現在は JIT を持っていると思います) がこれほど大きなパフォーマンスの飛躍を示さないのでしょうか?

4

1 に答える 1

69

Mike Pall は、いくつかの場所でこれについて語っています。

すべての高性能システムと同様に、最終的に答えはアルゴリズムとエンジニアリングの 2 つに帰着します。LuaJIT は高度なコンパイル技術を使用しており、非常に精巧に設計された実装も備えています。たとえば、複雑なコンパイル手法ではコードを処理できない場合、LuaJIT は x86 アセンブリで記述された非常に高速なインタープリターにフォールバックします。

LuaJIT は、LuaJIT 自体がよく設計されているだけでなく、Lua 言語自体が Python や JavaScript よりも単純で一貫性のある設計を備えているため、エンジニアリング面で 2 倍の評価を得ています。これにより、実装が一貫して優れたパフォーマンスを提供することが (わずかに) 簡単になります。

于 2011-02-06T05:40:29.003 に答える