热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何设置iOS缓存和磁盘存储大小以及如何在应用终止后从磁盘存储恢复缓存?

如何解决《如何设置iOS缓存和磁盘存储大小以及如何在应用终止后从磁盘存储恢复缓存?》经验,如何解决这个问题?

我已经问过什么时候从urlcache的内存和磁盘中删除了什么?

现在我还有一些后续问题:

    内存缓存受iPhone的内存(通常为2Gb)限制.但磁盘持久性受到64Gb或128Gb的限制.那是对的吗?

    持久性比内存存储更有意义吗?如果您不想拥有较高的内存占用(并且不希望应用程序从其挂起状态终止),即允许从磁盘存储中恢复缓存然后返回持久结果,它是否有用?

控制点击后,URLCache.shared我看到以下评论:

内存容量:4兆字节(4*1024*1024字节)

磁盘容量:20兆字节(20*1024*1024字节)

磁盘路径:(user home directory)/Library/Caches/(application bundle id)

没有特殊缓存要求或约束的用户应该可以找到可接受的默认共享缓存实例.如果此默认共享缓存实例不可接受,+setSharedURLCache: 则可以调用NSURLCache此实例以设置从此方法返回的其他实例.调用者应该注意确保在没有其他调用者具有对先前设置的共享URL缓存的引用时调用setter.这是为了防止存储缓存数据变得意外无法恢复.

所以我认为我的理由是正确的.


读取/写入/恢复缓存的整个过程如何工作?

    我的意思是当我第一次发出网络请求时,整个响应/错误/数据是否被写入 /存储在缓存中然后进入持久性?

    下次如果我想读取它然后它首先从缓存开始然后如果响应不是陈旧/过期然后它将返回它.磁盘存储没有任何改变.

    如果它已过期,那么它将发出新请求,并且只有在获得成功响应后,它才会清除内存和磁盘的响应,并将新响应写入缓存和磁盘.如果新请求失败,那么它将不会被清除,而是只保留过期/过期数据,所以如果我们想要(加载过期响应)它将从那里加载?

    当应用程序终止时,内存将被刷新.除非设备内存不足或已达到大小限制,否则磁盘存储将保持不变.在下次启动应用程序时,内存会将磁盘存储中的任何内容重新加载到缓存中.

    此缓存恢复将开始加载已存储的最新数据,然后移动到较旧的数据,直到它达到其大小限制或仅到达存储在磁盘上的项目的末尾.对?

    如果在正常的一天,用户在典型的1小时会话中所做的联网数量约为30mb,那么我应该将我的缓存大小设置为20mb和30mb的磁盘存储吗?如果我有图像怎么办?我听说图像的存储方式不同,因为1mb图像可能需要10mb的大小.那我应该怎么做呢?

我问这一切是因为我想改善应用程序中的缓存体验并提高我的整体理解,所以我不会过多地增加应用程序的内存使用量*因此它不会从内存中刷新内存暂停状态由于我的应用程序高内存使用或其他需要的应用程序.


*:我们的一些网络请求将下载缩略图,因此当我增加缓存大小限制时,我需要考虑周到.


推荐阅读
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • Android View转Bitmap引发的思考
    前言笔者在最近在做截屏分享的功能,采用getDrawingCache()发现了两个问题,特此记录一下。View生成Bitmap的两种方式。 ... [详细]
  • SpringBoot+SpringCache实现两级缓存(Redis+Caffeine)_java
    这篇文章主要介绍了SpringBoot+SpringCache实现两级缓存(Redis+Caffeine),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价 ... [详细]
  • yii框架目录结构详细分析说明
    php教程|php手册yii,目录结构php教程-php手册yii框架目录结构详细分析说明猫狗大战源码,华为云电脑ubuntu,梦见放走很多爬虫,parttmpphp,seo页面描 ... [详细]
  • Chrome浏览器非常强大,使用Chrome浏览器对页面性能进行检测,根据测试的结果进行优化。当然这个结果只是参考,在实际的项目中肯定有特殊情况存在,并不能为了满足某项测试结果而忽略特定情况的存在。1 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
  • [转载]从零开始学习OpenGL ES之四 – 光效
    继续我们的iPhoneOpenGLES之旅,我们将讨论光效。目前,我们没有加入任何光效。幸运的是,OpenGL在没有设置光效的情况下仍然可 ... [详细]
  • 本文整理了Java中ucar.nc2.dataset.VariableDS.read()方法的一些代码示例,展示了VariableDS.read() ... [详细]
  • 让ASP.NET OutputCache使用http.sys kernelmode cache
    在默认情况下,http.syskernemodecache只缓存静态文件。那我们如何让ASP.NETOutputCache直接使用http.syskernemodec ... [详细]
  • 本篇文章为大家展示了如何用Spring源码解析循环依赖,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收 ... [详细]
  • smarty(模板引擎,模板技术)使用smarty主要是为了实现逻辑和外在内容的分离;特点:1、速度快 ... [详细]
  • 看ECSHOP,缓存机制看到这样一个目录函数:01.foreach($para[template]AS$val)02.{03.$statstat($va ... [详细]
  • Yii数据库缓存实例分析【PHP】
    后端开发|php教程Yii,数据库,缓存后端开发-php教程源码zhijia,vscodec必备工具,ubuntu设置fat,tomcat链接被关闭,海淀爬虫,php5.6安装扩展 ... [详细]
author-avatar
你就夜沉思
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有