Tomcat アプリケーション (Hibernate + EhCache で構成) を実行しています。多くのクラスを作成するべきではない典型的な ORM webapp です。ただし、ネイティブ メモリ トラッキングでは「いいえ」と表示されます。
過去 24 時間、私の webapp は、Metaspace で平均して 1 時間あたり約 1 つの新しいクラスを作成し、ピークでは 1 時間あたり 11 クラス、ピークでは 4 時間、クラスを作成しませんでした。
それで、7449 クラスから始めて、24 時間後には 7481 クラスになりました。フル GC を誘導した後、クラスの数は 0 ~ 2 減少する可能性がありますが、全体的には同じままです。
そう
クラスが遅延ロードされる場合、ネイティブ メモリに作成されるクラスの総数をどのように推定できますか?
- Hibernate がプロキシ クラスを作成することは知っています。これらのプロキシ クラス数を予測する方法はありますか?
- JVMにすべてのクラスを熱心にロードさせる方法は?
Metaspace にロードされた新しいクラスをログに記録するにはどうすればよいですか?
私の構成:
Server version: Apache Tomcat/8.0.28
OS Name: Linux
OS Version: 3.14.34-27.48.amzn1.x86_64
Architecture: amd64
JVM Version: 1.8.0_71-b15
JVM Vendor: Oracle Corporation
JVM flags: -Xms512m -Xmx2G -XX:+UseG1GC -XX:NativeMemoryTracking=summary -XX:+UnlockDiagnosticVMOptions -XX:+PrintNMTStatistics
Hibernate 4.3.1