2012-10-31 2 views
0

Tomcat 7에서 실행되는 Netbeans 7.2로 개발 한 webapp (JSF 2)가 있습니다.netbeans profiler : char [] 및 byte [] 사용의 출처를 어떻게 알 수 있습니까?

Netbeans 프로파일 러를 사용하면 브라우저가 첫 번째 페이지를로드 한 직후에 필드!) 메모리 사용량은 char [], byte [], string 및 stringBuilder가이 메모리 사용량의 약 95 %를 차지하면서 250Mb 주위에서 이미 변동하고 있습니다.

어떻게 이러한 높은 메모리 사용이 발생했는지 알 수 있습니까?

+1

Netbeans을 사용하지 않으므로 자세한 방법을 설명 할 수는 없지만 그러한 webapp 프로필러는 서버의 (Tomcat 's) 내부 클래스도 프로파일 링한다는 점을 명심하십시오. 'char []'과'byte []'를 많이 사용하는 것에 관해서는; 'char []'는'String' /'StringBuilder'/etc의 내부 문자/char 버퍼보다 ​​더 자주 표현되며,'byte []'는'InputStream' /'OutputStream'/기타 모든 chars/bytes는 궁극적으로 어딘가에 저장됩니다 *, 그렇지? 가장 정상적인 데이터 구조는'char []'와'byte []'이다. – BalusC

답변

0

메모리 프로파일 링 모드에서 프로파일 러를 실행하면 할당 추적 기록을 선택할 수 있습니다. 그렇게하면 누가 이러한 데이터를 작성했는지 추적 할 수 있습니다.

가비지 수집을 방지하는 데이터를 참조하는 사람을보고 싶을 때 프로파일 링 세션 중 힙 덤프를 취하여 프로파일 러의 통합 힙 보행자에서 분석 할 수 있습니다.

실제로, 귀하의 경우에는 힙 덤프로 시작하여 상위 수준 구조가 char [] 및 byte [] 배열을 대부분 유지 한 다음 메모리 프로파일 링 스냅 샷을보고 코드의 위치를 ​​찾으려고합니다 인스턴스화됩니다.

관련 문제