Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];




Вниз

Размер программы 


Swinger   (2002-03-29 21:42) [0]

Уважаемые мастаки! Я пишу программу на подобии ICQ и у меня аткой вопрос:
При компиляции моя программа занимает 869 кб. При запуске уже в памяти она занимает почему-то 7520 кб! Почему? И ещё такой вопрос: почему после того как я поудалял все красоты (типа меню в стиле ХР и т.д.), удалил все ненужные библиотеки из uses, екзешник уменьшился только на 2 кб! А в памяти на только на 350 кб! Почему? И можно уменьшить размер программы в памяти, не убирая FORMS из uses? (я конечно могу убрать эти формы, но тогда прийдётся всё вручную делать.. :(:(:(:()



Swinger   (2002-03-29 22:38) [1]

И сюда же ещё один вопрос: Почему когда динамически создаётся форма, то в памяти программа начинает занимать на 200 кб больше, а когда я удаляю форму Action:= CAFREE; то размер в памяти уменьшается только на 20 кб??!!!



Anatoly Podgoretsky   (2002-03-29 22:51) [2]

А ты создай 100 раз и осводи, если есть утечка, то сразу узнаешь, если нет то так системе нужно



Swinger   (2002-03-29 23:13) [3]

Так в том-то и дело! Создал много-много копий формы.. потом их все закрыл... а памяти освободилось совсем чуть-чуть!! почему?
И мне всё интересно, почему программа, которая после копиляции занимает примерно 800 кб, в памяти занимает 8000 кб!!???



Anatoly Podgoretsky   (2002-03-29 23:17) [4]

Не ясно, при каждом создании и освобождении теряешь 180к, тогда у тебя ошибка в программе



Swinger   (2002-03-29 23:34) [5]

Тут что-то непонятное твориться.. прграмма ничего не делает, не посылает ничего никому, зато иногдаберёт и накидывает себе несколько килобайт... ну не маразм ли это? откуда это берётся?



Swinger   (2002-03-30 11:03) [6]

И почему при загрузке программа вначале весит 480 кб, потом через секунду, уже 5000, а потом 7000!! ???? Я вообще все красоты вырезал! У мяен теперь на форме только следующие компоненты: 1 TListBox, 2 TPopupMenu, 1 TImageList, 1 NMMSGServer, 1 NMMSG, 1 AdoConnection, 1 AdoQuery. Все эти компоненты не сторонние, а входят в комплект Д6.



Anatoly Podgoretsky   (2002-03-30 11:32) [7]

У тебя явно серьезные ошибки при работе с памятью, захватываешь ресурсы и не освобождаешь



Swinger   (2002-03-30 12:02) [8]

1) Избавился от AdoConnection
2) Везде где открываю ADOQuery (Open или ExecSQL), то сразу же после использования закрываю (AdoQuery.Close)
2) NMMSGSERVER и NMMSG к сожалению закрыть нельзя (они постоянно должны ждать сообщений).
3) PopUp и Listbox, понятно, закрыть нельзя.. :)
В чём может ещё быть ошибка?
Кстати я заметил следующее:
Программа-сервер занимает в памяти 3 мегабайта. Хотя там только одна форма и на ней всего лишь 1 NMMSGServer, 1 NMMSG, 1 AdoConnection, 1 AdoQuery.
А если эту программу оставить в покое (и свернуть) на 5 минут, то она начинает весить 300 кб.. а при попытке подконнектиться - сразу же 3000 кб. Видимо эти компоненты FastNet очень сильно память жрут. Может кто знает, какой компонент выбрать вместо них для посылки сообщений?



Swinger   (2002-03-30 14:37) [9]

