PAXは多くのことを行っており、コンテナーを作成してそれらすべてのjarをコピーするのは安くはありませんが、パフォーマンスを向上させるための一般的なヒントはありますか。コンテナの外部で実行するテストがありますが、内部でははるかに時間がかかります。私は主に、マニフェストが正確であり、依存関係が失われることなくバンドルがデプロイ可能であることを確認するためにPAXを使用しています。私はKnopflerfish、Equinox、Felixを試しましたが、一般的に、ベアボーンコンテナレス実行に対して比較的遅いという違いはほとんどありません。
2 に答える
お気づきのように、基礎となるコンテナは大きな違いはありません。
最小限のバンドルをその場で作成したい場合は、Pax Tinybundlesを試すことができます。これがケースに当てはまる場合は、実際にテストに必要なコンテンツのみを使用して、最小限のバンドルのセットを作成できます。たとえば、マニフェストをパッケージ化するだけです。私はこの特定の目的のためにそれを自分でベンチマークしていませんが、それは一見の価値があります。
補足として、Pax Exam 2.3が@Beforeと@Afterのサポート(ここを参照)を導入したことを考慮してください。これにより、より柔軟な負荷のセットアップ/ティアダウンが可能になります。
ネイティブコンテナの使用はPaxRunnerContainerよりも高速であり、外部プロセスを開始するオーバーヘッドを節約できます。
EagerSingleStagedReactorFactoryを使用すると、テストごとにフレームワークを再起動するオーバーヘッドを節約できます。
JARのコピーを回避するには、一般的なURLよりもmvn:URLまたはmavenBundle()を選択します。バンドルは、ダウンロードされると、ローカルのMavenリポジトリから取得されます。
Pax Exam 2.3.0の新機能は、リファレンスです。コピーせずにバンドルを所定の場所にプロビジョニングできるプロトコルです。これは、展開されたバンドル(つまり、解凍されたディレクトリ構造)でも機能します。