首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用可以删除缓存数据以满足内存约束的对象是什么?

调用可以删除缓存数据以满足内存约束的对象是什么?
EN

Software Engineering用户
提问于 2013-06-28 22:16:35
回答 2查看 114关注 0票数 1

我正在开发一些跨平台的软件,旨在运行在移动设备上。iOS和Android都提供低内存警告。我计划在发出低内存警告时释放缓存的资源(比如纹理)(假设资源没有被使用)。如果资源返回使用,它会重新缓存它,等等.我在想这叫什么。在.Net中,它类似于“弱引用”,但只有在处理垃圾收集时才真正有意义,而且由于我使用的是c++和shared_ptr,弱引用的含义已经不同于我正在考虑的引用。还有一个不同之处,就是这个类能够在需要时重新构建缓存。这种模式/什么叫什么?

编辑:请随意推荐这个问题的标签。

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2013-06-29 06:25:14

其中一个术语是"Scavenger",尽管我在微软技术的背景下看到了它。参见ASP.NET缓存概述页面中的以下内容:

清除清除是在内存不足时从缓存中删除项的过程。当项目在一段时间内没有被访问时,或者当项被添加到缓存时被标记为低优先级时,这些项就会被删除。

下面是微软WinINet中的缓存页面的定义:

缓存清除器定期从缓存中清除项。如果将项添加到缓存中,并且缓存已满,则将该项添加到缓存中,并对缓存清除器进行调度。

因此,如果您有一个对象,其任务是在资源不足时释放缓存的项,那么它将是一个Scavenger。您可能有几个清除策略-最大的第一,最早的第一,等等,每一个实现不同的清道夫。

票数 0
EN

Software Engineering用户

发布于 2013-06-29 06:17:02

这叫做..。缓存。-)。说真的,聪明地冲洗它对于一个好的缓存实现来说,比聪明地填充它更重要。

但是您的示例并不是真正的缓存,因为它不是可选的。在呈现纹理之前,必须加载纹理。(在这种情况下,我会使用加载和卸载这两个术语)。

所以我想象一个班级:

  • 这是为了确保纹理图像在每次使用时都被加载。
  • 从正确的存储中加载图像(例如。(某一资源文件夹)
  • 跟踪纹理使用模式。
  • 根据这些使用模式,可以要求卸载纹理。

那我就叫它TextureLoader (TextureLoaderUnloader的缩写)

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/203111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档