0

我有任何问题:如果 Mac 缓存文件内容,如何按扇区读取任何文件,而不依赖于 Cocoa 中的操作系统缓存。我用initWithContentsOfURL:_fileURL options:NSUncachedRead error:NULL,对吗?感谢您的回答。

4

1 回答 1

2

该标志NSDataReadingUncached(或其已弃用的同义词,NSUncachedRead)是对操作系统的提示,即不应将文件添加到缓存中。它们可用于防止将大的、不重要的文件添加到缓存中并从页面缓存中逐出其他更重要的数据。并注意“提示”一词:操作系统可以随意忽略提示。

你实际上想要完成什么?

操作系统确保缓存包含与磁盘相同的数据,因此无论您是从缓存中读取还是从磁盘中读取,您将始终获得相同的数据。唯一的区别将是性能。所以我最好的猜测是你一定是在尝试编写一个存储基准。

解决方案

您可以通过运行命令来刷新缓存purge(您可以使用NSTask它)。这会刷新整个磁盘缓存,因此它会使您的计算机变得非常慢,直到缓存再次升温。

这仅适用于 OS X。我没有适用于 iOS 的解决方案。

于 2013-08-14T02:42:48.280 回答