1、JVMと一緒に約オブジェクト
書き込み機能コードは、頻繁に同時の大量作成および多数のオブジェクトを破壊するときに、JVMは巨大な圧力を生成するための小さなオブジェクトは、クラッシュする可能性がありメソッドを作成しようとします。
JVMパラメータの2、
実際の開発では、オブジェクトの数は、総メモリフットプリントダウンした計算になるとき、オブジェクトツールは、どのくらいのメモリを占め同時実行千あればできるテスト。3つの地区、メモリサイズと古い時代の新世代を設定し、新しい世代、ガベージ古いの明確な思考と相まって。
オブジェクトに関する3、
実際のビジネスのコードでは、ターゲット@Service @Controllereでは一般的な増加、一度作成され、使用されてきたそれは古い時代にMinorGCて、作成された後、それは次のようになります。
私たちは、ローカル変数のインターフェイス、内部メソッドです新世代内のオブジェクトは、すぐにそれは古い時代に入ることはありません、回復するので、(エスケープ方法がない限り)使用されなくなっ一度、基本的には使用されません。
私たちは、実際に頻繁に起動MinorGCを避けるために、どこのように多数のオブジェクトを作成しない、オブジェクトを作成する際に考慮に入れることを試みるために、ビジネスのコードを記述します。(最初の口コミを併せて)
定数クラスとデータ・ディクショナリの4、
静的変数を定義するには-のみ、簡単なキー場合は、定数クラスを使用することができます。
それは不変キー+値の形式であれば、あなたが定義する列挙体を使用することができます。
それは不変のキーと値の変数である場合、その変数の値をこれは、MySQLなどの分野の持続から取られます。キー、あなたは定数クラスを使用することができます-静的変数を定義します。
5、JVMの最適化を分析する方法について
プロジェクトの分析、どのように多くのオブジェクトが、エデンエリアの新世代とどのくらいのサバイバー域の音を1秒を生成します。YGCは秒数後に発生します。YGCが発生すると、セキュリティ上のスペースルールがある場合は、古い時代の新世代の残りの大きさは平均メモリサイズよりも大きいすべての生き残ったオブジェクトが回復しました。古いの次のリリースは、YGCが発生した場合は、古いのフィット場合、FullGCが発生します。
エデンエリアごみの新世代は、サバイバー領域のサイズよりも大きく、ライブオブジェクトは、これらのオブジェクトの生存期間が、古い時代に直接保存されている場合、すぐに古い時代を作るのオブジェクトがいっぱいです。
だから、最適化は、第1の状況を分析することです。次に標的に、大きさや山サバイバー領域のサイズを調整し、エデンエリアから生きているオブジェクトは、サバイバーの領域にコピーされます。
そして、エクストラネットユーザーアクセスのための大容量メモリ・マシンは、G1のガベージコレクタのガベージコレクタに設定する必要があります。