Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Память, сжираемая приложением. [D7, WinXP]


Страницы:   1 2

Incognito ©   (2006-10-12 22:52:00) 

Здравствуйте

Воникла пара вопросов:
1. Почему приложения, написанные на Дельфях, при стандартных условиях сжирают от 3х метров оперативной памяти?

2. Тут уже конкретная пролема:
Есть процедура создания XML файла при помощи класса TXMLDocument. Выглядит процедура вот так:


procedure CreateHistoryFile(filename : string);
var
 newHistory  : TXMLDocument;
begin
newHistory := TXMLDocument.Create(fmMain);
newHistory.Active := true;
newHistory.Version := '1.0';
newHistory.Encoding := 'utf-8';
newHistory.StandAlone := 'yes';
newHistory.AddChild('history');
newHistory.SaveToFile(filename);
newHistory.Active := false;
newHistory.Free;
end;


При выполнении процедуры приложение нчинает съедать тут же на 1,5 метра больше, однако, казалось бы, объект создан - потребность в ресурсах возрастает, все логично. Но в конце процедуры объект-то вроде уничтожается. Однако потребляемая память остается на том же уровне.

Просвятите пожалуйста по этому вопросу.


Kolan   (2006-10-12 22:59:00) [21]


> 1. Почему приложения, написанные на Дельфях, при стандартных
> условиях сжирают от 3х метров оперативной памяти?

Мое(последнее) до 10-20 тоже при стандартных, А что должно меньше? :)

>
> При выполнении процедуры приложение нчинает съедать тут
> же на 1,5 метра больше, однако, казалось бы, объект создан
> - потребность в ресурсах возрастает, все логично. Но в конце
> процедуры объект-то вроде уничтожается.

1. Не верь деспетчеру.
2. Винда не спешит отписывать память от процесса, а вдруг тебе опять понадобится.

procedure CreateHistoryFile(filename : string);
var
newHistory  : TXMLDocument;
begin
newHistory := TXMLDocument.Create(fmMain);
try
 newHistory.Active := true;
 newHistory.Version := '1.0';
 newHistory.Encoding := 'utf-8';
 newHistory.StandAlone := 'yes';
 newHistory.AddChild('history');
 newHistory.SaveToFile(filename);
 newHistory.Active := false;
finally
 newHistory.Free;
end;
end;


Zeqfreed   (2006-10-12 22:59:00) [22]

> Почему приложения, написанные на Дельфях, при стандартных
> условиях сжирают от 3х метров оперативной памяти?

Большинство из этого — системные библиотеки, которое использует приложение.

> Но в конце процедуры объект-то вроде уничтожается. Однако
> потребляемая память остается на том же уровне.

Менеджеру памяти виднее, когда ему освобождать память ;)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо