เมื่อไม่นานมานี้ผมได้เขียนโปรแกรม Java ที่ใช้หน่วยความจำจำนวนมากอย่างรวดเร็ว (มันเพิ่ม BufferedImages ไปยังรายการอาร์เรย์ในลูป)
ฉันเปิดการตรวจสอบระบบ Windows ไว้เพื่อสังเกตการใช้ RAM ในขณะที่ทำงาน
เมื่อฉันเริ่มต้นโปรแกรมการใช้ RAM เพิ่มขึ้นอย่างรวดเร็วและเมื่อถึง RAM ขนาด 6GB ของฉันประมาณ 100% คอมพิวเตอร์ของฉันก็ช้ามาก หลังจากผ่านไปประมาณหนึ่งนาทีฉันจัดการเพื่อยกเลิกโปรแกรมและคอมพิวเตอร์ของฉันกู้คืนความเร็วช้า สิ่งที่ดึงดูดความสนใจของฉันคือการใช้งานหน่วยความจำลดลงอย่างช้า ๆ ก่อนจากนั้นก็ลดลงเหลือ 0MB ก่อนที่จะปีนกลับไปใช้งานที่ว่างประมาณ 2-2.5GB
ฉันจับภาพหน้าจอของการใช้ RAM ใน System Monitor:
ฉันสงสัยว่าถ้าใครสามารถอธิบายว่าเกิดอะไรขึ้นเมื่อคอมพิวเตอร์ไม่มีหน่วยความจำเหลือและทำไมมันไม่กลับไปว่างหลังจากโปรแกรมหยุดทำงาน แต่หลังจากนั้นประมาณ 60 วินาที? ด้วยเหตุใดการใช้งานจึงไม่ลดน้อยลงแทนที่จะเป็นเพียงการใช้งาน