Perm Gen은 실제로 무엇을 의미합니까?
PermGen의 용도, 용도, 실패 원인, 증가 방법 등을 알고 있습니다.
PermGen이 실제로 무엇을 의미하는지 모르겠습니다.영구...Gen... 뭔가?
PermGen이 실제로 무엇을 의미하는지 아는 사람 있나요?
영속적인 세대상세한 것에 대하여는, 물론 실장 마다 다릅니다.
간단히 말해 클래스 및 내부 문자열과 관련된 Java 개체가 포함됩니다.공유가 켜져 있는 Sun 클라이언트 구현에서는classes.jsa
메모리 매핑을 통해 초기 데이터를 형성하며, 절반 가량은 읽기 전용, 절반 가량은 쓰기 시 복사됩니다.
단순히 오래된 Java 객체는 테넌드 세대에 보관됩니다.
PermGen은 로드된 클래스를 유지하기 위해 JVM에 의해 사용됩니다.다음을 사용하여 늘릴 수 있습니다.
-XX:MaxPermSize=384m
Sun JVM 또는 Open JDK를 사용하는 경우.
따라서 Out Of Memory가 발생하면예외:PermGen은 PermGen을 크게 하거나 클래스 로더에 문제가 있을 수 있습니다.
영속적인 세대가비지 콜렉터의 상세한 것에 대하여는, Java GC 튜닝 가이드를 참조해 주세요.
원래 질문과는 별로 관련이 없지만 누군가 유용하다고 생각할 수도 있습니다.PermGen은 실제로 Java가 클래스를 유지하던 메모리 영역입니다.PermGen의 OOM을 접한 사람은 많습니다.예를 들어 많은 클래스가 있는 경우입니다.
Java 8 이후 PermGen 영역은 MetaSpace 영역으로 대체되었습니다.MetaSpace 영역은 보다 효율적이며 기본적으로 무제한입니다(32비트 또는 64비트 jvm 및 OS 가상 메모리의 가용성에 따라 더 정확하게는 네이티브 메모리 용량에 따라 제한됩니다).그러나 영역에 대한 최대 제한을 지정하는 등의 방법으로 조정할 수 있습니다.이 블로그 포스트에서 더 유용한 정보를 찾을 수 있습니다.
PermGen은 Permanent Generation의 약자입니다.
내 기억이 맞다면 gen은 세대별 가비지 컬렉터와 같이 generation의 약자입니다(젊은 개체는 미드라이프 및 "영구적인" 개체와 다르게 취급합니다).국소 원리에 따르면 최근에 생성된 개체가 먼저 지워집니다.
Permgen은 Permanent Generation의 약자입니다.JVM 메모리 영역 중 하나입니다.MaxPermSize라는 플래그를 사용하여 고정된 크기의 힙의 일부입니다.
왜 "PermGen"이라는 이름일까요?
이 펌겐은 Java 초기에 이름이 붙여졌습니다.Permgen 주 기능은 로드된 클래스의 모든 메타 데이터를 유지합니다.그러나 문제는 일단 클래스가 로드되면 JVM이 종료될 때까지 JVM에 남아 있다는 것입니다.그래서 permgen이라는 이름을 선택했습니다.그러나 나중에 수업의 동적 로딩이 등장했지만 이름은 변경되지 않았습니다.그러나 Java 8에서는 이 문제도 해결되었습니다.이제 permagen은 동적 메모리 크기를 가진 MetaSpace로 이름이 변경되었습니다.
언급URL : https://stackoverflow.com/questions/318942/what-does-permgen-actually-stand-for
'programing' 카테고리의 다른 글
MySQL 8 DB에 연결하려면 RMySQL 또는 RMariaDB를 선택하십시오. (0) | 2023.01.30 |
---|---|
python 쉘에서 화살표 키를 누르면 이스케이프 문자가 표시됩니다. (0) | 2023.01.30 |
HTML5/Canvas/JavaScript를 사용하여 브라우저 내 스크린샷 촬영 (0) | 2023.01.30 |
ExecJ에서 JavaScript 실행 시간을 찾을 수 없습니다. (0) | 2023.01.30 |
PHP의 문자열을 특정 문자 수에 가장 가까운 단어로 잘라내는 방법은 무엇입니까? (0) | 2023.01.30 |