我有任何问题:如果 Mac 缓存文件内容,如何按扇区读取任何文件,而不依赖于 Cocoa 中的操作系统缓存。我用initWithContentsOfURL:_fileURL options:NSUncachedRead error:NULL
,对吗?感谢您的回答。
问问题
83 次
1 回答
2
该标志NSDataReadingUncached
(或其已弃用的同义词,NSUncachedRead
)是对操作系统的提示,即不应将文件添加到缓存中。它们可用于防止将大的、不重要的文件添加到缓存中并从页面缓存中逐出其他更重要的数据。并注意“提示”一词:操作系统可以随意忽略提示。
你实际上想要完成什么?
操作系统确保缓存包含与磁盘相同的数据,因此无论您是从缓存中读取还是从磁盘中读取,您将始终获得相同的数据。唯一的区别将是性能。所以我最好的猜测是你一定是在尝试编写一个存储基准。
解决方案
您可以通过运行命令来刷新缓存purge
(您可以使用NSTask
它)。这会刷新整个磁盘缓存,因此它会使您的计算机变得非常慢,直到缓存再次升温。
这仅适用于 OS X。我没有适用于 iOS 的解决方案。
于 2013-08-14T02:42:48.280 回答