Текущий архив: 2003.07.17;
Скачать: CL | DM;
ВнизObject types или class? Найти похожие ветки
← →
panov (2003-07-04 15:38) [0]Как сравнить(и можно ли) накладные расходы при использовании object types и class
TMyObject=object
...
...
end;
и
TMyClass=class
...
...
end;
и не исчезнут ли объектные типы в будущем?
← →
Юрий Федоров (2003-07-04 15:40) [1]Вроде как настоятельно не рекомендуется использовать object
← →
vuk (2003-07-04 15:42) [2]А какие именно накладные расходыинтересуют?
>и не исчезнут ли объектные типы в будущем?
Легко. В Delphi.net их точно не будет.
← →
panov (2003-07-04 16:00) [3]>Юрий Федоров © (04.07.03 15:40)
Вроде как настоятельно не рекомендуется использовать object
Это так, но ведь хочется использовать, если есть преимущества-)
>vuk © (04.07.03 15:42)
А какие именно накладные расходыинтересуют?
Интересует сравнение времени инициализации объекта класса и простого объекта и затраты памяти в каждом из случаев.
← →
Юрий Федоров (2003-07-04 16:02) [4]Думаю, что разница в затратах копеечная.
А какие у них есть преимущества?
Мне просто по долгу службы приходится иногда копаться в старых программах, где они используются, и в эти моменты мне хочется очень громко ругаться матом
← →
panov (2003-07-04 16:07) [5]Про преимущества.
Есть подозрение, что для классового типа вызывается конструктор всегда(это затрата времени), а для объектного типа - нет(например).
← →
vuk (2003-07-04 16:13) [6]Ну, вообще говоря, эта тем поднималась не раз. Разница в объеме выделяемой памяти отсутствует. Разница в скорости инициализации есть - примерно на время вызова FillChar для полей.
← →
reonid (2003-07-04 16:15) [7]object:
отсутствует RTTI - сооответсвтенно никаких is, as
может быть стековым
конструктор не выделяет память и не инициализирует её нулями.
(Но это должен сделать программист - либо выделить
динамически с помощью New, либо разместив object в стеке,
также программист должен инициализовать все поля сам)
может быть упакованным, как record
бинарно совместим с record при отсутствии виртуальных ф-й.
(VMT располагается в конце тела класса, в котором впервые
введены виртуальные ф-и).
← →
Юрий Федоров (2003-07-04 16:20) [8]>>reonid © (04.07.03 16:15)
>>может быть стековым
Именно из-за этой самой его особенности я несколько раз потратил достаточно много времени чтобы понять, почему собственно программа вылетает. Причем вылетает так, что вообще ничего не понять. А оказалось, что из-за стековых объектов этот самый стек и переполнился...
А вообще, это можно рассматривать как преимущество ?
← →
panov (2003-07-04 16:22) [9]Видимо, для объектных типов выигрыш в скорости все-таки есть, и для критичных по скорости приложений при создании множества объектов в короткие промежутки времени их можно использовать...
← →
vuk (2003-07-04 16:25) [10]При создании множества объектов разницы будет очень мало, т.к. основное время тратится не на FillChar, а на работу менеджера памяти.
Страницы: 1 вся ветка
Текущий архив: 2003.07.17;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.008 c