문제

내가 사용하 jProfiler 을 찾아 메모리 누수 Java 응용 프로그램을 스윙.가 발견한 경우의 JFrame 는 계속 성장에서 계산합니다.

이 프레임을 열고 다음을 닫습니다.

사용 jProfiler,그리고 보기로 GC 루트 하나만 있을 참조,'JNI 글로벌 참조'.

이것은 무엇을 의미합니까?왜 그것에 매달려 각각의 인스턴스의 프레임은?

도움이 되었습니까?

해결책

키는 좋은 개요 Java 기본 인터페이스, 본질적으로 그 사이의 통신을 할 수 있습 Java 및 네이티브영 시스템 라이브러리 쓰여진 다른 언어로도 제공됩니다.

JNI 글로벌 참조하는 경향이 있는 메모리 누수,그들은 자동으로 쓰레기 수집하고,프로그래머가 명시적으로 그들을 무료로.를 작성하지 않는 경우에는 어떤 JNI 코드는 자신을,그것은 라이브러리를 사용하는 메모리 누수가 일어나지 않습니다.

편집 조금 더 많은 정보에 대글로벌 참조,그리고 왜 글로벌 참조용(그리고 어떻게 그들은 해야 해제)

다른 팁

A JNI 글로벌 참조 참조에서"네이티브"코드를 자바 객체에 의해 관리되 Java 쓰레기 수집기.을 방지하기 위한 것이 컬렉션의 객체가 아직도 사용하고 기본 코드,하지만 나타나지 않는 어떤 라이브에서 참조 자바 코드입니다.

A JFrame 가 java.awt.Window, 과 연결된"기본"창체입니다.을 때 당신은 완전히 종료와 함께 특정 JFrame 인스턴스를 호출해야 합 그 dispose() 방법은 청소하는 것이다.

나는 확실하지 않는 경우 기본 코드를 만드는 글로벌 기준을 JFrame 지만,그것은 것으로 보인다.않는 경우,이를 방지 할 JFrame 에서는 쓰레기 수집됩니다.을 만드는 경우 많은 윈도우(또는 하위 클래스)와 것을 보고 그들은 수집하지는 않는지 확인하는 폐기됩니다.

나는 이러한 문제를 고칠 때 메모리 누수에 JavaFX 응용 프로그램.끝에서 문제가 될 수 밖에 내가 응용 프로그램을 실행에 디버깅 모드 고 여러 가지 중단점에서 코드입니다.이 발생하는 것 같체'JNI 글로벌 참조'와 유지 메모리에서 명백한 이유없이.때 나는 끈 디버깅 모드는 모든 예상대로 작동해야!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top