Qtライブラリを使用して自己完結型のhttpサーバーを作成することを検討していますが、多くの人はQtCoreが肥大化しすぎており、オーバーヘッドが大きすぎると考えています。QtCore httpサーバーは、スレッドプールを使用して、約50の同時接続の負荷を管理しますか。
QtCoreライブラリは、最適化o2でリリースするためにコンパイルされたarchLinuxに動的にリンクされています
Qtライブラリを使用して自己完結型のhttpサーバーを作成することを検討していますが、多くの人はQtCoreが肥大化しすぎており、オーバーヘッドが大きすぎると考えています。QtCore httpサーバーは、スレッドプールを使用して、約50の同時接続の負荷を管理しますか。
QtCoreライブラリは、最適化o2でリリースするためにコンパイルされたarchLinuxに動的にリンクされています
あなたの質問は非常に広く、答えはあなたがあなたのhttpサーバーをどのように設計したいかに依存します。「シングルスレッドリアクター」または「マルチスレッドプロクター」または「ハーフシンクハーフ非同期」サーバーとして設計できます。
QTは主にネイティブまたはposixAPIに対して小さなラッパークラスを使用し、確かに独自の太りすぎをもたらし、50の接続はあまり多くないように聞こえますが、答えはこれらの接続が何をするかによって異なりますか?シンプルなページを提供しますか、それとも重い計算を実行しますか?
プロジェクトの難しさは、安全で信頼性が高く、スケーラブルな完全なhttpサーバーを実装することにあると思います。単純なJavaサーブレットモデルのライフサイクルを提供するためだけに、多くのコーディングを行う必要があります。多くのインターフェース/抽象化が必要です。
すでにテストされているオープンソースのhttpサーバーを見つけることができます。実稼働ソフトウェア用に自分で作成することすらしません。
Qtを使用してサーバーを作成できなかった理由はありませんが、パフォーマンスが希望どおりになるかどうかを事前に判断する方法は実際にはありません(サーバーの動作によって異なります)。同時スレッドの最適な数は、通常、ハードウェアコアの数と、プログラムの並列処理のレベルに依存することに注意してください。私の提案は、最短時間でできることは何でも実装し、その後必要に応じてパフォーマンスを調整することです。サーバーがそれほど多くの同時接続を処理できない場合でも、パフォーマンスが向上するまで、プロセスレベルの並列処理(マルチスレッドサーバーの複数のインスタンスを実行する)を使用できます。
50の接続は多くありません。
ただし、QtNetworkモジュールを追加していただければ幸いです:-)