AWS、高速起動にこだわった軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開。AWS Lambdaでの利用にフォーカス

概要

  • AWSが軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開
    • Rust製
    • JavaScriptエンジンにはQuickJSを採用
  • 特徴
    • 高速起動にフォーカス
      • 現在のJavaScriptランタイムにおいて性能向上のために搭載されているJITコンパイラをあえて搭載せず、よりシンプルで軽量なランタイムとして実装することで高速に起動
      • これにより(Node.jsやDenoやBunなどの)既存のJavaScriptランタイムと比較して起動速度が10倍高速
  • (従来の)JITコンパイラの課題
    • Node.jsやBun, Denoは非常に高性能なJavaScriptランタイムだが、さまざまな用途のアプリケーションを念頭に置いて設計されている
      • ごく短時間だけ実行されるサーバレス環境が考慮されているわけではない
      • 実行中のコードの動的なコンパイルと最適化をJITコンパイラに依存
    • JITコンパイルは、長時間に実行されるアプリケーションでは性能面で非常に有利だが、計算量とメモリ消費の点で大きなオーバーヘッドを伴う
  • LLRT
    • JITコンパイラのオーバーヘッドをなくすことで、CPUとメモリのリソースを節約
    • 効率的にコードを実行する処理に割り当ててアプリケーションの起動時間を短縮
  • 移行
    • Node.jsのAPI仕様に基づいているため、Node.jsで動作するコードからの移行は容易とされている
      • 完全互換ではなく全てのAPIが実装されているわけではないため、詳しい互換性についてはAPIドキュメントなどを参照