Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.11.2018, 05:45
Stanei Stanei вне форума
Новичок
 
Регистрация: 21.05.2015
Сообщения: 51
Версия Delphi: Rad Studio 10
Репутация: 10
По умолчанию XMLDocument загружает много памяти

Здравствуйте. Проблема такая, что при чтении файла размером 18 мб, программа использует почти 70 мб памяти. Это так и должно быть или я что-то не правильно сделал?

загрузка xml:
Код:
var
  Xml: TXMLDocument;
  root:IXMLNode;

...............

Xml := TXMLDocument. Create(nil);
xml.LoadFromFile(extractfilepath(paramstr(0)) +'data.xml');
Xml.Active:=true;
root:= XML.DocumentElement;

до выполнения кода, программа использует около 5 мб.

Последний раз редактировалось Stanei, 23.11.2018 в 09:52.
Ответить с цитированием
  #2  
Старый 23.11.2018, 19:50
Аватар для lmikle
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,252
Версия Delphi: 7, XE3, 10.2
Репутация: 49087
По умолчанию

Это нормально, в принципе.
XMLDocument это обертка над DOM парсером MSXML. соответсвенно, каждый узел и аттрибут внутри представляются объектом, со всеми вытекающими. Особенно, если размер самих данных небольшой, а тегов много. Если это очень критично (по мне, так 70 Мб по нынешним временам это не так уж и много), то используй какой-нить SAX парсер, но там кода придется писать больше.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Stanei (24.11.2018)
  #3  
Старый 24.11.2018, 04:16
Stanei Stanei вне форума
Новичок
 
Регистрация: 21.05.2015
Сообщения: 51
Версия Delphi: Rad Studio 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Это нормально, в принципе.
Большое спасибо. Да 70 мб это не критично, просто думал я где то ошибся в создании/загрузке, но если так и есть то ладно. А про SAX парсеры тоже почитаю, лишним не будет.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:22.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2018

ВКонтакте   Facebook   Twitter