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

Вниз

Много ли занимает форма в памяти   Найти похожие ветки 

 
sers   (2002-11-29 09:14) [0]

Много ли занимает форма в памяти при условии, что за все время работы программы не будет созданно не одного ее экземпляра.

Поясню. Разрабатывается иерархия классов, наследников от TForm. Причем экземпляры некоторых из промежуточных классов создаваться не будут, а сами классы разработаны на будущее (мало ли понадобится этот пормежуточный вариант).

Например создатеся класс A наследник от TForm(в нее помещается какой-то функционал +(*) ). От А наследуется B в который добавлется еще какой-то функционал + (**). При этом я знаю, что на данном этапе деятельности я буду создавать только экземпляры класса B. А класс А разработан для того, что в будущем мне понадомится класс С, наследник А, но отличный от В.

Вопрос в следующем, как много памяти будет отбирать этот класс А, экземпляры которого я не создаю ? И вообще, насколько удачен такой подход ?


 
Юрий Зотов ©   (2002-11-29 09:50) [1]

Практически нисколько. А подход - самый правильный.

Память, отъедаемая классом, состоит из:

1. Его полей. Поскольку ни одного экземпляра класса A Вы не создаете, этот расход равен нулю.

2. Его кода. Он используется наследниками B и C, так что перерасхода и здесь нет.

3. Служебной информации (RTTI, VMT и пр). Здесь, видимо, расход есть, но, IMHO, небольшой (думаю, порядка нескольких сотен байт).

3. Если это форма, то некоторое количество отъедают ее ресурсы, сидящие в Exe (если они есть). Но это не память напрямую (т.к. Exe не грузится, а проецируется), реальный расход памяти пойдет при загрузке этих ресурсов - а они грузятся только при создании потомков B и C. Так что перерасхода нет и здесь.


 
sers   (2002-11-29 10:07) [2]

Спасибо.

Тогда еще один вопрос - касающийся просто удобства работы.

Если я следую такому подходу, то у меня получается много форм, которые видны в Project Manager"е. Может есть какой нибудь wizard/tool, который позволяет упорядочивать формы в Project Manager"е.


 
Юрий Зотов ©   (2002-11-29 10:25) [3]

Наследование форм предполагает добавление предков к проекту. Для автоматизации можно использовать стандартный репозиторий (поместить формы-предки в него).

Если формы-предки не имеют DFM, то можно использовать эксперт CCPack50 от Сергея Орлика. Тогда получаем дополнительную возможность - в них можно вводить свои published-свойства.

Еще возможность - дерево форм-предков помещается в пакет, а проект собирается с ним (use rin-time packages).

Ну и комбинация этих вариантов.


 
Карелин Артем ©   (2002-11-29 11:45) [4]

Вот небольшой косякок, с которым встречаются при большом числе форм: Если все формы автосоздаваемые, то они при работе под Win"9X кушают много ресурсов, которые в данной оси ограничены и не зависят от параметров компа.
Выход такой: Автосоздаваемыми делай только основную форму и DataModule. Если форма нужна, то ее создаем. А если не нужна-освобождаем после использования.



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
3-27808
Mic_2000
2002-11-22 11:10
2002.12.09
Как в Table можно вывести уникальные записи?


1-28045
Кокандокало
2002-11-27 19:07
2002.12.09
Как скрольнуть TStringGrid


4-28368
Axis_of_Evil
2002-10-28 09:37
2002.12.09
Памагитя!


14-28240
JC
2002-11-18 11:33
2002.12.09
Есть идея...


14-28220
Вадим
2002-11-16 21:00
2002.12.09
Все хорошо! Уже тошнит от этого!