PermGen은 실제로 무엇을 의미합니까?
나는 PermGen이 무엇인지, 그것이 무엇을 사용하는지, 실패 이유, 증가시키는 방법 등을 알고 있습니다.
내가 모르는 것은 PermGen이 실제로 무엇을 의미하는지입니다. 영구 ... 겐 .. 뭔가요?
PermGen이 실제로 무엇을 의미하는지 아는 사람이 있습니까?
영원한 세대. 세부 사항은 물론 구현에 따라 다릅니다.
간단히 말해서, 클래스 및 인턴 된 문자열과 연관된 Java 오브젝트를 포함합니다. 공유 기능이있는 Sun의 클라이언트 구현에서 classes.jsa
메모리는 약 절반의 읽기 전용 및 절반의 쓰기 전용 복사로 초기 데이터를 형성하도록 매핑됩니다.
단지 오래된 Java 객체는 Tenured Generation에 보관됩니다.
PermGen은로드 된 클래스를 보유하기 위해 JVM에서 사용됩니다. 다음을 사용하여 늘릴 수 있습니다.
-XX:MaxPermSize=384m
Sun JVM 또는 OpenJDK를 사용하는 경우
따라서 OutOfMemoryException : PermGen이 발생하면 PermGen을 더 크게 만들거나 클래스 로더 문제가있을 수 있습니다.
영원한 세대. 가비지 수집기에 대한 자세한 내용 은 java GC 튜닝 안내서 를 참조하십시오.
원래 질문과 실제로는 관련이 없지만 누군가 유용 할 수 있습니다. PermGen은 실제로 Java가 클래스를 유지하는 데 사용되는 메모리 영역입니다. 예를 들어 많은 수업이 있었다면 많은 사람들이 PermGen에서 OOM을 보았습니다.
Java 8부터 PermGen 영역은 MetaSpace 영역으로 대체되었으며, 이는보다 효율적이고 기본적으로 무제한입니다 (또는 32 또는 64 비트 jvm 및 OS 가상 메모리 가용성에 따라 기본 메모리의 양에 의해 더 정확하게 제한됨). 그러나 영역의 최대 한계를 지정하는 등의 방법으로 조정할 수 있습니다. 이 블로그 게시물 에서 더 유용한 정보를 찾을 수 있습니다 .
PermGen은 영구 생성 (Permanent Generation)을 나타냅니다 .
DDJ에 대한 간단한 설명입니다.
내가 올바르게 기억한다면, 세대는 세대 가비지 컬렉터에서와 같이 세대를 의미합니다 (중년 생과 "영구적 인"객체와는 다른 젊은 객체를 처리합니다). 지역성 원칙에 따르면 최근에 생성 된 객체가 먼저 지워집니다.
Permgen은 영구 생성 (Permanent Generation)의 약자입니다. JVM 메모리 영역 중 하나입니다. MaxPermSize라는 플래그를 사용하여 고정 크기의 힙의 일부입니다.
왜 "PermGen"이라는 이름입니까?
이 permgen은 Java 초기에 명명되었습니다. Permgen mains는로드 된 클래스의 모든 메타 데이터를 유지합니다. 그러나 문제는 클래스가로드되면 JVM이 종료 될 때까지 JVM에 남아 있다는 것입니다. 그래서 permgen이라는 이름을 선택하십시오. 그러나 나중에 클래스의 동적 로딩이 시작되었지만 이름은 변경되지 않았습니다. 그러나 Java 8 에서는 이러한 문제도 해결했습니다. 이제 permagen 로 이름이 바뀌 었습니다 MetaSpace 동적 메모리 크기.
참고 URL : https://stackoverflow.com/questions/318942/what-does-permgen-actually-stand-for
'programing tip' 카테고리의 다른 글
LINQ를 사용하여 시퀀스에서 마지막 요소를 제외한 모든 요소를 가져 오는 방법은 무엇입니까? (0) | 2020.07.17 |
---|---|
CSS에서 display : inline-block vs float : left 사용의 장점 (0) | 2020.07.17 |
단일 객체 []를 params 객체에 전달하는 방법 [] (0) | 2020.07.17 |
Javascript 생성자 속성의 중요성은 무엇입니까? (0) | 2020.07.17 |
정규식을 기준으로 분할 문자열 (0) | 2020.07.17 |