Advertisement

osg Earth Rex 引擎分析 (三十一) osg Earth Terrain Layer 中的 mem 原则 详解 (osg Earth Mem Cache) 详解

阅读量:

目标:(二十一)中的问题66

继承关系:

osgEarth::Cache

osgEarth::MemCache

cache中存储的数据由 cachebin 负责实现存放功能,并分为两种类型。

osgEarth::CacheBin

MemCacheBin(osgEarth/MemCache.cpp)

在osgEarth::Cache中负责维护着这一层的osgEarth::CacheBin映射表。其中,osgEarth::CacheBin本质上是缓存的核心数据存储结构。具体而言,在其成员对象中通过osg::Referenced _metadata字段实现了对缓存数据的具体管理与存储。

osgEarth::MemCache中的CacheBin实际上等同于MemCacheBin,并且其内部数据以一种称为Memo LRU的数据结构进行存储。这种Memo LRU容器是一种基于osgEarth实现的Lru缓存机制(也称为最近最少使用缓存),广泛应用于许多操作系统中。这种Lru缓存实现同时支持两种数据结构:std::map和std::list;它们虽然类型不同但存储的内容完全一致。值得注意的是,在该实现中使用了这两种不同的数据结构:std::map的优势在于能够快速查找和存储键值对;而std::list则便于快速访问那些较早被访问过的项

复制代码
 osgEarth/MemCa

全部评论 (0)

还没有任何评论哟~