C
qul_set_maximum_resource_cache_size
警告:此CMake命令自2.4版以来已弃用,建议使用MCU.Config.maxResourceCacheSize代替。
摘要
qul_set_maximum_resource_cache_size(<target> CACHE_SIZE <cache_size_in_bytes> [RUNTIME_ALLOCATION_TYPE <runtime_allocation_type>])
描述
此命令设置给定运行时分配类型资源缓存的最大大小。
资源缓存用于缓存策略为"按需"的资源。这包括所有压缩资源,以及将QUL_RESOURCE_CACHE_POLICY属性显式设置为"按需"的资源。当此类资源可见时,它们将被复制到对应于资源运行时分配类型的资源缓存。如果在这一点上资源缓存已满,则将移除在缓存中最长时间未被使用的资源,以腾出空间用于新资源。
请确保最大资源缓存大小大于具有"按需"缓存策略的最大资源大小。理想的最大资源缓存大小应该能够容纳所有可能同时可见的"按需"图像,以防止在每帧更新时必须解压缩或复制图像资源到RAM。
例如,一个400x300的32位颜色深度的图像最多占用480,000字节的RAM。如果可能同时看到两个这样的图像,并且它们的缓存策略是"按需",则合理的最大资源缓存大小应为960,000字节
# Assuming that no custom runtime allocation type has been set for the images qul_set_maximum_resource_cache_size(<target> CACHE_SIZE 960000)
注意:根据使用的内存分配器,以及由一系列分配和释放造成的堆内存碎片化,实际消耗的物理内存可能略高于指定的最大缓存大小。
选项
CACHE_SIZE
选项是必需的,并指定以字节为单位的最大缓存大小。
RUNTIME_ALLOCATION_TYPE
选项是整数类型,其值必须大于或等于0
且小于256
。它对应于为每个单独的资源设置的QUL_RESOURCE_RUNTIME_ALLOCATION_TYPE。该值必须匹配平台所知的内存分配器类型,其中范围[128,255]
专用于用户自定义的定制分配器。
如果没有指定 RUNTIME_ALLOCATION_TYPE
选项,则默认将使用 Image
枚举值。
在内部,资源缓存大小会被收集并作为一个 JSON 文件传递给 qulrcc 工具 资源编译器。qulrcc tool
会生成 C++ 文件,其中包含 Qul::Core 库需要的符号,以便知道每种运行时分配类型的缓存大小。
另请参阅资源管理、QUL_RESOURCE_CACHE_POLICY 和 QUL_RESOURCE_RUNTIME_ALLOCATION_TYPE。
在特定 Qt 许可证下提供。
了解更多。