![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;
и шо это за тип?