首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSDocument和NSFileWrapper:减少内存占用的策略?

NSDocument和NSFileWrapper:减少内存占用的策略?
EN

Stack Overflow用户
提问于 2014-01-08 15:41:12
回答 1查看 263关注 0票数 0

基于苹果文档,在NSDocument中使用文件包的推荐做法似乎是在自定义NSDocument实现中保持对根NSFileWrapper的引用。

我的问题是:这不意味着我的文档的内存占用量会增加两倍吗?

假设有一个NSString实例变量text的简单文档。比方说,这篇文章可能很大。

readFromFileWrapper:…中,我从文件包装数据中读取NSString并将其存储在text中。但是,由于文件包装器是一个实例变量,所以它的原始NSData仍然存在,尽管我所需要的只是NSString版本。

在我看完书后,有什么东西反对我放弃NSFileWrapper吗?

编辑:--当想到iOS和UIDocument时,这就更有趣了。我有一份可能有数百张图片的文档。

EN

回答 1

Stack Overflow用户

发布于 2014-01-09 10:00:55

这是个好问题,但我要直截了当地回答。

首先,不要过早地进行优化。如果您所拥有的只是相对较小的文件,那么您还不应该担心这个问题。你应该让你的应用程序正常工作。

如果一旦你的应用程序成功后,你发现你的文件往往很大(比如几百兆字节),你可能会考虑优化它。

记住,今天的机器通常有8GB或更多的RAM。这需要大量的数据来填充。另外,使用虚拟内存,NSFileWrapper将映射到数据文件中,这意味着它们在内存中的驻留时间至少在读取它们的时间内,但在此之后,可以以零成本分页(不需要将它们写回磁盘,因为它们已经在磁盘上)。

占用但可以在没有磁盘访问的情况下释放的内存实质上是空闲内存。

所以,同样的,当你没有真正的测试用例时,不要尝试优化,因为系统已经进行了难以置信的优化,如果你在没有测试的情况下对自己进行优化,你很可能会让事情变得更糟。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21000094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档