실행중인 프로세스에서 jmap -histo
명령을 사용하면 매 30 분마다 데스크탑 앱에서 분명히 메모리 누수가있는 한 종류의 개체가 발견되었습니다. 누설 (즉 그 번호 인스턴스 시간 동안 성장과 엄청난 양만큼 개체의 종류 만)에 대한 책임어떤 종류의 객체가 메모리 누수를 일으키는 지 알았습니다. 지금은 무엇입니까?
개체 INT []이다.
나는 의심이된다. 그러나 나는 그것에 대해 확신하지 못한다. (나는 플러시/무효화에 대해 매우 신경을 썼다. 그러나 나는 여전히 그것이 누출이 멈추는 곳이라고 생각한다.)
그러나 나는 또한 프로그램의 다른 부분에서 int []를 사용하고 있으며 누출이 어디에서 왔는지에 대해 확신하지 못합니다. jmap -histo
의 출력은 내 마음에 든다면 너무 "얇은"것입니다.
int[]
의 누출 위치를 어떻게 알 수 있습니까?
간단히 말해서 내가 얼마나 위대하고 간단한 지 알려주고 싶습니다. : 많은 수의 객체가 단순히 인스턴스와 메모리의 수를 보는 것만으로도 누수를 발견 할 수 있습니다. 추가 분석.
그러나 제 경우에는 다른 것을 필요로합니다.
제 질문은 어떤 종류의 도구가 누수를 발견하는 것이 허용되지 않습니다. 내 질문 :
int [] 내 앱 (또는 내 앱에서 사용하는 API)이 누출되었다는 것을 알고 있다면 (좋아하는 프로필러를 사용하여) 취할 수있는 조치는 무엇입니까? 누출?
이 도구는 Java 1.5 OS X 10.4 Apple JVM에서 작동해야합니다.
공구를 * Remaining Heap *별로 정렬 할 수 있습니까? – NoozNooz42
당신은 그 일식 매트를 사용할 수 있습니다 :) –