by shigemk2

当面は技術的なことしか書かない

大阪Node学園一時限目 オマケ

オマケ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もサポートされる予定)

EmacsVimでも、問題があって、関係のないメソッドが発現する可能性がある
らしいけど、僕はIDEは使わないでしょう。

オマケ3

Chromeデベロッパー版にWebRTCを有効にする機能がある。
Web RealTimeCommunication
デフォルトではオフだが、フラグを立てるとオンになる。

例:

  • webRTC web上でビデオ、音声を出力出来る
  • P2PAPIを有効に出来る

webRTCのデモ
ビデオ要素からキャンバス要素へ画像を移すことが出来るらしい。