none
System.OutOfMemoryException при загрузке 14 Гб файла RRS feed

  • Вопрос

  • Есть XML-файл, 14 Гб, понятное дело, при загрузке методом XDocument.Load происходит ошибка.

    Как быть, и как обойти подобную проблему?

    31 июля 2015 г. 14:26

Ответы

Все ответы

  • Следует использовать потоковый XmlTextReder. Примеры в MSDN.

    This posting is provided "AS IS" with no warranties, and confers no rights.

    31 июля 2015 г. 15:49
    Модератор
  • Т.е. средствами Linq с данными файла поработать не получится? Только если разбить на более мелкие?
    31 июля 2015 г. 16:45
  • Загрузить все это в память не выйдет.

    А LINQ используйте если надо. Например, не сложно представить то что вы читайте из XmlTextReder в виде IEnumerable<XElement>, а дальше как обычно...

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


    This posting is provided "AS IS" with no warranties, and confers no rights.

    31 июля 2015 г. 16:59
    Модератор
  • Почему-то System.Xml.XmlTextReader отсутствует в выпадающем списке... Устарел и заменён?
    1 августа 2015 г. 4:53
  • Рекомендуется использовать базовый класс XmlReader и его статические методы Create(). 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    1 августа 2015 г. 6:59
    Модератор