大津です。 # すみません、なんだ書籍のステマかと嫌がる方もいらっしゃるかと思いますが ご了承ください。
(2012/11/27 8:58), アウゼン wrote: > > 表面から見ていると判らないですね、もう少し内部的にどのように動作してい > るのかとか > 理解できればいいのですが。 この部分は簡単ですが「 19.2.4 libeio 」で説明されていますのでご参考にし て下さい。 なお、学園祭のセッションでも話をさせていただきましたが、 libeio/libev は 次期安定版の node-v0.10 では削除され、新しいlibuv の独自実装に置き換わる 予定です。 既に current の master では置き換わっていますが、性能違いや挙動の変化な どは外からは全くわからないぐらいです。 > > そこで、ダウンロード 速度は落ちてしまいますが、イベントループを止 > めないよ > ううまく process.nextTick で分散させた例を > https://gist.github.com/4148268 <https://gist.github.com/4148268> > に載せました。 > > 手元で確認したら 1Gのバイナリーファイルに対して ab で同時100接続 > でベン > チしても問題なく動作しています。 > こういったことの考慮が必要なので、一般的に大容量ファイルの利用に向 > かない > と言われているのではないかと思います。 > > > ありがとうございます、試してみます。 今回の drainイベント、 pause(),、resume() の使い方については、「 9.6 drainイベントを利用したデータ送信制御」 のサンプルコードの応用になります。 しかしこれも学園祭で isaacs が基調講演で話をしていたよう node-v0.10 の stream2 では違った形の実装になります。 (dataイベント、pause()/resume() が無くなり read(),readable イベントを使 うことになりそうです。) ただし多少の性能劣化があるものの既存の stream1 APIとの互換性を残すので以 前のコードもそのまま使えるとのことです。 現在ブランチで開発中で個人的にはまだ試していないです。 > 話は違いますが、サーバサイドJavaScript Node.js入門いい本ですね。立ち読み > して、Amazonでポチリました。 ありがとうございます。別途この本をテキストにした勉強会も開催していますの で、よろしければご参加ください。 近日中に 2nd シーズンの開催する予定です。 --
