Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.15;
Скачать: CL | DM;

Вниз

Размер программы   Найти похожие ветки 

 
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]

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

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



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

Текущий архив: 2002.04.15;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.01 c
4-46533
Tosov
2002-02-08 23:36
2002.04.15
Создание контролов


1-46431
Babka-Tapka
2002-04-02 23:32
2002.04.15
Как мне в свою прогу вставить цветной курсор из файла?


7-46529
BiJi
2002-01-21 14:29
2002.04.15
Как в Delphi сделать меню как в эксплорер по правой кнопки мыши


1-46386
Юрий Л
2002-04-02 10:15
2002.04.15
Иконки в TreeView


14-46510
Knight
2002-03-07 14:47
2002.04.15
Материал по теории графов...