Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ускорение, Вопрос знатокам ООП 
:(
    Опции темы
Keeper_Andrew
Дата 5.11.2002, 05:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 21.10.2002

Репутация: нет
Всего: нет



Иммется задача: Разработать объект чтобы он создавался и работал  максимально быстро. Рабочий экземпляр уже есть.

С этим объектом связано большое число перегруженных операторов, и объявлены эти операторы внутри класса (как члены класса).

Вопрос: ускорит ли работу с объектом перенесение перегрузок операторов на статистичексие friend операторы.

Фишка в том, что это позволит сократить число членов класса, но добавит по одному параметру в обработчики операторов.
PM MAIL   Вверх
suborg
Дата 5.11.2002, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.4.2002
Где: Москва

Репутация: нет
Всего: нет



мне кажется не ускорит... от количества членов не много-то зависит, а от объема параметров зависит используемый объем стэка, то есть больше туда пушить и попать придётся ну или иначе вставлять, не важно...
PM MAIL WWW ICQ   Вверх
Fantasist
Дата 5.11.2002, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: 4
Всего: 41



Конечно ничего не измениться. У тебя же операторы не виртуальные, а значит вызов функции-члена фактически не отличается от вызова внешней функции.
Память под обект выделяется ровно столько, чтобы хватило туда вместить данные объекта.А если ты еще не правильно сделаешь внешние операторы - будешь передавать не ссылку на объект а его самого - то это будет медленее чем операторы-члены в них передается указатель. А если сделаешь правильно, то с точки зрения скомпилированного кода отличатся эти две реализации фактически не будут.

Чтобы улучшить - смотри где можно поставить inline, сonst. А так же почитай про пулы памяти.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
Keeper_Andrew
Дата 5.11.2002, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 21.10.2002

Репутация: нет
Всего: нет



Значит если я (для примера) добалю еще операторов внутрь класса то скорость его работы не уменьшится?
PM MAIL   Вверх
Fantasist
Дата 5.11.2002, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: 4
Всего: 41



"Его" - это кого? Класс сам по себе не работает - работает код. Обобщено говоря - работают функции.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
Keeper_Andrew
Дата 6.11.2002, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 21.10.2002

Репутация: нет
Всего: нет



Возможно некорректно выразился.

Я хотел сказать скорость работы с объектом (если он хранится в dll). Создание, разрушение, вызов методов и т.д.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.