0

우리는 Spring 3.1.0.Final을 사용하고 WAS 6.1에 배치 된 포틀릿 애플리케이션을 가지고있다.자바 힙 점프를 야기하는 모든 문자 집합을로드하는 StringHTTPMessageConverter

과거에는 Spring MVC를 사용하는 포틀릿이 여러 개 있습니다. 이것은 Spring 3의 첫 번째 포틀릿입니다. 코드의 대부분의 부분에서 주석과 자동 와이어 링을 사용하고 있습니다.

이 응용 프로그램을 서버에 배포하면 기본 힙 사용이 25MB 이상 증가했습니다. 이 포틀릿 응용 프로그램이기 때문에

내가 JProfiler와를 사용하여 프로파일을했고 StringHTTPMessageConverter 메모리 14메가바이트 주위 차지하는 메모리의 모든 캐릭터 세트를로드하는 것을 발견

(com.ibm.nio.charset.Charset는 메모리를 많이 사용합니다) 나는 org.springframework.web.portlet.mvc.annotation.Ann otationMethodHandlerAdapter 콩 명시 적으로 내 구성에서 정의하지 org.springframework.web.servlet.mvc.annotation.Ann otationMethodHandlerAdapter

이 내가 그렇게 시도 것입니다 멀리

1) 변경 StringHttpMessageConvertor se ttings

내 구성이와

<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> 

운에 다음 bean을 정의.

2) 설정 파일에 정의했습니다. 일부 게시물에서 제안 된 것처럼 나는 태그를 주석 처리하여 위의 구성을 시도했습니다. 그러나 운이 없다.

3) 일부 포럼에서 제안한대로 BeanPostProcessor를 작성하려고 시도했지만 StringHttpMessageConverter 클래스를 찾을 수 없습니다.

내 구성에 org.springframework.web.servlet.mvc.annotation.Ann otationMethodHandlerAdapter를 명시 적으로 정의해야합니까?

내 질문

1) 메모리에로드 모든 캐릭터 세트를 피하기 위해 어떤 방법이 있나요이다?

2) 또한 기본 힙에서 25MB 점프가 정당합니까? 스프링 3.1.0의 일반적인 메모리 풋 프린트는 무엇입니까?

아이디어가 부족합니다. 스프링 프레임 워크를 미세 조정하는 것과 관련된 도움을 주시면 감사하겠습니다.

감사합니다 감사합니다

RaviG

답변

0

업데이트 : 구성에서 문제 해결, 제거 태그입니다. 우리는 포틀릿 MVC 어노테이션 처리기 어댑터를 사용하므로 서블릿 MVC 어노테이션 처리기 어댑터는 불필요하며 전혀 필요하지 않습니다. StringHttpMessageConvertor는 Servlet MVC Annotation Handler 태그로 가져 왔습니다. 생성자의 StringHttpMessageConvertor에는 메모리의 문자 세트를 가져 오는 코드가 있습니다.