Добавяне към MemoryMappedFile?

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

Бих могъл да пиша до края, като използвам основния FileStream вместо това, но това не нарушава ли целта на използването на MemoryMapping? (Мислех, че ще кешира и ще запише на диска и добавянето). Друг вариант е да кеширате записите и четенето от кеша, а не от потока от памет за добавени данни.

Просто се чудя каква е обичайната практика за работа с карти с памет, която нараства, така че да не преоткривам колелото отново


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


Отговори (1)


Не можете да промените размера, след като създадете картите на паметта. Можете да посочите размера, когато създавате картата. вижте http://msdn.microsoft.com/en-us/library/dd987389.aspx

Картографирането на паметта е вид усъвършенствана I/O техника. Не трябва да го използвате, освен ако (1) не се изисква от основната библиотека; (2) имате нужда от произволен достъп в критична за производителността среда. И в двата случая не трябва да го използвате, без да разбирате естественото (на ниво машина) значение.

person J-16 SDiZ    schedule 18.11.2010