1

非常に大きなアプリケーションであり、キャッシュやその他のプロセスで大量のメモリを使用するWebアプリケーションのプロファイリングを試みているため、ヒープダンプを取得して分析することは非常に困難です。または、JProfilerを介して分析しようとしても機能しています非常に遅い。それを簡単にできる方法はありますか?私のアプリケーションは、120 GB の RAM のうち 30 GB をほとんど消費しています。

ヒープのさまざまな部分にさまざまな量のメモリを割り当てることができることをどこかで読みました。私たちのアプリケーションではそのようなことはしませんでした。-xmx -110g を指定しました。これは、110 GB の最大 RAM を指定したことを意味します。old gen、eden スペース、survivor スペースなどのさまざまなブロックに割り当てるメモリの量を確認できますか。

4

2 に答える 2

1

30 GB を使用するシステムのプロファイリングは困難です。プロファイリングは大量の情報を収集するため、オーバーヘッドがさらに増加し​​ます。

最善の方法は、アプリケーションをモジュールに分割することです。モジュラー アプリケーションを作成しましたよね? 次に、サンプル データを使用して、各モジュールを個別にプロファイリングできます。そうすることで、オーバーヘッドと消費されるメモリの量を制限できます。

パフォーマンス チューニングのヒントについてはhttp://java.dzone.com/articles/java-performance-tuning?page=0,1を参照してください。さまざまなメモリ使用レベルを設定できます。

于 2012-05-31T09:26:43.630 に答える
0

知りたい場合

古い世代、エデン空間、サバイバー空間などのさまざまなブロックに割り当てるメモリの量。

次のクラスを使用できます: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/management/ManagementFactory.htmlそして、たとえば JMX を使用してこの情報にアクセスします。

于 2012-06-05T09:11:40.120 に答える