Điều gì xảy ra khi một máy tính hết RAM?


9

Cách đây ít lâu, vì tò mò, tôi đã viết một chương trình Java chiếm rất nhiều bộ nhớ rất nhanh. (Nó thêm BufferedImages vào một danh sách mảng trong một vòng lặp.)

Tôi giữ cho Windows System Monitor mở để quan sát mức sử dụng RAM khi nó chạy.

Khi tôi bắt đầu chương trình, việc sử dụng RAM tăng lên rất nhanh và khi nó đạt khoảng 100% RAM 6GB, máy tính của tôi trở nên cực kỳ chậm. Sau khoảng một phút, tôi đã kết thúc chương trình và máy tính của tôi dần phục hồi tốc độ. Điều khiến tôi chú ý là việc sử dụng bộ nhớ đầu tiên giảm chậm, sau đó đột nhiên nó giảm xuống gần 0MB trước khi tăng trở lại mức sử dụng nhàn rỗi ở mức khoảng 2-2,5GB.

Tôi đã chụp ảnh màn hình sử dụng RAM trong System Monitor:

nhập mô tả hình ảnh ở đây

Tôi đã tự hỏi liệu có ai có thể giải thích điều gì xảy ra khi máy tính hết bộ nhớ không và tại sao nó không hoạt động trở lại ngay sau khi chương trình kết thúc mà chỉ khoảng 60 giây sau? Ngoài ra, tại sao việc sử dụng hoàn toàn không có gì thay vì chỉ sử dụng nhàn rỗi?



Đó không phải là 0MB (hoặc thậm chí gần với nó). Giả sử bạn đã chụp ảnh màn hình của toàn bộ biểu đồ, thì điểm thấp nhất là 814MB ; thậm chí nhiều hơn nếu bạn cắt nó.
Synetech

Câu trả lời:


15

Khi bạn bắt đầu đạt đến giới hạn của bộ nhớ chính, hệ điều hành của bạn sẽ bắt đầu trao đổi bộ nhớ vào đĩa để có chỗ cho nhiều thứ hơn (cái này được gọi là phân trang ). Đây là lý do tại sao máy tính của bạn là nhận được rất chậm vì ổ đĩa là waaaay chậm hơn so với RAM, ngay cả khi bạn đang ở trên một SSD, và nó cũng là lý do chương trình của bạn có thể tiếp tục mà không cần bất kỳ bộ nhớ chính trái.

Bộ nhớ nhàn rỗi thường bị tráo đổi trước tiên để các chương trình hoạt động có thể có càng nhiều càng tốt trong RAM. Đây là lý do sử dụng bộ nhớ giảm xuống dưới trạng thái nhàn rỗi thông thường. Hệ thống sẽ bắt đầu hoán đổi trong các trang bộ nhớ một lần nữa và bộ nhớ nhàn rỗi sẽ lấp đầy RAM.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.