5

C10K 問題を意味します。Mac OS X で非同期 I/O を実行する最良の方法は何ですか (Mac および iPhone/iPad で使用すると仮定)?

Linux ではepollを選択し、Windows ではI/O Completion Ports を選択します。

最優先事項は、パフォーマンスとスケーラビリティ (数千の接続) です。

アップデート

わかった。Darwin は BSD に似たシステムであるため、私の一般的な考えはkqueueを使用することです。これは正しい方向ですか?この分野で経験のある方のお話が聞けて良かったです。

ありがとう

4

2 に答える 2

3

Boost.Asioは、優れたクロスプラットフォーム、高性能、C++ネットワークライブラリです。Mac OS Xでは、reactorイベントループにkqueueを使用し、他のプラットフォームはepoll、I / O完了ポート、ポーリング、または選択を使用します。問題なく数千の接続に拡張できます。名前が示すように、スレッドを使用せずに並行性のためのプロアクターデザインパターンを使用することにより、非同期プログラミングを促進します。

于 2011-05-15T01:07:48.343 に答える
1

libevを使用すると、実装の詳細を気にすることなく、互換性のあるさまざまな非同期IOバックエンド(epoll、kqueue、selectなど)を切り替えることができます。

http://software.schmorp.de/pkg/libev.html

于 2011-05-14T23:34:55.923 に答える