เกิดอะไรขึ้นเมื่อคอมพิวเตอร์ไม่มี RAM


9

เมื่อไม่นานมานี้ผมได้เขียนโปรแกรม Java ที่ใช้หน่วยความจำจำนวนมากอย่างรวดเร็ว (มันเพิ่ม BufferedImages ไปยังรายการอาร์เรย์ในลูป)

ฉันเปิดการตรวจสอบระบบ Windows ไว้เพื่อสังเกตการใช้ RAM ในขณะที่ทำงาน

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

ฉันจับภาพหน้าจอของการใช้ RAM ใน System Monitor:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันสงสัยว่าถ้าใครสามารถอธิบายว่าเกิดอะไรขึ้นเมื่อคอมพิวเตอร์ไม่มีหน่วยความจำเหลือและทำไมมันไม่กลับไปว่างหลังจากโปรแกรมหยุดทำงาน แต่หลังจากนั้นประมาณ 60 วินาที? ด้วยเหตุใดการใช้งานจึงไม่ลดน้อยลงแทนที่จะเป็นเพียงการใช้งาน



นั่นไม่ใช่ 0MB (หรือแม้แต่ใกล้เคียง) สมมติว่าคุณเอาภาพหน้าจอของกราฟทั้งจุดต่ำสุดแล้วคือ814MB ; ยิ่งถ้าคุณครอบตัดมัน
Synetech

คำตอบ:


15

เมื่อคุณเริ่มใช้งานถึงขีด จำกัด ของหน่วยความจำหลักระบบปฏิบัติการของคุณจะเริ่มสลับหน่วยความจำไปยังดิสก์เพื่อเพิ่มพื้นที่สำหรับสิ่งต่าง ๆ (เรียกว่าการเพจ ) นี่คือเหตุผลที่เครื่องคอมพิวเตอร์ของคุณจะได้รับจริงๆช้าเนื่องจากดิสก์ไดรฟ์เป็นwaaaayช้ากว่าแรมแม้ถ้าคุณอยู่ใน SSD และมันยังเป็นเหตุผลที่โปรแกรมของคุณสามารถไปได้โดยไม่ต้องซ้ายหน่วยความจำหลักใด ๆ

หน่วยความจำที่ไม่ได้ใช้งานมักถูกสลับเป็นอันดับแรกเพื่อให้โปรแกรมที่ใช้งานสามารถมี RAM ได้มากที่สุด นี่คือเหตุผลที่การใช้หน่วยความจำลดลงต่ำกว่าสถานะปกติ ระบบจะเริ่มสลับหน้าหน่วยความจำอีกครั้งและหน่วยความจำที่ไม่ได้ใช้งานจะเติมใน RAM ในที่สุด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.