Russian Qt Forum

Qt => Вопросы новичков => Тема начата: qt_newer от Сентябрь 18, 2014, 14:35



Название: Есть ли смысл в использовании QCache
Отправлено: qt_newer от Сентябрь 18, 2014, 14:35
Есть xml файл с несколькими типами данных, самый большой- страны (полное название, короткое, уникальный код), остальные типы включают 10-20 записей похожей структуры. Эти данные используются в разных местах приложения, целевое устройство имеет ограниченный объем памяти. В приложении есть возможность обновления этого xml файла (инициируется пользователем).
Есть ли в данном случае преимущества использования кеша перед просто считыванием данных из файла при запуске приложения и сохранении в обычной памяти?
Заранее спасибо!


Название: Re: Есть ли смысл в использовании QCache
Отправлено: Swa от Сентябрь 18, 2014, 14:55
В документации же всё описано:
Цитировать
The advantage of using QCache over some other key-based data structure (such as QMap or QHash) is that QCache automatically takes ownership of the objects that are inserted into the cache and deletes them to make room for new objects, if necessary. When inserting an object into the cache, you can specify a cost, which should bear some approximate relationship to the amount of memory taken by the object. When the sum of all objects' costs (totalCost()) exceeds the cache's limit (maxCost()), QCache starts deleting objects in the cache to keep under the limit, starting with less recently accessed objects.
Т.е. Кеш позволяет контролировать примерный расход памяти, что не делают остальные контейнеры.


Название: Re: Есть ли смысл в использовании QCache
Отправлено: popper от Сентябрь 18, 2014, 18:42
QCache нацелен на динамическую подгрузку данных по мере запросов/ команд пользователя или программы и, соответственно, на освобождение старых - давно неиспользованных данных. Если ресурсы устройства позволяют загрузить сразу весь xml в память, то кэш не нужен. Другое дело - динамическая подгрузка конкретных записей из xml по требованию.