3

実稼働の Unix ボックスに十分なメモリがあると仮定しましょう。また、あまりヒープを使用しない Java バックエンド アプリケーションがあります。最初のテストでは、100MB で問題ないようです。ただし、上限なしの場合、メモリは 1GB 以上まで増加します。アプリケーションが含まれている処理ストリームがときどきチョークするように見えるという事実がなければ、私はおそらく気にしません。考えられる (非常に漠然とした) 説明の 1 つは、原因は前述の Java アプリケーションにあるというものです。

質問:ヒープを不必要に高いままにしておくと、ガベージ コレクションが非常に長く延期され、最終的に開始されたときに「やるべきことが多すぎて」パフォーマンスに目に見えて影響を与える可能性がありますか?

おそらく、私たちはまだ Java 1.4 (かなり古いシステム) を実行していることに言及する必要があります。

4

2 に答える 2

1

heap のサイズに応じて GC 時間が長くなることは間違いありません。ヒープが大きいということは、GC の作業が増えることを意味します。ただし、ヒープが数 GB であっても、フル GC サイクルには約 2 ~ 3 秒かかります。そのような「チョーク」が表示されますか、またはチョークがはるかに長くなりますか?

一般に、GC 時間が合計アプリケーション実行時間の5% 未満であることは許容されます。

さらに、GC のせいにするのは難しいので、GC のログをいくつか示していただけると助かります。

于 2013-04-17T05:20:46.367 に答える