0

注意:这是 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;
}
4

1 回答 1

0

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

因此,使用更小(但更快)的内存缓存作为级别 1 和更大(但更慢)的文件系统缓存作为级别 2 为常见用途提供了改进的性能。您可以查看有关处理器缓存的广泛相关答案以获取更多信息。多级缓存是计算机科学中反复出现的主题。

于 2015-06-11T10:57:55.197 回答