Windows có VirtualAlloc, cho phép bạn đặt trước một vùng địa chỉ tiếp giáp, nhưng không thực sự sử dụng bất kỳ bộ nhớ vật lý nào. Sau đó khi bạn muốn sử dụng nó (hoặc một phần của nó) bạn gọi VirtualAlloc một lần nữa để cam kết khu vực của các trang được bảo lưu trước đó.Bất kỳ cách nào để đặt trước nhưng không cam kết bộ nhớ trong linux?
Điều này thực sự thực sự hữu ích, nhưng tôi muốn cuối cùng chuyển ứng dụng của tôi sang linux - vì vậy tôi không muốn sử dụng nó nếu tôi không thể chuyển nó sau này. Linux có một cách để làm điều này?
EDIT - Trường hợp sử dụng
Tôi đang nghĩ đến việc bố trí 4 GB hoặc một số ví dụ về không gian địa chỉ ảo, nhưng chỉ có hành nó 64K tại một thời điểm. Điều này sẽ cho tôi một cách không sao chép để phát triển một mảng lên đến 4 GB. Điều này quan trọng, bởi vì kích thước mảng và bản sao của mảng đôi điển hình giới thiệu độ trễ dường như không thể chấp nhận được đối với các mảng rất lớn.
Trường hợp sử dụng nào giữ cho bạn? Tại sao điều quan trọng là phải tách biệt sự khác biệt giữa yêu cầu nếu bạn có thể phân bổ không gian (đặt nó) và thực sự sử dụng không gian trong bộ nhớ? – dlamotte
có vẻ như phân bổ thường xuyên sẽ hoạt động tốt. Trong trường hợp bộ nhớ không được sử dụng, nó sẽ được hoán đổi, và, khi u bắt đầu sử dụng nó, nó sẽ được đưa trở lại mmeory – Drakosha
@xyld: Một khấu trừ khối từ không gian địa chỉ ảo, phần còn lại trích từ bộ nhớ ảo (pagefile). –