【问题标题】:How to use RoboSpice cache types如何使用 RoboSpice 缓存类型
【发布时间】:2015-08-26 23:14:01
【问题描述】:

注意:这是 Android 缓存机制新手的一般问题。

为什么 RS 在FlickrSpiceService 示例中使用 LRU 缓存?

LruCacheBitmapObjectPersister

@Override
public CacheManager createCacheManager(Application application) throws CacheCreationException {
    CacheManager manager = new CacheManager();
    InFileBitmapObjectPersister filePersister = new InFileBitmapObjectPersister(getApplication());
    LruCacheBitmapObjectPersister memoryPersister = new LruCacheBitmapObjectPersister(filePersister, 1024 * 1024);
    manager.addPersister(memoryPersister);
    return manager;
}

为什么不删除它,然后像这样使用InFileBitmapObjectPersister

@Override
public CacheManager createCacheManager(Application application) throws CacheCreationException {
    CacheManager manager = new CacheManager();
    InFileBitmapObjectPersister filePersister = new InFileBitmapObjectPersister(getApplication());
    manager.addPersister(filePersister);
    return manager;
}

【问题讨论】:

    标签: android caching robospice lru android-lru-cache


    【解决方案1】:

    内存缓存(在这种情况下为LruCacheBitmapObjectPersister)比文件系统(InFileBitmapObjectPersister)快得多,但同时它更小。

    因此,使用更小(但更快)的内存缓存作为级别 1 和更大(但更慢)的文件系统缓存作为级别 2 可以提高常用性能。您可以查看this broadly related answer for processor cache 了解更多信息。多级缓存是计算机科学中反复出现的主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 2013-10-16
      • 2017-01-08
      相关资源
      最近更新 更多