![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сжатие программ. [D7, WinXP]
Galiaf © (2005-06-05 19:36:00)Доброго вам времени суток. У меня нарисовалась такая проблема. Программа написанная на Delphi занимает много памяти, хотелось бы поменьше, потому что эта прога всегда у меня запущена. Я читал про архиватор ASPack но он почти не уменьшает занимаемую память и ещё бросает ошибку если прога запускается с активным ServerSocket. Ещё читал про програмирование на чистом WinApi но это тоже не то. Если кто знает как можно уменьшить занимаемую память прошу помочь.
sniknik (2005-06-07 20:22:00) [1]> Кто поможет?
подними глаза, вверху страници список форумов видиш? нажми на KOL.
но скорее всего действительно не идет. портирование на разные версии и написание библиотек ведется чисто интузиастами. без денег без сроков без менеджеров с электрошокерами сзади... процесс долгий. ;о)) (шутка, на самом деле на энузиазме иногда быстрее получается, если заработки не отвлекают)
Alexander Panov (2005-06-07 20:16:00) [2]Galiaf (07.06.05 20:09) [22]
http://www.delphimaster.ru/cgi-bin/forum.pl?n=10
Galiaf (2005-06-07 20:09:00) [3]Я тут недавно слил KOL и MCK но у меня возникли проблемы, или я неправильно ставил, или KOL не идёт под Delphi 2005. Кто поможет?
Anatoly Podgoretsky (2005-06-06 09:02:00) [4]Ага в этом отношении очень нравятся программы-оптимизаторы памяти, которые скидывают весело так все в своп, а потом система судорожно дергается выталкивая их в фоне обратно оттуда в оперативную память.
sniknik (2005-06-06 00:40:00) [5]да легко, вызывай время от времени
SetProcessWorkingSetSize(GetCurrentProcess, dword(-1), dword(-1));
но только, скидывая таким образом память ты в другом проиграеш, в производительности системы, т.к. будеш вмешиватся в ее нормальную работу (сделав ненормальной. делать ей болше нечего как память туда сюда перетасовывать, перераспределять... и только потому что какомуто недоучке цифры отображаемые не нравятся)
p.s. совет. функцию проверь, но не пользуйся(!!!) ибо хуже только сделаеш.
Galiaf (2005-06-05 23:47:00) [6]
> Вообще то мало.
Даже если 3 мег. мало для проги которая всегда в процессах седит, то всё равно хотелось бы узнать как можно уменьшать занимаемую память(на будующее).
Galiaf (2005-06-05 23:43:00) [7]
> P.S. "засовывание в трей" никак не может уменьшить объём
> физ. памяти, занимаемой процессом.
Я в трей засовывал не для того что бы меньше памяти жрала, а для того что бы мненьше места на панели задач занимала ;).
Anatoly Podgoretsky (2005-06-05 22:57:00) [8]Можно, но только как психологическое оружие.
Dimaxx (2005-06-05 22:55:00) [9]Занимаемую память можно посмотреть и без примочек типа РЕ. Настройте колонки в TaskManager'е и все увидите по Ctrl+Alt+Del.
Eraser (2005-06-05 22:38:00) [10]Galiaf (05.06.05 22:28) [12]
Итак, открываю PE, смотрю сколько аська жрёт:
Private Bytes: 20332 KB
Working Set: 12420 KB
Так что рано тебе вешаться ;-)
Anatoly Podgoretsky (2005-06-05 22:37:00) [11]Galiaf (05.06.05 22:28) [12]
Вообще то мало.
Zacho (2005-06-05 22:34:00) [12]Galiaf (05.06.05 22:28) [12]
"Опытные" намекают, что то, что ты видишь в Task Manager'е надо ещё и обдумывать.
P.S. "засовывание в трей" никак не может уменьшить объём физ. памяти, занимаемой процессом.
Galiaf (2005-06-05 22:28:00) [13]Просто мой чат всегда работает, я даже с панели задач его убрал и засунул в трей, а в таскменеджере всегда не менее 3 мег. Я думаю для этого чата слишком много 3 мег. Я и так как можно меньше переменных использовал. Но если опытные считают что я не прав, то придёться согласиться.
Zacho (2005-06-05 22:03:00) [14]Anatoly Podgoretsky © (05.06.05 21:39) [7]
:)
2 Galiaf :
Преход на "чистое" WinAPI или KOL не даст тебе большой экономии памяти. Килобайт 300 примерно. В лучшем случае. Сам подумай, для твоей задачи это критично ?
Anatoly Podgoretsky (2005-06-05 21:55:00) [15]Физическая (оперативная) память пользовательским программам не доступа и не используется, туда засылаются только нужные страницы и обратно выгружаются если они не нужны. С кешем тоже не все ясно, не все туда гонится, часть остается в самом ехе, хотя кажется что в кэше. В общем дело ясное, что дело темное.
Eraser (2005-06-05 21:52:00) [16]Galiaf
Послушай, что АП [7] говорит. Память, занимаемая программой - весч растяжимая ) Бывает виртуальная память, которой 2 ГБ, бывает физическая, бывает страничная. Так вот если твоя прога просто запущена и нечего не делает, то скорее всего почти вся память, занимаемая ей, сброшена в кэш (страничную память) или сбросится туда при нехватке физ. памяти. Так что я бы не стал запорачиваться на показаниях таскменеджера.
Для получения более подробной инфы о состоянии памяти процесса, советую использовать Precess Explorer http://sysinternals.com/
Galiaf (2005-06-05 21:41:00) [17]
> begin...end © (05.06.05 21:23) [4]
Я открыл страницу про KOL и MCK и увидел "Чтобы получить первоначальные знания о KOL и MCK прочитайте статью KOL - кодоэкономичная объектная библиотека для Delphi, написанную автором KOL Владимиром Кладовым.", кликнув на ссылку я не смог отобразить страницу. Мне интересно как разобраться с этим KOL.
Anatoly Podgoretsky (2005-06-05 21:39:00) [18]Zacho © (05.06.05 21:35) [5]
А причем тут память, каждой программе выделяется 2 гб бесплатно.
Galiaf (2005-06-05 21:38:00) [19]
> А вообще, забудь об этом. Память нынче дешевая.
Память не дорогая но у меня всёравно нет средств поставить новую аперативку.
Zacho (2005-06-05 21:35:00) [20]2 Galiaf :
Никакой "архиватор" не уменьшит "занимаемую" память. Вот увеличить - вполне может. Может уменьшить только размер файла
А вообще, забудь об этом. Память нынче дешевая.