Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Память, Как сделать, что-бы расходовалось мало 
:(
    Опции темы
Kiber_rat
Дата 24.4.2002, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MACMANIAC
**


Профиль
Группа: Участник
Сообщений: 276
Регистрация: 18.4.2002
Где: Ashdod, Israel

Репутация: нет
Всего: 9



Вопрос в том как сделать апликашку минимально прожорливой в отношении памяти и что на это влияет. К примеру, влияет ли на объём занимаемой памяти полупрозрачность и если да, то как можно с этим бороться. Интересуют так-же директивы компилятора, позволяющие сэкономить память.


--------------------
Best regards!                                                             
@..@_____Ku6ep
=*=______\______KPbIC
Код
print join "",map{chr}(split/(\w{2})/,hex(int(2175.57302796298**2)))
PM WWW ICQ Skype Jabber YIM   Вверх
Diamond Cat
Дата 26.4.2002, 22:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Для начала надо забить на VCL и пользовать API, это сразу скажется на объеме пожираемой память т.к. увы VCL не совершенна, следующим шагом можно назвать переход на asm, это еще круче повлияет на размер проги (как на харде так и в памяти), стараться использовать библиотеки уже загруженные виндами , тем самым не тратя место на описание собственных функций и процедур.
  Вверх
Vit
Дата 27.4.2002, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Если не спускаться на уровень API то все равно можно уменьшить расход памяти

1. Создавать объекты и формы по мере необходимости, уничтожать их после использования (хотя иногда здесь должен быть разумный компромис, пользователя может задалбывать пока открывается форма с сотней контролов, тут можно наплевать на память и создать сразу все объекты чтобы сэкономить на времени - это всегда решается индивидуально, например часто используемые формы создаются сразу, а остальные только когда в них возникнет потребность)

2. Из директив компиллятора - отключить выравнивание по границе слова (опять-таки экономишь на памяти теряешь в производительности), выключить все опции отладки (надо только в финальной стадии разработки, потому что отлаживать с выключенными опциями запаришься)

3. Внимательно подходить к использованию массивов, например тип Word и Integer отличаются только 2мя байтами - пустяк, но если есть массив из них то потери могут быть существенные.

4. Если приложение состоит из многих DLL и EXE файлов то имеет смысл компиллировать с раздельными пакетами - при этом у тебя к каждой программе не будет прикомпиллирована вся VCL, и классы VCL будут находится только в одном экземпляре. Если вся программа состоит только из одного файла то делать это не целесообразно.

5. Обычно в процессе разработки пробуешь то один компонент то другой, то один класс то другой, таким образом в USES секциях накапливается какое-то количество модулей, которые реально не используются, но кое-какой код из них компиллируется. На завершающей стадии проэкта я обычно комментирую всю секцию USES, ставлю новый оператор USES и компиллирую по одному добавляя недостающие модули, таким образом избавляюсь от "баласта". Точно так же следует посмотреть на свой код и избавится от неиспользуемых функций, особенно если есть классы собственного приготовления от неиспользуемых Pablic и Protected методов, которые компиллятор всегда будет включать в код.

6. И последнее - сколь нибудь серьезные программы с самого начала разрабатываются на клиент-серверной технологии, используются технологии работы приложения сразу на многих компьютерах одновременно - multi-tier.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.