Russian Qt Forum
Ноябрь 24, 2024, 23:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Использование памяти  (Прочитано 5153 раз)
crocus
Гость
« : Ноябрь 23, 2007, 05:57 »

Что будет практичнее с точки зрения использования памяти:
Конструкция с созданием экземпляра класса:
Код:
managetbl = new ManageTable(idList, model, items, items_d, this);

Или все-таки сигнал - слот:
Код:
managetbl = new ManageTable( this);
connect( this, SIGNAL( prepareTable(const int, const QSqlTableModel, const QModelIndexList, const QModelIndexList) ),
managetbl, SLOT( readyTable(const int, const QSqlTableModel, const QModelIndexList, const QModelIndexList) ) );

И что будет идеологически правильно с точки зрения Qt.
P.S. Ногами не пинать - фундаментальных знаний нет.
Записан
Dodge
Гость
« Ответ #1 : Ноябрь 23, 2007, 11:29 »

Суть вопроса не понял  Непонимающий

Причем тут память и технология сигнал-слот?
Записан
Kainit
Гость
« Ответ #2 : Ноябрь 23, 2007, 12:39 »

Суть вопроса конечно понятна.
1. Разумеется, сигнал - слот гораздо более памятезатраты, чем просто хранение нескольких ссылок
2. Тут вопрос надо ставить про логичность тех или иных вещей.
3. А с чего возник вопрос про память? Неужели экземпляров ManageTable миллионы? Или миллиарды? Неужели разница в 5-10 килобайт (на миллион экземпляров), которые потратятся при сигнал-слоте существенна?
Записан
Alex03
Гость
« Ответ #3 : Ноябрь 23, 2007, 13:11 »

Что будет практичнее с точки зрения использования памяти:
Конструкция с созданием экземпляра класса:
Код:
managetbl = new ManageTable(idList, model, items, items_d, this);

Или все-таки сигнал - слот:
Код:
managetbl = new ManageTable( this);
connect( this, SIGNAL( prepareTable(const int, const QSqlTableModel, const QModelIndexList, const QModelIndexList) ),
managetbl, SLOT( readyTable(const int, const QSqlTableModel, const QModelIndexList, const QModelIndexList) ) );

И что будет идеологически правильно с точки зрения Qt.
P.S. Ногами не пинать - фундаментальных знаний нет.

А я тоже вопроса не понял. Во втором случае только connect, а самого вызова нет.
ИМХО передавать всё в конструкторе или нет - надо идти от логики.
Если вопрос про расходование памяти то несомненно на каждый connect расходуется память.
Записан
crocus
Гость
« Ответ #4 : Ноябрь 23, 2007, 14:04 »

Ну блядь и форум стал:
Цитировать
Суть вопроса не понял

Цитировать
А я тоже вопроса не понял.

Если не понял, нахуя тогда постится.. ну ладно это лирика

Цитировать
R.5.3.3 Операция new
Операция new предназначена для создания объекта типа имя-типа ($$R.8.1).


Ссылки- ссылками, но разве не выделяется  память под каждый новый экземпляр класса?? или все-таки замещается ??
И тогда что правильнее один экземпляр и к нему 100 коннектов или создание 100 экземпляров.
Записан
Dodge
Гость
« Ответ #5 : Ноябрь 23, 2007, 16:16 »

Ну блядь и форум стал...
Если не понял, нахуя тогда постится.. ну ладно это лирика
1. Эмоции  при себе.
2. Чтобы получить полноценный ответ, нада вопрос правильно ставить

я тока после последнего поста понял, что к чему.

И тогда что правильнее один экземпляр и к нему 100 коннектов или создание 100 экземпляров.
Опять 25... правильнее с точки зрения чего?...
С точки зрения идиалогии Qt правильнее 100 коннектов...
Записан
-QT-
Гость
« Ответ #6 : Ноябрь 24, 2007, 22:23 »

На мое мнение различие реализаций,только визуально.
Проследить это можно посмотрев генерируемый код, moc-компилятором, а там то же класс,
но только - относящийся к интерфейс - реализация, тоесть прослойка между GUI  и структурой классов
реализующих функционалл.
Поправьте если что не так.  Подмигивающий
Записан
-QT-
Гость
« Ответ #7 : Ноябрь 24, 2007, 22:45 »

А по поводу вопроса:
Цитировать
Ссылки- ссылками, но разве не выделяется  память под каждый новый экземпляр класса?? или все-таки замещается ??
И тогда что правильнее один экземпляр и к нему 100 коннектов или создание 100 экземпляров.
Это реализуется в самом создаваемом классе, если класс создан с возможностью
отлова повторной инициализации(создания) и имеет счетчик создания и уничтожения виртуальных копий
обьекта то это реализация с использованием pattern & singleton.
Кое что из этого есть в обсуждениях http://prog.org.ru/forum/index.php/topic,6072.30.html
еще http://rsdn.ru/article/patterns/singleton.xml
еще http://en.wikipedia.org/wiki/Singleton_pattern
Ну вот - это то что я мог сказать сейчас по этому вопросу.
« Последнее редактирование: Ноябрь 24, 2007, 22:49 от -=QT=- » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.119 секунд. Запросов: 21.