大津です。

# すみません、なんだ書籍のステマかと嫌がる方もいらっしゃるかと思いますが
ご了承ください。

(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 シーズンの開催する予定です。

-- 



メールによる返信