Вопрос

Я пытаюсь прочитать несколько текстовых файлов (около 300 кб каждый). До сих пор я использовал FileStream, чтобы открыть файл и прочитать его. (Вкладка разграничена). Тем не менее, я слышал о файле смягчания памяти в .NET 4.0. Это сделает мои чтения быстрее?

Есть ли какой-либо образец код, который делает чтение простого файла и сравнить производительность?

Это было полезно?

Решение

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

Если все, что вы делаете, читает файлы, нет точек на карте памяти их.

Памянные файлы сопоставлены Для использования, когда вы делаете интенсивную работу с файлом (чтение, запись, изменение) и хотите избежать диска IO.

Другие советы

Если ты только что Чтение один раз, затем отображаемые памятью файлы не имеют смысла; Это все еще занимает такое же количество времени для загрузки данных с диска. Памятные файлы Excel, когда на файле необходимо выполнить множество случайных чтений и / или пишетов, поскольку нет необходимости прерывать операции чтения или записи с помощью операций поиска.

С участием твой Сумма данных MMFS не дает никакого преимущества. Однако, в целом, если кто-то беспокоит, чтобы нести тесты, он найдет, что копирование больших (огромных) файлов с использованием MMFS быстрее, чем вызова readFile / writeFile последовательно. Это вызвано различными механизмами, используемыми внутри в Windows для управления MMF и для файла IO.

Обработка данных в памяти всегда быстрее, чем делать что-то подобное по дискому IO. Если ваша обработка последовательна и легко вписывается в память, вы можете использовать File.readlines () Получить строку данных по линии и обрабатывать их быстро без жесткой накладной. Вот пример: Как открыть большой текстовый файл в C #

Проверьте этот ответ тоже: Когда использовать файлы смягчания памяти?

Файл отображения памяти не рекомендуется читать текстовые файлы. Чтобы прочитать текстовый файл, который вы делаете правильно с FileStream. MMP лучше всего читать двоичные данные.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top