Để
võ đoán tình huống của bạn thử xem nhé.
Bạn dùng Office 32 nghĩa là VBA được cho phép sử dụng dải bit nhớ được đánh thứ tự từ 0 đến 4294967296(2^32 khoảng 4GB). Tuy nhiên trong dải bit nhớ này có rất nhiều chương trình hay tiến trình đã sử dụng bao gồm cả hệ điều hành và VBA là người đến sau thi sẽ được dùng những phần bộ nhớ chưa được cấp cho chương trình nào trước đó.
Với nhu cầu cơ bản ít khi khi nào chúng ta dùng hết tất cả 4GB này tại 1 thời điểm nhưng khi bật tắt nhiều chương trình hay tiến trình thì xảy ra một tình huống là
xuất hiện rất nhiều dải nhớ trống được giải phóng từ các chương trình, tiến trình hoặc hàm trước đó. Còn những dải nhớ khác đang sử dụng vẫn nằm ở vị trí ổn định (trừ khi được lập trình dịch chuyển). Nghĩa là
trên ram sẽ có rải rác dải nhớ đang dùng và dải nhớ trống xen kẽ tương tự sự phân mảnh trong quản lý data của file vậy. File có thể được tạo bởi các dải nhớ không liên tục được kết nối nhằm tối ưu việc sử dụng bộ nhớ thiết bị lưu trữ.
Vấn đề là quản lý dữ liệu trên RAM khác cách quản lý dữ liệu của file nên nảy sinh việc tổng số dung lượng của dải nhớ hữu dụng rải rác thì rất nhiều nhưng khi một chương trình cần 1 dải nhớ đủ rộng (và liên tục) lại không tìm được. Thế là phát sinh lỗi "isn't ennough memory".
Nôm na giống chuyện 1 anh nhà giàu muốn mua một lô đất mặt tiền rộng 100 trên đường A, dù rất nhiều người bán nhưng họ toàn bán những lô rộng 20, 10, 5 xen kẽ với những lô chưa muốn bán. Thành ra tổng bề ngang mặt tiền đang bán trên đường A hơn 1000m nhưng không tìm ra lô nào rộng 100 m.
Phần bộ nhớ được quản lý trong phạm vị 32 bit bị băm nhỏ từ trước nên không đủ tiêu chuẩn cấp phát trong khi
ngoài phạm vị quản lý 32 bit thì thậm chí chưa chương trình nào dùng tới. Điều này xảy ra với Office 32 chạy trên máy có dung lượng Ram lớn hơn 4GB.
Còn Virtual Memory là công nghệ dùng bộ nhớ thiết bị lưu trữ (HDD, SDD) như là RAM mở rộng khi dung lượng RAM quá ít. Trên Windows, cơ chế này ra đời rất lâu rồi từ thời Windows 2000 và có thể trước đó bằng Page File. Cũng vì cơ chế này mà chúng ta sẽ gần như chả bao giờ nhìn thấy cảnh máy tính xài đến được 99% dung lượng Ram trừ khi tắt Page File và làm đủ trò
.
Virtual Memory thực sự cần thiết và cực kỳ hiệu quả nhất là khi Ram của máy không nhiều nên mặc nhiên là được Windows bật sẵn. Virtual Memory được minh họa khá dễ hiểu bằng cờ líp
What is Virtual Memory? sau.