内存映射文件误解
本文关键字:误解 文件 映射 内存 | 更新日期: 2023-09-27 18:29:10
根据Msdn:
内存映射文件使程序员能够处理非常大的文件,因为内存可以同时管理,并且它们允许对文件的完全随机访问,无需查找
问题:
内存映射文件的全部原理是写入/读取字节,并根据位置和偏移量创建视图。
"无需寻求"是什么意思?
我必须知道开始和结束(偏移量)才能读取文件。
寻找是存在的!
我确实在这个巨大的字节数组中寻找。。。。
我错过了什么?
使用内存映射文件时,基本上会获得一个指向内存块的指针,并将其作为某种类型的数组进行访问。然后访问文件中的特定位置是对内存的基于索引和/或偏移量的访问。操作系统在背后管理着无形中需要的寻找。
MMF具有随机访问,而普通文件只有一个特定的读写点。
使用偏移量(和指针等)与在流中查找不同。
我必须知道开始和结束(偏移量)才能读取文件
你不"读取文件",你访问内存,需要地址,而不是流位置。
MMF是实际"映射"到虚拟内存空间的文件,因此您可以将其视为Dictionary关于Array的(非常笼统的比较)。当处理非常大的文件时,通过访问该文件的块来继续处理,这是一个舒适的(如果不是说只有可能的话)解决方案。我想说,也许,每一个视频编辑软件都使用这项技术。没有其他方法。