オマケ1
Apacheはオワコン?
Data Semantics
Realtime WEB
Apacheは1つのコネクションに対し、スレッドを作成する
複数コネクションが来たら、同じスレッドを複製しないといけない。
そのため、メモリを食いすぎる。
そして、つなぎっぱなしにされると、メモリが消費されて
処理が追いつかなくなる。
この問題を
The C10K Problem
と呼ぶ
SmartPhone WebSocket Node.js
複数のコネクションを、1つのスレッドで全て捌く
ただし、1つのコネクションの処理が終了しないと
別のコネクションの処理が始まらないという弱点もある。
Jason A. Hoffman, Joyent CTO
SmartDataCenter
PaaS NodeNinja
ギャザQはNodeで作られている
Connection
Over 1000 connection
Memory
Node.js 20-30MB
MongoDB 80MB以上
CPU LA 0.1
たったこれだけのスペックで1000コネックションを捌ける
Apacheだと複数台のサーバーが必要になるコネクション量である。
オマケ2
Nodeのコードをどんな環境で書いているのか?
エディタなどのお話
そういう質問を取る時間も必要なのでは?
JavaScriptは柔軟性が高すぎて変数の扱いかたがよく分からない
IDEはどうしたらよいのだろうか?
Webstorm(有料IDEで、近々Nodeもサポートされる予定)
EmacsやVimでも、問題があって、関係のないメソッドが発現する可能性がある
らしいけど、僕はIDEは使わないでしょう。
オマケ3
Chromeデベロッパー版にWebRTCを有効にする機能がある。
Web RealTimeCommunication
デフォルトではオフだが、フラグを立てるとオンになる。
例:
webRTCのデモ
ビデオ要素からキャンバス要素へ画像を移すことが出来るらしい。