プラカンブログSTAFF BLOG

2017.07.14

「Node.jsってどうなんですか」の巻

システムのまついです

Node.jsはネットで解説記事を多く見かけますし、本屋に行けば技術書が何冊も並んでいます。
ウィキペディアで調べてみると、
・拡張子が(.js)となっているので、JavaScriptでプログラミングするようだ。
・サーバーサイドスクリプトって説明があるので、ブラウザ上で実行されるのではなくPHPのようにサーバー側で実行するようだ。
・C10K問題(しーてんけーもんだい:大量のアクセスに対してサーバーのハードウェアに余裕はあってもApacheが処理できない問題)を解決するようだ。
といったようなことがわかりました。

何だかとても便利なもののような気がするので検証してみました。
まずは環境を作成する必要があるので、情報を探してあれこれ試してみたけれども、つまずいてなかなか先にすすみませんでした。
出来あがってみればとても簡単な作業だったのですが、回り道をしてしまって、思った以上に時間がかかりました。

苦戦しましたが環境もできたので、前回ブログ「プログラミング言語 Goを使う」の巻で行ったのと同じベンチマークテストをしてみました。

上記画像の小窓にあるWaiting(TTFB:最初の1バイトが到着するまでの時間)の数値(15.60ms)を見てください。
前回ブログでのGoの結果が16.51ms(PHPは62.55ms)だったので、コンパイル言語と同じくらいの応答スピードがある事がわかりました。
Node.jsがPHPと同じようにサーバーサイドで実行されるインタープリター言語であるにもかかわらず、とても高速な性能を持っている事に驚きました。
Node.jsは高速なプログラム言語処理性能に加えてApacheとは異なる応答性能を実装しているのでこのような結果になったのではと思います。

検証を終えて、Node.jsの「リクエストが頻繁に多く、ロジックと処理が大規模ではない場合に性能を発揮する」という評価は正しいと感じました。

 

この記事は、MATUI が書きました。