Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
ВнизМного ли занимает форма в памяти Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c