C

MCU.Config.maxResourceCacheSize

定义特定运行时分配类型的最大资源缓存大小。

描述

此属性可以用来定义指定运行时分配类型的最大资源缓存大小。它可以设置为表示字节数的最大缓存大小的整数值或每个 AllocationType 的缓存大小列表。

资源缓存用于缓存具有 "OnDemand" 缓存策略的资源。这包括所有压缩资源和具有 "OnDemand" 策略的资源。当此类资源可见时,它们会根据资源的运行时分配类型被复制到资源缓存中。如果缓存已满,则移除缓存中未使用过且使用时间最长的资源,以便为新资源腾出空间。

确保最大缓存大小大于具有 "OnDemand" 缓存策略的最大资源大小。理想的缓存大小应容纳所有同时可见的 "OnDemand" 图像。这样可以避免在每一帧更新时对资源进行解压缩或复制到 RAM 的需要。

例如,一个 400x300 的图像,具有 32 bpp 的颜色深度,在 RAM 中占用高达 480,000 字节。如果有两个这样的图像同时在同一时间可见,并且它们的缓存策略是 "OnDemand",一个合理的缓存大小将是 960,000 字节。

内部,资源缓存大小被收集并传递给 qulrcc 资源编译器,在一个 JSON 文件中。 qulrcc 工具 会生成 C++ 文件,这些文件包含 Qul::Core 库所需的符号,以便知道每个运行时分配类型的缓存大小。

注意:由于使用的内存分配器和一系列分配和解分配导致的堆内存碎片化,物理内存使用量可能略大于指定的最大缓存大小。

用法

此属性在主应用程序 .qmlproject 文件中接受,或在目标平台中为 BoardDefaults.qmlprojectconfig。它接受一个整数或数组数组。

代码示例:

MCU.Config {
    // single value
    // maxResourceCacheSize: CacheSize
    maxResourceCacheSize: 3000
}
MCU.Config {
    // list of cache sizes per (optional) allocation type
    // maxResourceCacheSize: [ [ CacheSize, (AllocationType) ] , ... ]
    maxResourceCacheSize: [
        [1000, 128],
        [2000, 129],
        [3000]
    ]
}

此属性自 QmlProject API 1.3 起有所引入。

另请参阅 资源管理ImageFiles.MCU.resourceCachePolicyImageFiles.MCU.resourceRuntimeAllocationTypequl_set_maximum_resource_cache_size

适用于某些 Qt 许可证。
了解更多。