자바 메모리 프로파일 링에 대해 배우는 동안 "힙"외에도 "펌 공간"이라는 용어를 계속 보게됩니다. 힙이 무엇인지 압니다. 파마 공간이 무엇인가요?
자바 메모리 프로파일 링에 대해 배우는 동안 "힙"외에도 "펌 공간"이라는 용어를 계속 보게됩니다. 힙이 무엇인지 압니다. 파마 공간이 무엇인가요?
답변:
영구 생성을 의미합니다 .
영구 생성은 사용자 클래스 (Java 언어의 일부가 아닌 클래스)를 설명하는 메타 데이터를 보유하기 때문에 특별합니다. 이러한 메타 데이터의 예로는 클래스와 메서드를 설명하는 객체가 있으며 영구 세대에 저장됩니다. 큰 코드 기반을 가진 응용 프로그램은 힙의이 세그먼트를 빠르게 채울 수 있습니다
java.lang.OutOfMemoryError
. PermGen은 -Xmx가 얼마나 높고 컴퓨터에 얼마나 많은 메모리가 있는지에 관계없이 발생 합니다.
Perm space
로드 된 클래스 및 String Pool
일반적으로 String.intern()
메서드에 의해 생성되는 (고도로 최적화 된 문자열 동등성 테스트 용) 과 같은 몇 가지 다른 고급 기능에 대한 정보를 유지하는 데 사용됩니다 . 응용 프로그램 (클래스 수)이 증가함에 따라이 공간의 가비지 수집이 필요에 따라 정리하는 데 그다지 효과적이지 않기 때문에이 공간이 빠르게 채워집니다. 메모리 부족 : perm gen 공간 오류가 발생합니다. 그 후에는 큰 빈 JVM이 있더라도 해당 시스템에서 응용 프로그램이 효과적으로 실행되지 않습니다.
응용 프로그램을 시작하기 전에이 java -XX:MaxPermSize
오류를 제거 해야 합니다.
Perm Gen은 클래스에 대한 메타 데이터 정보를 보유하는 영구 생성을 의미합니다.