質問

最近、実際のリクエストの処理を開始する前にアプリをウォームアップする必要がある (高スループット要件を伴う) シナリオについて知りました。この背後にあるロジックは、JIT が魔法のようなパフォーマンスを発揮できるようにするためです。

これは Java アプリの標準ですか? それともメモリの多い (フットプリント) アプリで一般的に行われますか?

役に立ちましたか?

解決

あなたは、高トラフィックのWebアプリケーション/ Webサイトについて話している場合は、

その後、JITは非常にマイナーな問題です。最大の問題は、(移入)あなたが持っている必要がありますすべてのキャッシュ層をウォーミングアップされます。休止状態から移入されている、例えば ehcacheを領域。 IO関連の操作は、CPUの内部で起こる何よりも遅く桁違いなので、それはです(あなたはフラクタルを計算されていない限り、それは次のようになります。)

他のヒント

質問は、あなたがの

?これを行うには、のあなたの方法の外に出るしたい場合には、

あなたはWebアプリケーションをロールアウトした場合、あなたはそれを「温暖化」している間、あなたが逆効果である余分な負荷を、追加している、そして、すぐに住んでています。デスクトップアプリが起動するときに、同様のは本当です。温暖化にはポイントは、ユーザーがそれを使用してすぐに開始する予定されていない場合。それとも悪いことに、あなたはアプリを暖めている間に、ユーザが対話することができません。

あなたはWebアプリケーションを展開し、あなたはそれにあなたのロードバランサをポイントする前に、展開をテストした場合、

、あなたはすでにサイド結果としてそれを温めてきました。

に加えて チェロヴィムの答え, ウォームアップが必要な問題は他にもいくつか考えられます。

  • オブジェクトのインスタンス化 (遅延読み込み、シングルトンなど)。
  • ヒープ割り当て ( Xms あなたより小さいです Xmx).

OS もアプリケーションの動作に合わせて調整するので、OS 呼び出しもウォームアップ期間の影響を受けるのではないかと思います。

上記のほとんど (キャッシュの作成、オブジェクトの初期化) は Java に固有のものではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top