Главная страница
    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
1-27987
STANT
2002-11-29 17:52
2002.12.09
Как временно скрыть MainMenu?


14-28237
stone
2002-11-18 09:36
2002.12.09
On-Line переводчик


6-28193
Azbul
2002-10-10 19:08
2002.12.09
проблема с WebBrowser


7-28313
Th
2002-10-08 21:09
2002.12.09
Как использовать средства DDK в Delphi


14-28221
Nikolas Shmus
2002-11-16 13:42
2002.12.09
Noterdam de Paris





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский