0

Spring 3.1.0.Final を使用し、WAS 6.1 にデプロイされたポートレット アプリケーションがあります。

過去に Spring MVC を使用した複数のポートレットがありました。これは Spring 3 を使用した最初のポートレットです。コードのほとんどの場所で注釈とオートワイヤーを使用しています。

このアプリケーションがサーバーにデプロイされると、ベース ヒープの使用量が 25 MB 以上増加しました。

Jprofiler を使用してプロファイリングを行ったところ、StringHTTPMessageConverter がすべての文字セットをメモリにロードし、約 14 MB のメモリを占有していることがわかりました (com.ibm.nio.charset.Charset がメモリを消費します)。

これはポートレットアプリであるため、構成で明示的に定義された org.springframework.web.portlet.mvc.annotation.Ann otationMethodHandlerAdapter Bean があり、 org.springframework.web.servlet.mvc.annotation.An otationMethodHandlerAdapter ではありません。

これは私がこれまでに試したことです

1) StringHttpMessageConvertor の設定を変更する

私の構成で次のBeanを定義しました

<bean class = "org.springframework.web.servlet.mvc.annotation.An notationMethodHandlerAdapter">
<property name = "messageConverters">
<list>
<bean class = "org.springframework.http.converter.StringHttpMess ageConverter">
<property name = "supportedMediaTypes">
<list>
   text/plain;charset=UTF-8
</list>
</property>
</bean>
 </list>
</property>

これでは運が悪い。

2)構成ファイルで定義しました。いくつかの投稿で提案されているように、タグをコメントアウトして上記の構成も試しました。しかし、運がありません。

3) いくつかのフォーラムで提案されているように、BeanPostProcessor を書き込もうとしましたが、StringHttpMessageConverter クラスが見つかりませんでした。

構成で org.springframework.web.servlet.mvc.annotation.An otationMethodHandlerAdapter を明示的に定義する必要がありますか?

私の質問は

1) すべての文字セットがメモリに読み込まれないようにする方法はありますか?

2) また、ベース ヒープでの 25 MB のジャンプは正当化できますか? Spring 3.1.0 の通常のメモリフットプリントは?

アイデアが不足しています。Spring フレームワークの微調整に関するヘルプをいただければ幸いです。

感謝と敬意

ラヴィグ

4

1 に答える 1