The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Первый тестовый выпуск Qt 6"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Первый тестовый выпуск Qt 6" +1 +/
Сообщение от Аноним (83), 16-Июн-20, 19:38 
Что вы тут устроили... в Qt-разработке есть вполне конкретный best practiсe, что в heap-области должны быть аллоцированы только те объекты, чье время жизни сравнительно долгое (окна, кнопки, модели данных в виде всяческих списков и хэш-таблиц). Легкие ресурсы должны аллоцироваться в хипе при старте приложения, тяжелые - лениво инициализироваться по мере необходимости. Если ресурсы "флуктурируют" - например, это модель всяческих документов, изображений и т.д. - все, что юзер может открыть и закрыть, это все должно оборачиваться в соответствующий смартпоинтер, если объект по смыслу не "пристегнуть" к QObject-иерархии. Все остальное должно быть стековым и передаваться const-ссылкой. Работа со стеком всегда дешевле работы с кучей, а за счет copy elision и move-семантики там даже лишней работы по копированию нет, если инициализируем безымянным объектом, как это часто бывает. И куча, кстати, при агрессивном использовании стандартного аллокатора фрагментируется и при высоком аптайме будут постоянные кэш миссы. Data locality при аллокации на стеке соблюдать проще.
Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Первый тестовый выпуск Qt 6, opennews, 16-Июн-20, 12:48  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру