我正在开发一些跨平台的软件,旨在运行在移动设备上。iOS和Android都提供低内存警告。我计划在发出低内存警告时释放缓存的资源(比如纹理)(假设资源没有被使用)。如果资源返回使用,它会重新缓存它,等等.我在想这叫什么。在.Net中,它类似于“弱引用”,但只有在处理垃圾收集时才真正有意义,而且由于我使用的是c++和shared_ptr,弱引用的含义已经不同于我正在考虑的引用。还有一个不同之处,就是这个类能够在需要时重新构建缓存。这种模式/什么叫什么?
编辑:请随意推荐这个问题的标签。
发布于 2013-06-29 06:25:14
其中一个术语是"Scavenger",尽管我在微软技术的背景下看到了它。参见ASP.NET缓存概述页面中的以下内容:
清除清除是在内存不足时从缓存中删除项的过程。当项目在一段时间内没有被访问时,或者当项被添加到缓存时被标记为低优先级时,这些项就会被删除。
下面是微软WinINet中的缓存页面的定义:
缓存清除器定期从缓存中清除项。如果将项添加到缓存中,并且缓存已满,则将该项添加到缓存中,并对缓存清除器进行调度。
因此,如果您有一个对象,其任务是在资源不足时释放缓存的项,那么它将是一个Scavenger。您可能有几个清除策略-最大的第一,最早的第一,等等,每一个实现不同的清道夫。
发布于 2013-06-29 06:17:02
这叫做..。缓存。-)。说真的,聪明地冲洗它对于一个好的缓存实现来说,比聪明地填充它更重要。
但是您的示例并不是真正的缓存,因为它不是可选的。在呈现纹理之前,必须加载纹理。(在这种情况下,我会使用加载和卸载这两个术语)。
所以我想象一个班级:
那我就叫它TextureLoader (TextureLoaderUnloader的缩写)
https://softwareengineering.stackexchange.com/questions/203111
复制相似问题