Освобождение памяти в IXMLDocument

zark
Дата: 26.06.2009 10:26:16
Для парсинга XML документов я использую IXMLDocument. Проблема в том, что не получается освободить память. Я пробовал
XMLDocument1 := nil;
и
XMLDocument1._Release;
Не помогает.
Если использовать TXMLDocument вместо IXMLDocument, то тогда можно было бы писать
XMLDocument1.Free;
На форумах я вычитал, что лучше все-таки использовать IXMLDocument. Как в таком случае освободить память?
Petro123
Дата: 26.06.2009 10:28:28
zark
На форумах я вычитал, что лучше все-таки использовать IXMLDocument. Как в таком
случае освободить память?

I... := Nil;
zark
Дата: 26.06.2009 10:32:15
Petro123
zark
На форумах я вычитал, что лучше все-таки использовать IXMLDocument. Как в таком
случае освободить память?

I... := Nil;


Я так пробовал, в памяти все-равно остаются данные и размер используемой памяти программой постоянно растет (при обработке нескольких файлов).
Petro123
Дата: 26.06.2009 10:52:37
zark
Petro123
zark
На форумах я вычитал, что лучше все-таки использовать IXMLDocument. Как в таком
случае освободить память?

I... := Nil;


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

3 причины
- не внимательно и везде освобождаешь
- парсер от MS сам резервирует память и не отдаёт в операционку без надобности (плюнь)
- меряешь не тем инструментом
Petro123
Дата: 26.06.2009 10:54:23
не используй XMLDocument1 и IXMLDocument ВМЕСТЕ.
zark
Дата: 26.06.2009 11:08:47
Petro123
не используй XMLDocument1 и IXMLDocument ВМЕСТЕ.

У меня такой тестовый код:
XMLDocument1: IXMLDocument;
...
XMLDocument1.LoadFromStream(StringStream);
...
XMLDocument1 := nil;
Память проверяю в Nask Manager| Process. Так вот после строки XMLDocument1 := nil; памяти программа занимает не меньше.
Если использовать XMLDocument1: TXMLDocument;, а потом сделать XMLDocument1.Free, то размер приложения в памяти таки уменьшается.
Petro123
Дата: 26.06.2009 11:34:56
zark,
я тебе всё написал.
1. Проверь п.1. - я ж не знаю что у тебя за точками скрыто 8-)
2. Прочитай мой п.2 (ось может кэшировать память)
Удачи!
ЗЫ. Память очищает Ось при закрытии твоей проги.
Если у тябя проблемы с памятью при работе проги круглые сутки, тогда и копай.