PermGen เป็นพื้นที่หน่วยความจำสำหรับจัดเก็บข้อมูลคลาส เช่น ตัวแปรสแตติก ไบต์โค้ด และอื่นๆ โดยค่าเริ่มต้น 64 Mb จะถูกจัดสรรสำหรับ PermGen ปรับแต่งได้โดยใช้ -XXMaxPermSize
ใน Java 8 พื้นที่เมธอด PermGen ถูกแทนที่ด้วย MetaSpace พวกเขาได้ย้าย permGem ไปยังหน่วยความจำแยกต่างหากในระบบปฏิบัติการดั้งเดิมและที่เรียกว่า MetaSpace โดยค่าเริ่มต้นโดยอัตโนมัติสามารถเพิ่มขนาดได้ ใน MetaSpace คลาสสามารถโหลดและยกเลิกการโหลดได้ตลอดอายุการใช้งานของ JVM
ซีเนียร์ เลขที่ | คีย์ | PermGen | MetaSpace |
---|---|---|---|
1 | พื้นฐาน | PermGen คือพื้นที่หน่วยความจำสำหรับจัดเก็บข้อมูลคลาส เช่น ตัวแปรสแตติก โค้ดไบต์ และอื่นๆ | ใน Java 8 พื้นที่เมธอด PermGen ถูกแทนที่ด้วย MetaSpace |
2 | การจัดสรรหน่วยความจำเริ่มต้น | โดยค่าเริ่มต้น 64 Mb จะถูกจัดสรรสำหรับ PermGen | โดยค่าเริ่มต้นอัตโนมัติสามารถเพิ่มขนาดได้ |
3 | ค่าสถานะหน่วยความจำที่ปรับแต่งแล้ว | ปรับแต่งได้โดยใช้ -XXMaxPermSize | เราสามารถจำกัดขอบเขตบนของหน่วยความจำโดย -XX:MaxMetaspaceSize |
4 | พื้นที่หน่วยความจำ | มันเป็นพื้นที่ฮีปพิเศษ | ตั้งแต่ Java 8 ตอนนี้เป็นพื้นที่หน่วยความจำที่แยกจากกันใน OS . ดั้งเดิม |