Каков наиболее подходящий способ использования MemoryMappedViewAccessors .Net 4.0?
-
11-09-2019 - |
Вопрос
При отображении большого файла, отображенного в памяти, в поле с возможностью прокрутки, что более уместно, чтобы представление представляло весь файл или только ту часть файла, которая отображается в данный момент?
В более широком смысле, на каком уровне абстракции выполняется подкачка файлов, отображаемых в памяти .Net?Связан ли размер страницы/объем файла, хранящегося в памяти, с MemoryMappedViewAccessors или он не зависит от этих объектов?
Решение
Он независим;данные не копируются в память до тех пор, пока не будет получен доступ к адресу (или ближайшему адресу).Однако размер представления учитывается в адресном пространстве вашего процесса.Это действительно важно в 32-битных системах, поскольку адресное пространство процесса ограничено 2 или 3 ГБ.Это влияет на возможность выполнения будущих распределений из-за возможности того, что непрерывный блок желаемого размера может быть недоступен в адресном пространстве.
Возможность использования больших представлений часто называют основным преимуществом 64-битных систем.