我們有一個使用Spring 3.1.0.Final並部署在WAS 6.1上的portlet應用程序。StringHTTPMessageConverter加載導致java堆跳轉的所有字符集
我們在過去有多個使用Spring MVC的portlet。這是Spring 3的第一個portlet。我在代碼中的大部分地方使用了註釋和自動裝配。
當此應用程序部署在服務器中時,基本堆用量增加了25+ MB。
我沒有使用JProfiler的分析,發現StringHTTPMessageConverter加載在內存中,其約14 MB的內存佔用的所有字符集(com.ibm.nio.charset.Charset佔用的內存)
既然是門戶應用程序我已經org.springframework.web.portlet.mvc.annotation.Ann otationMethodHandlerAdapter豆明確地在我的配置中定義的,而不是org.springframework.web.servlet.mvc.annotation.Ann otationMethodHandlerAdapter
這是我曾嘗試這樣做遠
1)更改StringHttpMessageConvertor se設置
定義以下豆在我的配置
<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.Ann otationMethodHandlerAdapter嗎?
我的問題是
1)是否有什麼辦法可以避免所有字符集在內存中加載了?
2)基本堆中的25MB跳轉是否合理? Spring 3.1.0的常用內存腳印是什麼?
我沒有想法任何有關微調Spring框架的幫助將不勝感激。
感謝和問候
RaviG