+ (nullable instancetype)dataWithContentsOfURL:(NSURL *)url options:(NSDataReadingOptions)readOptionsMask error:(NSError **)errorPtr;
- NSDataReadingMappedIfSafe 提示显示文件应该映射到虚拟内存,如果可能和安全
- NSDataReadingUncached 提示显示文件不应该存储在文件系统缓存。数据读取一次,丢弃,这个选项可以提高性能
- NSDataReadingMappedAlways 在如果可能提示映射文件
总之对于大文件的处理,使用NSDataReadingMappedIfSafe进行映射就能大幅度优化,文件内存映射是指把一个文件的内容映射到进程的内存虚拟地址空间中,这个实际上并没有为文件内容分配物理内存。实际上就相当于将内存地址值指向文件的磁盘地址。如果对这些内存进行读写,实际上就是对文件在磁盘上内容进行读写。