Максимальный размер файла для File.ReadAllLines - PullRequest
1 голос
/ 31 марта 2010

Мне нужно прочитать и обработать текстовый файл. Моя обработка была бы проще, если бы я мог использовать метод File.ReadAllLines, но я не уверен, каков максимальный размер файла, который можно прочитать с помощью этого метода без чтения кусками. Я понимаю, что размер файла зависит от памяти компьютера. Но есть ли еще какие-то рекомендации для среднего компьютера? Я был бы очень признателен за ваш быстрый ответ. Спасибо, Lev

Ответы [ 3 ]

1 голос
/ 31 марта 2010

В 32-разрядной операционной системе вы получите максимум непрерывный фрагмент памяти около 550 мегабайт, что позволяет загружать файл вдвое меньшего размера. Это быстро идет в гору после того, как ваша программа работает некоторое время, и адресное пространство виртуальной памяти фрагментируется. 100 мегабайт - это все, на что вы можете надеяться.

Это не проблема в 64-битной операционной системе.

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

0 голосов
/ 31 марта 2010

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

Лучшим решением было бы рассмотреть файлы с отображением в памяти . Они используют себя в качестве хранилища страниц,

0 голосов
/ 31 марта 2010

Я делал такие вещи с 1-2 ГБ раньше, хотя и в Python. Я не думаю, что .NET будет иметь проблемы, хотя. Но я бы сделал это только для одноразовой обработки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...