2

Xstream の xstream.fromXML(xmlString) メソッドによって生成されたクラスが原因で、Web コンテナーが permgen の満杯による面倒なガベージ コレクションを受けるという問題があります。これにより、レジン 3.2.1 サーバーの 1 つが応答しなくなり、再起動が必要になりました。

jdom、dom4j、DomDriver、xpp、jettison などのさまざまな Xstream ドライバーを使用してみましたが、うまくいきませんでした。

生成されたクラスには、sun.reflect.GeneratedSerializationConstructorAccessor23 のような名前が付いています。

これを回避できるのか、それとも現在の Xstream 実装 (1.4.2) の避けられない副作用なのか、誰にもわかりますか?

前もって感謝します。

4

2 に答える 2

2

問題は、リクエストごとに XStream の新しいインスタンスを作成していることです。マルチスレッドであり、生成されたクラスをキャッシュするように設計されています。それを静的インスタンスに変換すると修正されました。

于 2012-06-11T19:19:34.227 に答える
0

CMS コレクターを使用している場合は、-XX:+CMSClassUnloadingEnabledオプションで perm gen のバックグラウンド コレクションを有効にすることができます。また、パーマ ジェネレーションのサイズを大きくすると効果的-XX:MaxPermSize=Nです。このチート シートで、GC 関連のオプションをさらに見つけることができます。

JVM GC のチューニングですが、XStream の問題は修正されていません。

于 2012-06-09T14:24:03.607 に答える