2011-08-10 2 views
6

OSGi EventAdminサービスの使用に関する一般的な質問があります。私は現在、毎秒何千ものイベントが発生する可能性のある設定で使用しています。私の恐れは、EventAdminサービスがボトルネックになる可能性があるということです。私のプロファイラから得た最初の結果は、これをサポートしているようです。私が持っている質問は次のとおりです:OSGi EventAdminをいつ使用するのですか?

  1. EventAdminサービスを使用する際の一般的なルールはありますか?
  2. sendEventメソッドとpostEventメソッドのパフォーマンスはどう違うのですか?
  3. パフォーマンスの低いEventAdmin実装を持つ特定のOSGiコンテナがありますか?

ご協力いただきありがとうございます。あなたが見ボトルネックに関する詳細な情報を

乾杯、 ゲオルク

答えて

6

を持っていますか?

いくつかのパフォーマンス上の問題を解決するため、Event Admin仕様([1]のRFC 157を参照)のアップデートがあります。しかし、これはまだスペックの仕事を完了されていません。

送信イベントは同期送信であるため、すべてのリスナーに通知が送信されるまで、呼び出しスレッドはブロックされます。ほとんどの実装では、呼び出し元スレッドが使用されます。投稿イベントは発信者をブロックしません。別のスレッドがイベントを配信するための作業をキューに入れます。現在のEvent Admin仕様では、非同期イベントの注文が必要なため、注文が不要な場合に遅延が発生する可能性があります。 RFC 157は、この順序付けを必要としない機能を提供します。

私は1つの実装が他の実装より優れているか悪いかに関するデータはありません。

[1] http://www.osgi.org/Download/File?url=/download/osgi-4.3-early-draft2.pdf

+0

私は今、フェリックスとのEquinox OSGiのコンテナの両方で私たちのコードをテストしてみました。私が見ていることから、Felixは事象処理に関してEquinoxよりも優れているようです。 Equinoxよりもはるかにメモリが効率的です。私は当面フェリックスに固執すると思います。 – BumbleGee

関連する問題