1
Tomcat에 배치 된 GWT 기반 애플리케이션이있다. OutOfMemoryException으로 응용 프로그램이 충돌합니다. 그래서 최대 할당 된 메모리를 사용하여 가까운 때 응용 프로그램의 힙 덤프 걸릴 시작했다. 메모리 누수 발견을위한 GWT 애플리케이션 프로파일 링
응용 프로그램의 동작
는- 사용자 로그, 다음과 같다.
- 클라이언트는 15 초마다 서버를 폴링하여 작업 상태를 확인하고 UI 제어를 업데이트합니다. 폴링은 서버에서 일부 데이터를 가져 오는 requestfactory 호출을 사용하여 수행됩니다.
- 작업이 완료되면 flextable을 사용하여 사용자에게 결과를 표시합니다. 6 개의 열이있는 약 1000 개의 행이있을 수 있습니다.
힙 덤프,
우리는 메모리에 들고 무엇을 볼 수있는 jmap을 사용하여 톰캣 프로세스의 힙 덤프를했다. 다음 그림은 힙 덤프가있는 Eclipse Memory Analyzer를 사용하여 찍은 사진입니다.
우리는 25K의 유지 크기의 힙에 보관되는 해시 맵의 항목을 많이가 약 600 만 있다는 것을 볼 수있다 그들의.
질문 :
- com.google.gwt.core.client.impl.WeakMapping 16 바이트의 얕은 힙을 표시하지만 유지 힙 우리가 응용 프로그램에 대한 할당 거의 모든 메모리입니다.
- 우리는 15 초마다 서버를 폴링하고 어떻게 든 참조되며 GCed가 아닌 데이터를 검색하기 때문입니다.
- 어떻게 이러한 해시 맵을 참조 해제합니까?
- 여기에 언급 된 장면과 완전히 다른 내용입니까?
지금까지 jconsole, jprofiler, MAT, jhat를 응용 프로그램 분석에 사용했습니다. 그리고 우리는 그 문제에 대한 단서가 없습니다.
감사합니다.
gwt2.4를 시도 할 예정입니다. 이것에 대한 데이터가 있으면 업데이트 될 것입니다. – Kathir
rc1에 대한 수정 사항이 있습니까? 나는 rc1을 시도 중이고 변경이없는 것처럼 보입니다. – Kathir
[RC1] (http://code.google.com/p/google-web-toolkit/source/detail?r=10464)에는 변경 사항이 있어야합니다. 그 이유는 [수정] (http : /code.google.com/p/google-web-toolkit/source/detail?r = 10344) –