Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง PermGen Space และ MetaSpace


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 . ดั้งเดิม