Câu hỏi của tôi tương tự như this, tuy nhiên tôi hỏi một điều gì đó hơi khác một chút.Có phải std :: các phần tử vectơ tiếp giáp trong bộ nhớ vật lý không?
Rõ ràng, có thể sử dụng địa chỉ của thành phần std::vector
đầu tiên làm mảng loại C
. Điều đó có nghĩa là trong bộ nhớ ảo, các phần tử std::vector
tiếp giáp nhau. Tuy nhiên, nếu bộ nhớ vật lý bị phân mảnh, có thể là std::vector
thực sự được chia thành nhiều phần trong bộ nhớ vật lý.
Câu hỏi của tôi là: Các yếu tố std::vector
tiếp giáp trong bộ nhớ vật lý (cũng như bộ nhớ ảo)?
@hsouza: Đó là những gì anh ấy đã liên kết. Dường như anh ta đang hỏi liệu bản thân hệ điều hành có thể tiếp giáp "giả" hay không nhưng lại có sự phân chia bộ nhớ "thực"; thẳng thắn tôi không hiểu. – GManNickG
@hsouza Tôi đã thêm liên kết vào câu hỏi này. – ST3
Dưới mui xe malloc sử dụng mmap, do đó, câu hỏi sẽ là nếu mmap có thể cung cấp cho bạn bộ nhớ vật lý liền kề. Bạn đã xem xét điều này: http://stackoverflow.com/questions/4401912/linux-contiguous-physical-memory-from-userspace – LarryPel