4

いくつかのハードウェア制限のあるデバイスにデプロイされるアプリケーション用の OSGi バンドルの開発を開始しています。そのバンドルの実行をプロファイルして、最終的なデバイスの依存関係に常に適合するようにする方法を知りたいです。各バンドルが使用しているメモリ量を把握し、ボトルネックを特定し、同じサービスの異なる実装を比較するためのプロファイラーがあれば便利です。

OSGi デプロイメント用のプロファイラーはありますか、それとも一般的な Java プロファイラーを使用する必要がありますか?

開発のために、Apache felix で Pax ランナーを使用してバンドルを実行し、maven を使用してプロジェクトの依存関係とビルドを管理しています。

4

1 に答える 1

4

私の会社では、組み込みデバイス用の OSGi アプリケーションを開発しています。残念ながら、あなたが探しているすべての機能を備えたツールを私は知りません。あなたが探している種類の問題に対処するために私たちが何をしているのかをお伝えできます。

1) デバイスへのフィッティング: Eclipse で開発し、Equinox を使用してデプロイします。Eclipse で .product ファイルを使用してビルドします。これにより、プログラムがデバイス上で使用するディスク/ROM スペースの量を確実に把握できます。

2) プロファイリングには、通常、YourKit を使用します。他にも優れた Java プロファイラーがありますが、これがうまく機能することがわかりました。

実際のサービスのプロキシとして機能するバージョンのサービスを構築することをお勧めします。プロキシは、タイミング コードを挿入するのに最適な場所です。これにより、各サービス メソッドに対して行われた呼び出しの数をカウントし、各呼び出しの時間を判断できます。この方法で引数に基づいてタイミングを分類し、パフォーマンスの悪いエッジ ケースを見つけることもできます。その後、デプロイの準備ができたら、プロキシを取り出すことができます。

幸運を。

于 2010-03-16T00:13:32.650 に答える