高性能サーバー (HTTP サーバーではない) を設計しており、設計オプションを検討しています。サーバーは、多数の着信接続 (数千単位) をサポートし、Windows と Linux の両方でコンパイルする必要があります。
Windows 側では、今のところストレスを処理しているように見える IO Completion Port サーバーを実装しました。Linux の需要が急増したため、スレッド プールで受け入れ/読み取りイベントを使用する方法を提供するクロスプラットフォーム ライブラリを見つけようとしています。
これまでのところ、libEvent が正しい選択のようです (このリンクの「サンプル コード: エコー サーバー」のようなもの)。しかし、libEvent docs の別のページから引用します。
event_base がロックを使用するように設定されている場合、複数のスレッド間で安全にアクセスできます。ただし、そのループは単一のスレッドでしか実行できません。複数のスレッドで IO をポーリングする場合は、スレッドごとに event_base が必要です。
私の基本的な設計は、イベントの受け入れと読み取りに反応するスレッド プールを用意することです。この引用は、私の理解が正しければ、それはできないと言っています。
誰もが高パフォーマンスの経験を持っていますか? サーバーは libEvent に基づいていますか? 別のライブラリを使用する必要がありますか?
このようなサーバーのコード例は完璧です