node.jsを試してみた その1: インストール
node.jsという存在を知ったので、調査+インストールしてみた。
名前だけは聞いたことがあったけど、
勝手にjQueryのようなクライアントサイドJavascriptを想像してました。
完全に間違い。
早速公式サイトからダウンロード。
今回試したバージョンは、
http://nodejs.org/dist/node-v0.2.3.tar.gz
コードが多いからか、コンパイルに時間がかかる。
コンパイルに使ったのは、Thinpad x100e memory 2G。
ちなみに、HP 2133だと14分、Mac miniだと3分25秒かかった。
あとは、公式サイトにあるhttpdコードを起動して動作確認。
これで起動OK。あとはブラウザからhttp://localhost:8124/にアクセスすれば
ちゃんと動作していることがわかる。
で、性能測定してみると、こんな感じ。
比較としては公平とはいえないかもしれないけど、PHPよりも早いことがわかる。
これからもう少し詳しく調べてみる。
PHPいらない疑惑?
名前だけは聞いたことがあったけど、
勝手にjQueryのようなクライアントサイドJavascriptを想像してました。
完全に間違い。
なんと、たった6行のJavascriptでHTTPサーバを作れるっつー話だからビックリ。Evented I/O for V8 JavaScript.An example of a web server written in Node which responds with "Hello World" for every request.
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8124, "127.0.0.1"); console.log('Server running at http://127.0.0.1:8124/');To run the server, put the code into a fileexample.js
and execute it with thenode
program:
% node example.js Server running at http://127.0.0.1:8124/
早速公式サイトからダウンロード。
今回試したバージョンは、
http://nodejs.org/dist/node-v0.2.3.tar.gz
$ http://nodejs.org/dist/node-v0.2.3.tar.gz
$ tar xvzf node*tar.gz
$ cd node-v0.2.3
$ configure
$ make
'build' finished successfully (5m41.814s)
コードが多いからか、コンパイルに時間がかかる。
コンパイルに使ったのは、Thinpad x100e memory 2G。
ちなみに、HP 2133だと14分、Mac miniだと3分25秒かかった。
あとは、公式サイトにあるhttpdコードを起動して動作確認。
/Users/satoshi% cat httpd.js
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');
/Users/satoshi% node httpd.js
Server running at http://127.0.0.1:8124/
これで起動OK。あとはブラウザからhttp://localhost:8124/にアクセスすれば
ちゃんと動作していることがわかる。
で、性能測定してみると、こんな感じ。
This is ApacheBench, Version 2.3 <$Revision: 655654 $>比較のために、同様の出力をするapache2+php5.3.2 on Ubuntuだと
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Server Software:
Server Hostname: localhost
Server Port: 8124
Document Path: /
Document Length: 12 bytes
Concurrency Level: 20
Time taken for tests: 0.886 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 76000 bytes
HTML transferred: 12000 bytes
Requests per second: 1128.29 [#/sec] (mean)
Time per request: 17.726 [ms] (mean)
Time per request: 0.886 [ms] (mean, across all concurrent requests)
Transfer rate: 83.74 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.4 0 9
Processing: 3 17 9.6 16 59
Waiting: 3 17 9.6 16 57
Total: 3 17 9.7 16 59
Percentage of the requests served within a certain time (ms)
50% 16
66% 20
75% 22
80% 24
90% 28
95% 36
98% 48
99% 51
100% 59 (longest request)
This is ApacheBench, Version 2.3 <$Revision: 655654 $>となる。
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Server Software: Apache/2.2.14
Server Hostname: localhost
Server Port: 80
Document Path: /
Document Length: 177 bytes
Concurrency Level: 20
Time taken for tests: 1.104 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 389000 bytes
HTML transferred: 177000 bytes
Requests per second: 906.07 [#/sec] (mean)
Time per request: 22.073 [ms] (mean)
Time per request: 1.104 [ms] (mean, across all concurrent requests)
Transfer rate: 344.20 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 3 2.5 2 18
Processing: 11 18 9.7 17 96
Waiting: 9 16 9.3 14 89
Total: 14 21 11.5 18 113
Percentage of the requests served within a certain time (ms)
50% 18
66% 20
75% 20
80% 20
90% 21
95% 35
98% 81
99% 98
100% 113 (longest request)
比較としては公平とはいえないかもしれないけど、PHPよりも早いことがわかる。
これからもう少し詳しく調べてみる。
PHPいらない疑惑?