Брус действительно найти специфику на это, Heres все, что я знаю о ММФ-х в окнах:Что происходит с файлами с отображением памяти и фактическим использованием памяти?
- Создание памяти файла, отображенного в окнах ничего не добавляет к очевидному объема памяти программа использует
- Создание представления для этот файл потребляет память, эквивалентную размеру просмотра
Это выглядит довольно обратным для меня, так как, во-первых, я знаю, что у самого MMF действительно есть память ... где-то. Если я пишу что-то в mmf и уничтожаю представление, данные все еще там. Между тем, почему взгляд воспринимает какую-либо память вообще? Его просто указатель, нет?
Тогда theres странность с Whats на самом деле в ram и что на диске. В больших mmf с распределенным видом доступа, иногда скорость там, а иногда и нет. Я предполагаю, что некоторые из них иногда хранятся в файле, если они привязаны к нему или файлу подкачки, но на самом деле я понятия не имею.
В любом случае проблема, побудившая меня исследовать это, заключается в том, что у меня есть файл ~ 2gb, который я хочу разделить несколькими программами. Я не могу создать представление 2gb в каждом из них, так как я просто «из памяти», поэтому мне приходится создавать/уничтожать более мелкие. Это создает много накладных расходов из-за дополнительных вычислений смещения и создания самого представления. Может ли кто-нибудь объяснить мне, почему это так?
Предполагая, что ОС сделает несколько копий отображения памяти, по одному для каждой программы. Это может быть не так. Вы должны продолжить исследование, выполнив поиск на сайте MSDN. –
Помните, что при создании карты памяти ОС не может прочитать весь 2GB-файл в памяти. Скорее всего, ОС будет читать в куске файла в память. –
Существует множество способов измерения использования памяти.О каком из них вы говорите? Доступность физической памяти не должна влиять на использование файлов с отображением памяти, если система не сильно перегружена. –