Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

record / class / object — что будет лучше [D7]


Ilya2008 ©   (2008-07-31 12:08:00) 

Здравствуйте.
У меня в программе есть примерна такая ситуация:
TRecord1 = record
 ...
 case Byte of
   0: Data2: PRecord2;
   1: Data2: PRecord3;
 ...
end;

Records: array of TRecord1;


Указатели в вариантном рекорда мне совсем не нравятся, и вдруг подумал, а что если recordзаменить на class, который при создании в конструкторе автоматически будет выделать память под Record2 или Record3 ... а при уничтожении очищать память. А потом вспомнил что еще есть и object.

Из всего этого у меня два вопроса:
1) На сколько возрастет потребление памяти от применения классов вместо record'ов? (массив состоит например из 500 элементов)
2) Что стоит использовать record / class / object?


guav   (2008-07-31 15:59:00) [1]

> 1) На сколько возрастет потребление памяти от применения
> классов вместо record'ов? (массив состоит например из 500
> элементов)

1. экземпляр класса больше экземпляра рекорда на один указатель, т.е. на 4 байта.
2. (кроме случаев хитрого переопледеления NewInstance) класс всегда в куче менеджера памяти Delphi в выделенной для него памяти. рекорд может располагаться где угодно, могут все 500 в одном блоке памяти.

Выводы из этого согласно своему сценарию использования.


> 2) Что стоит использовать record / class / object?

Между record и class выбрать то, что подходит. Вопрос использования object я бы не ставил.


Медвежонок Пятачок   (2008-07-31 12:27:00) [2]

лучше xml. здесь и думать нечего


Anatoly Podgoretsky   (2008-07-31 12:23:00) [3]

BaseClass
FirstClass(BaseClass)
SecondClass(BaseClass)


Игорь Шевченко   (2008-07-31 12:14:00) [4]


> 2) Что стоит использовать record / class / object?


все переписать


Медвежонок Пятачок   (2008-07-31 12:12:00) [5]

юзай оракол


Медвежонок Пятачок   (2008-07-31 12:12:00) [6]

там и классы есть и рекорды


Ega23   (2008-07-31 12:11:00) [7]


> 1) На сколько возрастет потребление памяти от применения
> классов вместо record'ов? (массив состоит например из 500
> элементов)


Почти не возрастёт.


> 2) Что стоит использовать record / class / object?


Смотря когда, смотря где. Я бы через class сделал.


Правильный$Вася   (2008-07-31 12:09:00) [8]


> PRecord2;

и шо это за тип?


Наверх

Титульная страница Поиск, карта сайта Написать письмо