Sun JVM에서 클래스 로더에 의해로드 된 클래스는 permgen 공간에 놓여지며 결코 gc'd되지 않습니다. (클래스 로더가 범위를 벗어나지 않는다면) JRockit은 동일한 데이터를 대신 힙에 저장합니다. 그런 다음 데이터가 가비지 수집 대상입니까?Sun permgen 및 JRockit 가비지 수집
감사합니다.
Sun JVM에서 클래스 로더에 의해로드 된 클래스는 permgen 공간에 놓여지며 결코 gc'd되지 않습니다. (클래스 로더가 범위를 벗어나지 않는다면) JRockit은 동일한 데이터를 대신 힙에 저장합니다. 그런 다음 데이터가 가비지 수집 대상입니까?Sun permgen 및 JRockit 가비지 수집
감사합니다.
이 문제는 과 아무 관련이 없습니다. 여기서 클래스가 할당됩니다. 문제는 클래스 로더가 항상 클래스에 대한 참조를 유지한다는 것인데, 이는 클래스 로더가 가비지 수집 될 때까지 클래스가 가비지 수집 될 수 없다는 것을 의미합니다.
이 문제는 PermGen 메모리가 부족하고 값이 비싸기 때문에 HotSpot에서 더 분명합니다.
다른 중요한 점은 PermGen이 종종 Sun에서 소모되어 다른 JVM이 제한이없는 다른 공간에 할당 될 수 있다는 것입니다.
그래, JRockit이 Sun보다 훨씬 잘 처리하는 방식을 좋아합니다. – Striker
일부 사람들은 IBM도 그렇게한다고 주장합니다. 이와 반대로 클래스 텍스트에 많은 것을 추가 할 수 있으며 누출이나 텍스트를 감지하는 것이 가장 쉽지 않은 경우가 있습니다. Sun은 최소한 보유하고있는 데이터를 좀 더 쉽게보고하고 선제 적으로 조정할 수 있습니다. – Xailor