Turbocall: Deno FFI 用のジャストインタイム コンパイラ
Turbocall: Deno FFI 用のジャストインタイム コンパイラ

内容紹介
littledivy が書いたブログ投稿「Turbocall: A Just-In-Time Compiler for Deno FFI」では、Deno ランタイムの驚くべき最適化が明らかにされています。 この記事では、Deno が Turbocall と呼ばれるジャストインタイム (JIT) コンパイラーを活用して、Foreign Function Interface (FFI) 呼び出しを高速化する方法について詳しく説明しています。 Rust で書かれたこのコンパイラは、提供された型情報に基づいて最適化された FFI 呼び出しバインディングを生成し、その結果、パフォーマンスが大幅に向上します。Bun や Node.js などの他のランタイムに対して 100 回ベンチマークを行った場合、Deno での FFI 呼び出しは高速になります。 著者の littledivy は非常に知識が豊富であるだけでなく、東京で開催された DenoFest Meetup でこのトピックについて講演し、このテーマに対する深い理解を示しています。 この記事では、Turbocall が V8 の従来の型チェックと保護をバイパスし、最適化された JIT コードからの直接呼び出しを可能にする方法を強調しています。 これは通常の慣行からの大幅な逸脱であり、Deno および FFI と協力する開発者に重大な影響を与える可能性があります。 この記事は、JavaScript ランタイムの技術的進歩と FFI 最適化の将来に興味がある人にとって必読の記事です。 また、これは、JavaScript エンジンでの JIT コンパイルの状況をさらに変える可能性のある、Static Herme や「just-js/lo」などの将来の開発の可能性を予告しています。
自動要約
– V8 Isolates は JS を実行するためのサンドボックスであり、FFI を通じてローカル関数を呼び出すことができます。
– V8 高速呼び出しは、最適化された JIT コードから直接ネイティブ バインディングを呼び出すことができる V8 の最適化です。
– Deno FFI は、Deno で V8 Fast コールを使用するための一般的なシナリオの 1 つです。
– Turbocall は、型情報に基づいて最適化された FFI 呼び出しバインディングを生成するための Deno の小さなアセンブラです。
– Turbocall により、Deno での FFI 呼び出しが 100 倍高速になります。
– Turbocallの実装詳細はDenoFest Meetupでの講演で知ることができます。
– 他の JS ランタイムと比較した Turbocall のパフォーマンス。
– Static Herme と just-js/lo は、将来 V8 Fast 呼び出しと競合する可能性のあるエンジンです。
– この文書には、著者の Twitter および PDF へのリンクが記載されています。