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.resourceCachePolicy、ImageFiles.MCU.resourceRuntimeAllocationType 和 qul_set_maximum_resource_cache_size。
适用于某些 Qt 许可证。
了解更多。