SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

CodeZineニュース

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

  • X ポスト
  • このエントリーをはてなブックマークに追加

 米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の開発理由について書かれたブログ記事(英語)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8992 2015/09/29 15:55

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング