ฉันกำลังเขียนฝั่งไคลเอ็นต์สวิงแอพลิเคชัน (นักออกแบบตัวอักษรกราฟิก) ในJava 5 เมื่อเร็ว ๆ นี้ฉันพบjava.lang.OutOfMemoryError: Java heap space
ข้อผิดพลาดเนื่องจากฉันไม่ได้ระมัดระวังในการใช้หน่วยความจำ ผู้ใช้สามารถเปิดได้ไม่ จำกัด จำนวนไฟล์และโปรแกรมเก็บวัตถุที่เปิดอยู่ในหน่วยความจำ หลังจากที่มีการวิจัยอย่างรวดเร็วผมพบว่าการยศาสตร์ใน 5.0 โปรแกรม Java Virtual Machineและคนอื่น ๆ บอกว่าบน Windows เครื่อง JVM 64MB
ค่าเริ่มต้นขนาดสูงสุดกองเป็น
ด้วยสถานการณ์เช่นนี้ฉันจะจัดการกับข้อ จำกัด นี้ได้อย่างไร
ฉันสามารถเพิ่มขนาดฮีพสูงสุดโดยใช้ตัวเลือกบรรทัดคำสั่งเป็นจาวา แต่นั่นต้องใช้การหา RAM ที่มีอยู่และเขียนโปรแกรมเรียกใช้หรือสคริปต์บางตัว นอกจากนี้ยังเพิ่มขึ้นบางส่วนจำกัดสูงสุดไม่ได้ในท้ายที่สุดได้รับการกำจัดของปัญหา
ฉันสามารถเขียนรหัสของฉันใหม่เพื่อคงออบเจ็กต์ไปยังระบบไฟล์บ่อยครั้ง (การใช้ฐานข้อมูลเป็นสิ่งเดียวกัน) เพื่อเพิ่มหน่วยความจำ มันสามารถใช้งานได้ แต่ก็อาจทำงานได้มากเช่นกัน
หากคุณสามารถชี้ให้ฉันเห็นรายละเอียดของแนวคิดข้างต้นหรือทางเลือกบางอย่างเช่นหน่วยความจำเสมือนอัตโนมัติขยายขนาดฮีปแบบไดนามิกนั่นจะยอดเยี่ยม