Ну подскажите же кто-нибудь.. :(



Anatoly Podgoretsky   (2002-03-30 14:46) [10]

Ну тебе же сказали, дело не в компоненте



Swinger   (2002-03-30 22:01) [11]

Так я всё равно не могу понять, почему программа при запуске в памяти занимает в 10 раз больше места чем на харде!?? ПОЧЕМУ? И это при том, что я максимально стараюсь экономить ресурсы!! Закрываю всё, что могу сразу после использования! Картинки вообще все вырезал! Сторонние компоненты все удалил!



Вадим   (2002-03-30 22:56) [12]

Патамучта она при запуске подгружает нужные ей dll"ки



Keymaster   (2002-03-30 23:05) [13]

один из законов Мерфи для программистов: любая программа после запуска стремиться занять максимально возможное количество памяти



ZZ   (2002-03-30 23:46) [14]

А если эту программу оставить в покое (и свернуть) на 5 минут, то она начинает весить 300 кб.. а при попытке подконнектиться - сразу же 3000 кб.

Расскажи как определяешь объем занимаемой памяти ? И главное какой памяти? Посмотри где нибудь кол-во виртуальной памяти и сложи его с занимаемой оперативкой. Если ничего с прогой не делаешь, то эта величина будет примерно постоянная (в пределах погрешности :)).

И это при том, что я максимально стараюсь экономить ресурсы!!
Тогда старайся поменьше экономить :)



Goblinus   (2002-03-31 00:01) [15]

Правильно вроде бы говорят - программа вызывает DLL"ки. Избавляешься от этого так (во всяком случае, так в Windows XP):

В реестре находится ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVershion\Explorer];
Создаётся новый подключ AlwaysUnloadDLL;
Для него устанавливается значение 1;
Перезагружается компьютер;
Всё!!!

www.computerra.ru



Swinger   (2002-03-31 23:05) [16]

2 Goblinus: Спасибо! Обязательно попробую! А это системе не повредит? Т.е. не станет она менее стабильной от этого?

2 ZZ: В ХР когда жмёшь любимые три клавиши появляется окошко, где выведены все процессы: объём памяти, который они занимают и процессорное время (ну или загрузка проца.. не обращал внимание)



Swinger   (2002-03-31 23:08) [17]

2Goblinus: Я чуть-чуть запутался.. надо Key создать и в нём уже String Value, или вообще в корне Explorer создать String Value - AlwaysUnloadDll???



ZZ   (2002-04-01 00:40) [18]

Swinger
Ну так в меню вид | выбрать столбцы | [X] Объем виртуатьный памяти

Goblinus
Интересная идея. Объясни пожалуста какой эффект ты ожидаешь после создания этого ключа?

ЗЫ.Swinger скорее всего ключ в explorer, но типа DWORD.



Alex_LG   (2002-04-01 04:48) [19]


> Swinger © (30.03.02 12:02)
> Видимо эти компоненты FastNet очень
> сильно память жрут. Может кто знает, какой компонент выбрать
> вместо них для посылки сообщений?


я в своё время тоже намучился с компонентами от NetMasters !!!
и память, и проц загружают ктастрофически!!! глючат. неудобны.
не понимаю, почему в Дельфи их вообще включают? да в стандартный набор...
пользуй Indy : http://www.nevrona.com/indy/



Alex_LG   (2002-04-01 04:50) [20]

добавлю: вообще-то и обычные TClientSocket и TServerSocket неплохи :)



Anatoly Podgoretsky   (2002-04-01 11:18) [21]

В мире про NetMasters думают иначе



Alex_LG   (2002-04-01 21:17) [22]

с мировым мнением спорить не буду - что хотят, то и думают, я не против
просто из СВОЕГО опыта знаю, что с их компонентами лучше не связываться: программка почти ничего не делает, а проц аж дымится от перегрузок :)

это не значит, конечно, что в данном случае проблема именно (и только) в этих компонентах




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.76 MB
Время: 0.03 c
3-46256           alexpsico             2002-03-25 19:06  2002.04.15  
как сбросить кэш БДЕ на винт


1-46405           Strannik_             2002-04-01 18:13  2002.04.15  
Изменение формата ячеек Excel


1-46420           V_Nik                 2002-04-02 12:12  2002.04.15  
Переключение между формами


1-46429           konusov               2002-04-02 23:33  2002.04.15  
Как в delphi сделать невидимым приложение на панели задач?


3-46264           velk                  2002-03-26 07:32  2002.04.15  
Поскажите пожалуйста как открыть таблицу dbf в dos формате