CodeZine(コードジン)

特集ページ一覧

NGINX、WebサーバNGINX上で利用できるJavaScript「nginScript」の開発理由についてブログで公開

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2015/09/29 15:55

 米NGINXは、先日開催された「nginx.conf 2015」において発表した、独自のJavaScript実装であるnginScriptをどのような理由で開発したのかについて、公式ブログの9月28日(現地時間)付の記事にて語っている。

 nginScriptは、ECMAScript 5のサブセットであり、nginxサーバ内でコンパイルされ、仮想マシン上で実行される。現時点で公開されているプレビュー版では、JavaScriptコードをnginxがオンデマンドで生成した変数の値、またはnginx実行時のコンテンツ生成フェーズで評価しているが、将来的にはより多くのJavaScript評価タイミングの導入を予定している。

 現在の一般的なJavaScript実装は、Webブラウザ上で実行するようデザインされており、メモリ管理はガベージコレクションに依存しているが、メモリ不足時には意図せず終了してしまうなどJavaScript仮想マシンのリソース管理は難しく、Webサーバ上での実行には適さなかった。

 一方、nginScriptは完全なJavaScript言語をサポートする必要はないため、イベントドリブンに特化するとともに、パフォーマンスの予測できないガベージコレクションの利用を避け、シンプルかつ迅速な実行や、実行結果の仮想マシン外への保存を行っている。

 機能面では、シングルスレッドでのバイトコードによる実行によって、起動が速く、また実行後はガベージコレクションなどを使用せずにメモリを開放できる。また、nginxのビルトイン機能へのアクセスや、nginxのイベントドリブンでのnginScript仮想マシンのスケジュール実装に対応するなど、独自性の高い機能を備える。

 パフォーマンス面では、PHPやRubyといったインタプリタ言語に劣らないものの、JIT言語ほどではない。そのため、開発の初期段階ではJITコンパイラの導入なども検討されたが、JITの採用によって対応プラットフォームが制限されるため導入を見送っている。


【関連リンク】
NGINX(英語)
nginScriptの開発理由について書かれたブログ記事(英語)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5