17

私はACEBoost、およびwxWidgetsについてかなりの経験があります。最近、POCOライブラリを見つけました。パフォーマンスと信頼性に関して、ACE、Boost、および wxWidgets と比較した経験がある人はいますか?

ACE を POCO に置き換えることに特に関心があります。x64 ターゲットの VS2008 で ACE をコンパイルできませんでした。私は主に ACE_Task を使用しているので、それらを Poco のスレッドとメッセージ キューに置き換えることができると思います。

私が興味を持っている POCO の他の部分は、HTTPServer、HTTPClient、および LayeredConfiguration です。これらのライブラリは、Boost および wxWidgets のライブラリに似ていますが、wxWidgets の使用を GUI コンポーネントに制限しようとしており、同等の Boost ライブラリは... 難しいです。

良いか悪いかを問わず、POCO について誰かが共有できる経験に興味があります。

4

3 に答える 3

16

私はPOCOの一部を何度も使用しており、非常に優れたライブラリであることがわかりました。私は何年も前に ACE をほとんど放棄しましたが、POCO には同じパターン (タスク、リアクターなど) がいくつか含まれています。

私が好きないくつかの側面:

  • これは非常によく統合された OOP 階層であるため、コンポーネントは互いにうまく機能します。ブーストのようなバラバラなものよりもまとまり感があります。

  • ソースコードが利用可能で、非常に明確です。それが何をしているのかを理解するために長い時間を割く必要はありません (ACE、少なくとも最後にソースを見ました) か、テンプレート ウィザード (Boost) になる必要はありません。

  • コンポーネントは、標準の C++ に近くなります。例外は std::exception から派生します。彼らはまだ別の文字列クラスなどを再発明しませんでした.

  • 意外と充実しています。一見したよりもはるかに多くのものがあります。

欠点:

  • 個人的な好みの問題ですが、作成者はヘッダー ファイル モデルごとに 1 つのクラスにほぼ固執しているため、多くの異なるファイルを含めることになります。

  • 限られたドキュメント。主に doxygen タイプの API ページと、ソースの例を示す 2 つの PDF です。使用可能ですが、lib のサイズを考慮すると、コンポーネントを最大限に活用しているかどうかを判断するのは最初は困難です。

  • それを中心に構築されたアクティブなコミュニティがある場合、私はそれを見つけたことはありません. このパッケージは、ヨーロッパを拠点とする会社によって管理されており、Wiki がありましたが、それほど活発でも有用でもありませんでした。

すべてを考慮すると、マイナス面はかなり小さいです。非常に優れたライブラリだと思いますので、ぜひお勧めします。

于 2009-04-17T16:29:49.053 に答える
6

ACEを使用したことはありませんが、BoostとPocoを使用しました。私はPocoのコーディングスタイルが本当に好きです。パッケージは一貫しており、ソースコードは読みやすいです。それらはブーストのようにクレイジーなテンプレートではありません。私の経験では、boostの使用方法(シリアル化パッケージ、ポインターマップコンテナーなど)を読むのに何時間も費やし、Pocoのものの使用方法を読むのに少し時間を費やしています。デザインが良く、必要に応じてテンプレートを利用していると思います。

マイナス面として、APIドキュメントはありますが、パッケージの使用方法に関する詳細なドキュメントはありません。そのためには、通常、サンプルのソースコード、またはそれらの単体テストのソースコードを確認します。

明らかなエラーなしでWindows/LinuxでHTTPServerを動作させています。

だから、1つの前向きな経験としてそれをチョークで書きなさい。

于 2009-04-17T16:18:10.093 に答える
2

私には、boost が新しい C++ ライブラリに対して最も牽引力があるように思われ、それらの多くが次期 C++ 標準に受け入れられたという事実がそれを物語っています。

私は ACE と Boost を自分で使用していますが、それらを選択した理由は、それらが成熟しており (特に ACE)、強力なユーザー コミュニティがあり、それらが維持および強化され、質の高い専門的なサポートを受けることができるためです。Remedy ITを ACE/TAO サポートに使用しており、非常に満足しています。

ACE は Boost よりもはるかに古いライブラリであり、その目標の 1 つはよりエキゾチックな (組み込みなどの) プラットフォームをサポートすることであるため、Boost ほど最先端の C++ テクノロジを使用していません。私は ACE と Boost を組み合わせて使用​​していますが、その組み合わせに非常に満足しています。

wxWidgets は主にグラフィックス UI ライブラリであるため、なぜ wxWidgets を一致させたのかよくわかりません。しかし、いくつかの C++ UI プロジェクトを行う必要がある場合は、QTを使用します。これは主に、これも広く使用されているライブラリ (すべての KDE デスクトップが QT の上に構築されている) であり、メンテナンスが行き届いていて、大きなファイルにアクセスできるためです。質問とサポートのためのユーザーベース。

于 2009-04-17T16:30:46.197 に答える