Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-28264
Mad_Ghost
2002-11-18 13:42
2002.12.09
как в Delphi использовать XML?


14-28230
Vit1251
2002-10-16 20:04
2002.12.09
Помогите с созданием окна и функциями


1-27943
Yuraz
2002-11-29 09:54
2002.12.09
Не получается вставить в поток небольшую (длительную) процедуру.


14-28297
Cr@sh
2002-11-19 18:02
2002.12.09
Помогите, кто-нибудь...


14-28234
Николай Быков
2002-11-14 13:32
2002.12.09
Как вым такой план?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский