메모리 누수가있는 Java 응용 프로그램이 있습니다. 어떤 개체가 가비지 수집 중에 해제되지는지는 모르지만 그 개체를 참조하는 것은 해결할 수 없습니다.가비지 수집을 위해 객체 그래프를 '볼 수 있습니까'?
JVM에서 내부적으로 보유하고있는 객체 그래프의 일종의 가시성을 가질 수 있습니까?
어떤 개체가 다른 개체를 참조하고 있는지 확인할 수 있습니다.
메모리 누수가있는 Java 응용 프로그램이 있습니다. 어떤 개체가 가비지 수집 중에 해제되지는지는 모르지만 그 개체를 참조하는 것은 해결할 수 없습니다.가비지 수집을 위해 객체 그래프를 '볼 수 있습니까'?
JVM에서 내부적으로 보유하고있는 객체 그래프의 일종의 가시성을 가질 수 있습니까?
어떤 개체가 다른 개체를 참조하고 있는지 확인할 수 있습니다.
정말 기본적인 수준에서 jhat 및 jmap 명령을 사용하여 실행중인 Java 프로세스에서 힙 파일을 읽고 처리 한 다음 로컬 포트에서 작은 웹 서버를 시작합니다. 읽기 쉽지는 않지만 프로파일 러를 사 용할 필요는 없습니다.
와우. 정말 끝내주는 군. – izb
프로파일 러가이를 수행합니다. 예 : JProfiler. 오늘 날 나는 Optimizeit (지금 죽은 것 같습니다)를 사용했습니다.
결론은 청취자가 일부 콜렉션에 전달되고 콜렉션에서 제거되지 않는다는 것입니다. 리스너는 Frame 또는 프레임을 참조하는 해당 컨트롤 클래스에 정의 된 익명의 내부 클래스이며 익명의 내부 클래스는 외부 클래스에 대한 암시 적 참조를가집니다. 그래서 작은 청취자는 액자 전체 프레임과 그에 수반되는 모든 객체를 활성 메모리에 보관했습니다.
왜 어떤 물건을 knoe 할 때 그들을 참조 할 수 없습니까? –
J2ME 앱입니다. 에뮬레이터의 메모리 프로파일 러는 클래스가 1 일 때만 2 개의 인스턴스가 있다고 알려줍니다. 불행히도 더 이상 알려주지 않습니다. – izb