b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

解决方案:iOS内存缓存和磁盘缓存之间的区别

电脑杂谈  发布时间:2020-12-29 21:03:21  来源:网络整理

最近,我正在研究与缓存有关的框架,顺便说一句,我总结了内存缓存和磁盘缓存之间的区别。

缓存分为内存缓存和磁盘缓存。内存是指当前程序的运行空间。缓存速度快,容量小。它用于临时存储文件以供CPU直接读取。例如,当您打开一个程序时,它将存储在内存中,并且在关闭程序后内存将返回到原始的可用空间;磁盘是程序的存储空间,缓存容量大,速度慢,可以持久保存。与内存的区别在于,磁盘将其永久存储,只要它们存储在内部,无论它是否运行,都会占用空间!磁盘缓存位于“库/缓存”中。

关于iOS内存,您必须谈论内存分区。 iOS内存分为5个区域:堆栈区域,堆区域,全局区域,常量区域和代码区域

硬盘 缓存 内存_磁盘的虚拟缓存设置_内存缓存和磁盘缓存

Stack area stack:该区域将由系统本身管理,我们不需要干预,主要是保存一些局部变量,以及函数跳转时的场景保护。因此,大量的局部变量,深度递归和函数循环调用可能会导致内存用尽并耗尽。

堆区域:与堆栈区域相反,该区域通常由我们自己管理,例如alloc,free操作,并存储一些我们自己创建的对象。

全局区域(静态区域):全局变量和静态变量都存储在此处。初始化和未初始化的变量将分别存储在相邻区域中,程序结束后系统将释放它们。

磁盘的虚拟缓存设置_内存缓存和磁盘缓存_硬盘 缓存 内存

常量区域:存储常量字符串和const常量

代码区:商店代码

内存缓存和磁盘缓存

硬盘 缓存 内存_磁盘的虚拟缓存设置_内存缓存和磁盘缓存

说到硬盘缓存,我不得不提到iOS的沙箱机制,

iOS应用程序只能读取程序创建的文件系统中的文件,而不能访问其他位置。该区域称为沙箱,因此所有非代码文件都必须存储在此处,例如图像和图标,声音,图像,属性列表,文本文件等。

内存缓存和磁盘缓存

内存缓存和磁盘缓存_磁盘的虚拟缓存设置_硬盘 缓存 内存

默认情况下,每个沙箱包含3个文件夹:文档,库和tmp。

文档:Apple建议将在程序中创建或在程序中浏览的文件数据保存在此目录中,这将包含在iTunes备份和还原中

库:存储程序的默认设置或其他状态信息;

库/缓存:存储缓存文件。 iTunes不会备份此目录。当应用程序退出时,此目录中的文件不会被删除。

库/首选项:存储存储在用户默认值中的信息,iTunes将备份此目录,应用程序重新启动不会丢弃数据,我们使用NSUserDefaults编写的设置数据将保存到此目录中的plist文件中,叫做写给plist!

tmp:提供一个可以立即创建临时文件的位置,iTunes不会备份此目录

用户生成的文件放置在文档中,而您自己的文件放置在库/缓存中。一个简单的解释:如果您创建一个记事本应用程序,则用户会写一些东西,并且必须将其存储。然后,该文件由用户生成并放置在documents文件夹中。如果您有应用程序,则需要与服务器合作。您经常从服务器下载内容并将其显示给用户。然后将这些下载的内容放置在库/缓存中。苹果对此非常严格,如果放错位置,它将被拒绝。主要原因是ios icloud的同步问题。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-344124-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...