web-dev-qa-db-ja.com

なぜLuaJITはそんなに良いのですか?

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

この 比較 プログラミング言語は、LuaJITが通常のLua実装よりも10倍以上改善されていることを示しています。なぜ変化がそれほど大きいのですか? Luaについて、JITコンパイルから多くの利益を得られるような具体的なものはありますか? Pythonは動的に型付けされてバイトコードにもコンパイルされるので、なぜPyPy(今はJITを持っていると思います)がパフォーマンスの大幅な向上を示さないのですか?

53
Mihai

Mike Pallはこれについていくつかの場所で話しました:

すべての高性能システムと同様に、結局のところ、答えはアルゴリズムとエンジニアリングの2つです。 LuaJITは高度なコンパイル技術を使用し、非常に細かく設計された実装も備えています。たとえば、手の込んだコンパイル手法ではコードの一部を処理できない場合、LuaJITはx86アセンブリで記述された非常に高速なインタープリターにフォールバックします。

LuaJITは、エンジニアリングの側面で2つのポイントを獲得します。これは、LuaJIT自体が巧みに設計されているだけでなく、Lua言語自体もPythonおよびJavaScriptよりもシンプルで一貫性のある設計です。これにより、 )実装が一貫して優れたパフォーマンスを提供するのが容易になります。

63
Ben Karel