Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

использование памяти   Найти похожие ветки 

 
Bil Bal Dur   (2005-01-14 14:15) [0]

интересно узнать: почему приложение KOL объёмом 15 K занимает в памяти почти столько же места, что и VCL приложение (386 K) ? Ну не столько же, но сравнимо.

и вот ёще: в своём приложении я загружаю PImageList, некоторое время пользую его, потом Free. Если закоментить весь этот фрагмент, то приложение занимает в памяти примерно на 300 K меньше. Почему? Ведь я же освобождаю память, или нет?


 
dimaxx ©   (2005-01-15 00:06) [1]

Я так понимаю, на создание объекта и хранение его структуры тоже память расходуется. Плюс хранимые изображения. А насчет высвобождения памяти это к БГ - ну не умеет винда работать с памятью!!

Насчет занимаемого места: а компилятор-то один и тот же - вот и размеры совпадают. :-)


 
Boguslaw   (2005-01-15 01:12) [2]

Check this siple test:
Minimize and then restore main form of application - size in memory when minimized is far smaller than when form is shown !

Alternatively : use
SetProcessWorkingSetSize(GetCurrentProcess, dword(-1), dword(-1));

after releasing memory like You did and You will see also some memory deallocated. This isbecouse Delphi memory manager is no so fine integrated into system like for example MS VC++ ;-)
So in Delphi based program memory manager allocate more memory (remember of AnsiString usage!) and also system probably not know when this memory is deallocated, only when some memory is needed then system reclaim memory from Delphi program.

From other side - this memory is not swapped into file so Delphi program is faster (not then VC++!) then would be if this 1-2 MB won"t be allocated on program start (this is used by memory manager to speed up creating classes for example)
I"m not expert but this issue was important and I did a small research.

Regards
Boguslaw Brandys


 
Bil Bal Dur   (2005-01-15 13:52) [3]

Всё же хочется разобраться:

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
 var img:PImageList;
begin
 img:=NewImageList(nil);
 img.LoadSystemIcons(true);
 img.Free;
end;

или так:

 var img:PImageList; // глобальная

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
begin
 img:=NewImageList(nil);
 img.LoadSystemIcons(true);
end;

procedure TForm1.KOLForm1Close(Sender: PObj; var Accept: Boolean);
begin
 img.Free;
end;

а памяти занимают почти одинаково. Т.е. можно вообще все переменные делать глобальными? Да и Free тогда зачем, всё равно
при выходе из программы вся память освободиться.

А SetProcessWorkingSetSize(GetCurrentProcess,dword(-1),dword(-1)) - действительно помогает, спасибо!!!

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
var img:PImageList;
begin
 img:=NewImageList(nil);
 img.LoadSystemIcons(true);
 img.Free;
 SetProcessWorkingSetSize(GetCurrentProcess,dword(-1),dword(-1));
end;

работает!!! А что означают её вордовские параметры? (просто так, чтобы знать)


 
thaddy   (2005-01-15 15:16) [4]

работает!!! But only on NT/XP!!


 
dimaxx ©   (2005-01-15 15:21) [5]

2 Bil Bal Dur: ...Да и Free тогда зачем, всё равно при выходе из программы вся память освободиться...

Ща! Как же. Попробуй позапускай подряд раз 50 прогу на 256 мегах памяти и увидишь, как будет расти файл подкачки, если его поставить размером всего 32-64 мега. Точных настроек не помню - давно эксперимент проводил.

Это только кажется, что память освобождается, а на самом деле она освобождается частично.


 
Boguslaw   (2005-01-16 14:00) [6]

For SetProcessWorkingSetSize check API documentation Win32SDK


 
имя   (2005-07-27 10:55) [7]

Удалено модератором


 
имя   (2005-07-27 10:55) [8]

Удалено модератором
Примечание: см. debil.ru


 
ECM ©   (2005-07-27 14:15) [9]

Удалено модератором


 
Thaddy   (2005-07-28 22:04) [10]

Can I get a red one too? Please?
I looked at that site. Can"t affort it....


 
Dodfr   (2005-07-28 23:13) [11]

hum sorry (as usual, no russian reading) I don"t get it, what"s the funny thing :-)



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.043 c
15-1141191738
Ega23
2006-03-01 08:42
2006.03.26
С Днём рождения! 1 марта


2-1142248982
Id
2006-03-13 14:23
2006.03.26
Пользователь SYSDBA


15-1141724367
Антон К.
2006-03-07 12:39
2006.03.26
VPN


1-1140432435
SergProger
2006-02-20 13:47
2006.03.26
Иконка нестандартного размера


2-1141825580
r@dius
2006-03-08 16:46
2006.03.26
Выбор обработчика событий





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский