Подтвердить что ты не робот

Производительность файлов с памятью .NET 4.0

Я хотел бы знать, кто-нибудь пробовал новые возможности .NET Memory Memory Mapped Files? Я знаю, что они такие же старые, как ОС, но встроенная обработка в .NET - новая.

Кто-нибудь смог проверить это и сказать что-то о производительности? Меня интересует время доступа к случайным частям двоичного файла, скорости записи и т.д. Также неплохо было бы сравнить производительность с родным WinAPI MMF.

Спасибо!

4b9b3361

Ответ 1

Файлы с отображением памяти в .NET 4.0 (в новом пространстве имен System.IO.MemoryMappedFiles) просто переносят API Win32 для файлов с отображением памяти.

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

В терминах фактических номеров времени это будет зависеть от 32 бит по сравнению с 64-битным, сколько у вас памяти, насколько велики файлы, шаблоны доступа и в значительной степени тип оборудования физического диска.

Ссылка: Файлы с памятью

Ответ 2

В следующем вопросе я сделал тест производительности MemoryMapped Files по сравнению со стандартным IO:

Недостатки использования файлов с отображением памяти

Я не смог найти большие недостатки для своих целей, производительность примерно в 4 раза быстрее для файлов с отображением памяти, и в этом вопросе вы можете найти интересные подсказки о том, как эти файлы работают и что нужно учитывать.

Ответ 3

В моих тестах производительность .NET 4.5 MMF составляла ~ 40% производительности собственных вызовов WinAPI, т.е. более чем в два раза медленнее.