Название: Использование памяти Отправлено: crocus от Ноябрь 23, 2007, 05:57 Что будет практичнее с точки зрения использования памяти:
Конструкция с созданием экземпляра класса: Код: managetbl = new ManageTable(idList, model, items, items_d, this); Или все-таки сигнал - слот: Код: managetbl = new ManageTable( this); И что будет идеологически правильно с точки зрения Qt. P.S. Ногами не пинать - фундаментальных знаний нет. Название: Re: Использование памяти Отправлено: Dodge от Ноябрь 23, 2007, 11:29 Суть вопроса не понял ???
Причем тут память и технология сигнал-слот? Название: Re: Использование памяти Отправлено: Kainit от Ноябрь 23, 2007, 12:39 Суть вопроса конечно понятна.
1. Разумеется, сигнал - слот гораздо более памятезатраты, чем просто хранение нескольких ссылок 2. Тут вопрос надо ставить про логичность тех или иных вещей. 3. А с чего возник вопрос про память? Неужели экземпляров ManageTable миллионы? Или миллиарды? Неужели разница в 5-10 килобайт (на миллион экземпляров), которые потратятся при сигнал-слоте существенна? Название: Re: Использование памяти Отправлено: Alex03 от Ноябрь 23, 2007, 13:11 Что будет практичнее с точки зрения использования памяти: Конструкция с созданием экземпляра класса: Код: managetbl = new ManageTable(idList, model, items, items_d, this); Или все-таки сигнал - слот: Код: managetbl = new ManageTable( this); И что будет идеологически правильно с точки зрения Qt. P.S. Ногами не пинать - фундаментальных знаний нет. А я тоже вопроса не понял. Во втором случае только connect, а самого вызова нет. ИМХО передавать всё в конструкторе или нет - надо идти от логики. Если вопрос про расходование памяти то несомненно на каждый connect расходуется память. Название: Re: Использование памяти Отправлено: crocus от Ноябрь 23, 2007, 14:04 Ну блядь и форум стал:
Цитировать Суть вопроса не понял Цитировать А я тоже вопроса не понял. Если не понял, нахуя тогда постится.. ну ладно это лирика Цитировать R.5.3.3 Операция new Операция new предназначена для создания объекта типа имя-типа ($$R.8.1). Ссылки- ссылками, но разве не выделяется память под каждый новый экземпляр класса?? или все-таки замещается ?? И тогда что правильнее один экземпляр и к нему 100 коннектов или создание 100 экземпляров. Название: Re: Использование памяти Отправлено: Dodge от Ноябрь 23, 2007, 16:16 Ну блядь и форум стал... 1. Эмоции при себе.Если не понял, нахуя тогда постится.. ну ладно это лирика 2. Чтобы получить полноценный ответ, нада вопрос правильно ставить я тока после последнего поста понял, что к чему. И тогда что правильнее один экземпляр и к нему 100 коннектов или создание 100 экземпляров. Опять 25... правильнее с точки зрения чего?...С точки зрения идиалогии Qt правильнее 100 коннектов... Название: Re: Использование памяти Отправлено: -QT- от Ноябрь 24, 2007, 22:23 На мое мнение различие реализаций,только визуально.
Проследить это можно посмотрев генерируемый код, moc-компилятором, а там то же класс, но только - относящийся к интерфейс - реализация, тоесть прослойка между GUI и структурой классов реализующих функционалл. Поправьте если что не так. ;) Название: Re: Использование памяти Отправлено: -QT- от Ноябрь 24, 2007, 22:45 А по поводу вопроса:
Цитировать Ссылки- ссылками, но разве не выделяется память под каждый новый экземпляр класса?? или все-таки замещается ?? Это реализуется в самом создаваемом классе, если класс создан с возможностьюИ тогда что правильнее один экземпляр и к нему 100 коннектов или создание 100 экземпляров. отлова повторной инициализации(создания) и имеет счетчик создания и уничтожения виртуальных копий обьекта то это реализация с использованием pattern & singleton. Кое что из этого есть в обсуждениях http://prog.org.ru/forum/index.php/topic,6072.30.html (http://prog.org.ru/forum/index.php/topic,6072.30.html) еще http://rsdn.ru/article/patterns/singleton.xml (http://rsdn.ru/article/patterns/singleton.xml) еще http://en.wikipedia.org/wiki/Singleton_pattern (http://en.wikipedia.org/wiki/Singleton_pattern) Ну вот - это то что я мог сказать сейчас по этому вопросу. |