![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Размер программы
Swinger © (2002-03-29 21:42:00)Уважаемые мастаки! Я пишу программу на подобии ICQ и у меня аткой вопрос:
При компиляции моя программа занимает 869 кб. При запуске уже в памяти она занимает почему-то 7520 кб! Почему? И ещё такой вопрос: почему после того как я поудалял все красоты (типа меню в стиле ХР и т.д.), удалил все ненужные библиотеки из uses, екзешник уменьшился только на 2 кб! А в памяти на только на 350 кб! Почему? И можно уменьшить размер программы в памяти, не убирая FORMS из uses? (я конечно могу убрать эти формы, но тогда прийдётся всё вручную делать.. :(:(:(:()
Alex_LG (2002-04-01 21:17:00) [1]с мировым мнением спорить не буду - что хотят, то и думают, я не против
просто из СВОЕГО опыта знаю, что с их компонентами лучше не связываться: программка почти ничего не делает, а проц аж дымится от перегрузок :)
это не значит, конечно, что в данном случае проблема именно (и только) в этих компонентах
Anatoly Podgoretsky (2002-04-01 11:18:00) [2]В мире про NetMasters думают иначе
Alex_LG (2002-04-01 04:50:00) [3]добавлю: вообще-то и обычные TClientSocket и TServerSocket неплохи :)
Alex_LG (2002-04-01 04:48:00) [4]
> Swinger © (30.03.02 12:02)
> Видимо эти компоненты FastNet очень
> сильно память жрут. Может кто знает, какой компонент выбрать
> вместо них для посылки сообщений?
я в своё время тоже намучился с компонентами от NetMasters !!!
и память, и проц загружают ктастрофически!!! глючат. неудобны.
не понимаю, почему в Дельфи их вообще включают? да в стандартный набор...
пользуй Indy : http://www.nevrona.com/indy/
ZZ (2002-04-01 00:40:00) [5]Swinger
Ну так в меню вид | выбрать столбцы | [X] Объем виртуатьный памяти
Goblinus
Интересная идея. Объясни пожалуста какой эффект ты ожидаешь после создания этого ключа?
ЗЫ.Swinger скорее всего ключ в explorer, но типа DWORD.
Swinger (2002-03-31 23:08:00) [6]2Goblinus: Я чуть-чуть запутался.. надо Key создать и в нём уже String Value, или вообще в корне Explorer создать String Value - AlwaysUnloadDll???
Swinger (2002-03-31 23:05:00) [7]2 Goblinus: Спасибо! Обязательно попробую! А это системе не повредит? Т.е. не станет она менее стабильной от этого?
2 ZZ: В ХР когда жмёшь любимые три клавиши появляется окошко, где выведены все процессы: объём памяти, который они занимают и процессорное время (ну или загрузка проца.. не обращал внимание)
Goblinus (2002-03-31 00:01:00) [8]Правильно вроде бы говорят - программа вызывает DLL"ки. Избавляешься от этого так (во всяком случае, так в Windows XP):
В реестре находится ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVershion\Explorer];
Создаётся новый подключ AlwaysUnloadDLL;
Для него устанавливается значение 1;
Перезагружается компьютер;
Всё!!!
www.computerra.ru
ZZ (2002-03-30 23:46:00) [9]А если эту программу оставить в покое (и свернуть) на 5 минут, то она начинает весить 300 кб.. а при попытке подконнектиться - сразу же 3000 кб.
Расскажи как определяешь объем занимаемой памяти ? И главное какой памяти? Посмотри где нибудь кол-во виртуальной памяти и сложи его с занимаемой оперативкой. Если ничего с прогой не делаешь, то эта величина будет примерно постоянная (в пределах погрешности :)).
И это при том, что я максимально стараюсь экономить ресурсы!!
Тогда старайся поменьше экономить :)
Keymaster (2002-03-30 23:05:00) [10]один из законов Мерфи для программистов: любая программа после запуска стремиться занять максимально возможное количество памяти
Вадим (2002-03-30 22:56:00) [11]Патамучта она при запуске подгружает нужные ей dll"ки
Swinger (2002-03-30 22:01:00) [12]Так я всё равно не могу понять, почему программа при запуске в памяти занимает в 10 раз больше места чем на харде!?? ПОЧЕМУ? И это при том, что я максимально стараюсь экономить ресурсы!! Закрываю всё, что могу сразу после использования! Картинки вообще все вырезал! Сторонние компоненты все удалил!
Anatoly Podgoretsky (2002-03-30 14:46:00) [13]Ну тебе же сказали, дело не в компоненте
Swinger (2002-03-30 14:37:00) [14]Ну подскажите же кто-нибудь.. :(
Swinger (2002-03-30 12:02:00) [15]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 очень сильно память жрут. Может кто знает, какой компонент выбрать вместо них для посылки сообщений?
Anatoly Podgoretsky (2002-03-30 11:32:00) [16]У тебя явно серьезные ошибки при работе с памятью, захватываешь ресурсы и не освобождаешь
Swinger (2002-03-30 11:03:00) [17]И почему при загрузке программа вначале весит 480 кб, потом через секунду, уже 5000, а потом 7000!! ???? Я вообще все красоты вырезал! У мяен теперь на форме только следующие компоненты: 1 TListBox, 2 TPopupMenu, 1 TImageList, 1 NMMSGServer, 1 NMMSG, 1 AdoConnection, 1 AdoQuery. Все эти компоненты не сторонние, а входят в комплект Д6.
Swinger (2002-03-29 23:34:00) [18]Тут что-то непонятное твориться.. прграмма ничего не делает, не посылает ничего никому, зато иногдаберёт и накидывает себе несколько килобайт... ну не маразм ли это? откуда это берётся?
Anatoly Podgoretsky (2002-03-29 23:17:00) [19]Не ясно, при каждом создании и освобождении теряешь 180к, тогда у тебя ошибка в программе
Swinger (2002-03-29 23:13:00) [20]Так в том-то и дело! Создал много-много копий формы.. потом их все закрыл... а памяти освободилось совсем чуть-чуть!! почему?
И мне всё интересно, почему программа, которая после копиляции занимает примерно 800 кб, в памяти занимает 8000 кб!!???