最近発生している outOfMemory PermGen の問題に苦しんでいます。エラーが発生したときに保存されたログ スニペットの 1 つ:
java.lang.OutOfMemoryError: PermGen space
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.findClass(ModuleImpl.java:1872)
        at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:720)
        at org.apache.felix.framework.ModuleImpl.access$300(ModuleImpl.java:73)
        at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1733)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
最大パーマ サイズを増やしまし-XX:MaxPermGen=128mたが、ここで何らかのメモリ リークが発生していると確信しているため、これは一時的な解決策にすぎません。アプリケーションの Web パーツは、jetty (jsf + icefaces) にデプロイされます。ランダムなコンポーネントをクリックすると、使用されるメモリが増加しますjstat -gcold. -XX:+TraceClassLoadingjvm params に追加したところ、Web ユーザー インターフェイスでアクションが発生すると、多くのログが記録されますsun.reflect.GeneratedConstructorAccessor。sun.reflect.GeneratedMethodAccessorpermgen の 99% が使用されたときに、ヒープ ダンプも作成しました。YourKit プロファイラーを使用してヒープを分析しました。クラスローダータブにはsun.reflect.DelegatingClassLoader、それぞれに1つのクラスを持つ行がたくさんあります。メモリが常に増加している原因は何ですか? どんな助けでも本当に感謝します。
前もって感謝します、ルカシュ