おそらく、質問に答えるのはそれほど簡単ではありません...しかし、あなたの意見は何ですか? ノンブロッキング アプローチ (libevent など) を使用するか、erlang の軽量プロセスを使用して、次のことを行う必要があります。
- 一定量の RAM で可能な限り多くの接続を実現する
- 一定量の CPU で可能な限り多くのスループットを達成する
背景は、パブ/サブサーバーのコーディングを計画していて、どのアプローチを使用すべきかを判断できないということです。
おそらく、質問に答えるのはそれほど簡単ではありません...しかし、あなたの意見は何ですか? ノンブロッキング アプローチ (libevent など) を使用するか、erlang の軽量プロセスを使用して、次のことを行う必要があります。
背景は、パブ/サブサーバーのコーディングを計画していて、どのアプローチを使用すべきかを判断できないということです。
内部では、Erlang VM はノンブロッキング IO を使用します。Erlang 軽量プロセス ブロックの場合、VM は実際にはカーネル レベルのスレッド コンテキスト スイッチを実行しません。ほとんどの場合、同じ OS スレッドで別の LWP をウェイクアップするだけです (したがって、正しい意味での「ブロッキング」ではありません)。
+A 引数を使用して vm を開始し、割り当てる IO イベント ループ スレッドの数を指定することもできます (私の知る限り、Node.js はまだシングル スレッドであり、コールバック関数がハングした場合、VM は終了します)。
そこで読むことができるMochiweb を使用した 100 万ユーザーのコメット アプリケーションの作成に関する 1 つの記事。しかし、ほとんどの場合、安定性、柔軟性、保守性がより重要になると思います。これを念頭に置いて、より優れたパフォーマンスのソリューションがあったとしても、Erlang 以外のことは考えません。