繁体   English   中英

内存映射文件的误解?

[英]Memory-mapped file misunderstanding?

根据Msdn

内存映射文件使程序员可以处理非常大的文件,因为可以同时管理内存,并且它们允许完全随机地访问文件,而无需查找

题 :

Memory Mappe File的整个原理是写入/读取字节,并按位置和偏移量创建视图。

“不需要寻求”是什么意思?

必须知道开始和结束(偏移量)才能读取文件。

所以寻求存在!

我确实在这庞大的字节数组中寻找...。

我想念什么?

使用内存映射文件时,基本上可以得到一个指向内存块的指针,并将其作为某种类型的数组进行访问。 然后,访问文件中的特定位置就是基于索引和/或偏移量的内存访问。 操作系统隐式地管理所需的寻找。

与普通文件不同,MMF具有随机访问权限,在普通文件中只有1个特定点会发生读取或写入。

使用偏移量(和指针等)与在流中查找不同。

我必须知道开始和结束(偏移量)才能读取文件

您不会“读取文件”,而是访问内存并需要地址,而不是流位置。

MMF是实际上“映射”到虚拟内存空间的文件,因此就数组而言,您可以将其视为Dictionary(非常一般的比较)。 它的舒适由acessing该文件的数据块继续进行非常大的文件打交道时(如果不是说唯一可能的)解决方案。 我可以说,也许每个视频编辑软件都使用这项技术。 没有其他办法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM