|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.12.2011, 17:29 | #1 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Экономия памяти. Что лучше: метод класса или процедура с параметрами... или без разницы?
Добрый день. Возник скорее вот такой философский вопрос
Суть в следующем: есть класс, в нем есть метод(ы). В программе создается множество экземпляров данного класса. Будет ли каждый метод вновь созданного экземпляра занимать память в куче? Может тогда лучше использовать простой метод с параметрами конкретного экземпляра класса? Или это вообще для компилятора не имеет значения? Пример кода или что лучше: Код:
Код:
Если метод процедурный, то это может сократить расходы памяти... Или я не прав?
"ковыряю изнутри" (с)
Последний раз редактировалось 3D Hunter; 26.12.2011 в 17:32. |
26.12.2011, 17:37 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Будет ли каждый метод вновь созданного экземпляра занимать память в куче?
нет. Несколько байт будет забирать только виртуальный метод. Под VMT, не под код. > Если метод процедурный, то это может сократить расходы памяти... Или я не прав? разница между "обычной" процедурой и методом только в том, что в метод передётся Self.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
26.12.2011, 20:45 | #3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Если не ошибаюсь, то размер процедуры/функции определяются только размерами их стёка.
А класс реализует все свои методы и процедуры. В прочем проверить не сложно =) Назначте 3 типа: Код:
http://www.delphibasics.ru/SizeOf.php Вот ради интереса: Код:
Последний раз редактировалось Человек_Борща; 26.12.2011 в 20:54. |
26.12.2011, 22:26 | #4 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Человек_Борща, вы тут имеете в виду указатели, а они всегда 4хбайтовые. SizeOf возвращает размер структуры или атомарного типа, а вот касается ли это стека метода?
veniside, т.е. не имеет смысла усложнять жизнь? все в классы?
"ковыряю изнутри" (с)
|
26.12.2011, 22:40 | #5 | ||||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
есть лишь указатель на процедуру. Цитата:
Цитата:
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||||
26.12.2011, 22:43 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Даже если ты все функции выведешь из класса не оч. много выиграешь в экономии ресурсов.
I'm learning to live...
|
|
26.12.2011, 22:54 | #7 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
понял, спасибо большое за разъяснения! ближе конечно ООП. Значит буду оставлять в классах функционал.
"ковыряю изнутри" (с)
|
26.12.2011, 23:23 | #8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Тс, возмите на заметку это: http://www.gunsmoker.ru/2010/08/9897.html
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что лучше процедура или функция??? | VintProg | Общие вопросы Delphi | 34 | 17.08.2010 15:52 |
Что лучше ВУЗ или самообразование? | Dmi3ye | Помощь студентам | 9 | 07.12.2009 10:04 |
Метод класса или внешняя функция? с++ | ahab | Помощь студентам | 4 | 28.11.2009 19:53 |
Что лучше assembler или с++? | Alabay | Помощь студентам | 13 | 11.01.2009 12:21 |