JAR負荷上のオブジェクトプールを取り込み
-
21-09-2019 - |
質問
今、このコアJARを作成することが計算上高価であるオブジェクトを含むオブジェクトのプールを維持デスクトップアプリ、ウェブアプリケーションなど -
私も他のアプリの多くで使用される一部の機能、ひいてはを提供コアJARを持っています。オブジェクトプールは、固定サイズのものであるので、私は一度にすべてのオブジェクトを作成し、プールを取り込みます。 私は何をしたい私のJARを使用して、アプリケーションがロードされるたびに、オブジェクトプールは、このようなAプールの詳細について知る適用せずに作成されていることです。そして、アプリのロード時間があるため、プールの人口の打撃を受けるだろうが、アプリは、この段階を過ぎていると、このような重質の作成で、よりパフォーマンスヒットがあってはならないにもかかわらず、ということが後でオブジェクトます。
この?
を達成する方法はあります解決
このような何かをする唯一の方法は、お使いの起動ロジックを呼び出すために、クライアントアプリケーションで明示的にフックを追加することの外側はあなたのプールを構築するためにあなたのクラスに静的初期化子を追加することです。
あなたのクラスは、最初はかなり確定的ではありませんが、あなたのクラスを参照するコードパスが最初のヒットがあるとき、通常、JVM(あなたのクラスの任意のコードの前には、呼び出されること)によってロードされたときに、静的初期化子が実行されます。
私は、クライアントアプリケーションが起動するためのスタートアップロジック、彼らは正確ではなく、予測不可能な時にスタートアップロジックの実行を持つよりも、事のこのタイプを制御することができ、このようにフックのいくつかの並べ替えを提供することをお勧めします。
所属していません StackOverflow