Добавление к MemoryMappedFile?

Может быть, я что-то неправильно понял о том, как работают файлы с отображением памяти, но как мне добавить в конец файла, когда я использую MemoryMappedFile? CreateViewAccessor позволяет мне только создать представление текущей емкости файла

Я мог бы писать до конца, используя вместо этого базовый FileStream, но не противоречит ли это цели использования MemoryMapping? (Я думал, что он также будет кэшировать и записывать на диск добавление). Другой вариант — кэшировать запись и чтение из кеша, а не из потока памяти для добавленных данных.

Просто интересно, какова обычная практика работы с файлами с отображением памяти, которые растут, поэтому я не буду снова изобретать велосипед.


person Homde    schedule 18.11.2010    source источник


Ответы (1)


Вы не можете изменить размер после создания карт памяти. Вы можете указать размер при создании карты. см. http://msdn.microsoft.com/en-us/library/dd987389.aspx

Отображение памяти - это своего рода продвинутая техника ввода-вывода. Вы не должны использовать его, если (1) это не требуется для собственной библиотеки; (2) вам нужен произвольный доступ в критически важной для производительности среде. В любом случае вы не должны использовать его, не понимая нативного (машинного уровня) значения.

person J-16 SDiZ    schedule 18.11.2010