如何通过networking加速内存映射文件?

内存映射SMB文件共享上的文件导致它在调用返回之前全部传输。 对于大文件,这会导致应用程序长时间locking。 我该如何解决?

“使用X而不是SMB”是一个有效的答案。

编辑:任何应用程序,任何文件。 我不是想解决一个具体的案件。 内存映射文件是一种打开文件的方式,以便它作为工作内存的一部分出现在应用程序中 – 您可以像访问数组一样访问文件。

这是操作系统的mmap实现的一个神器,与使用的networking协议没有任何关系(就像我喜欢在SMB上抹黑一样)。 SMB不仅能够从文件中读取随机块,因此没有理由不能根据请求读取块。 我目前没有可以访问的SMB服务器来validation它,但是我有一个NFS服务器,我试图mmap一个1.7GB的文件,它瞬间返回,所以最起码它肯定不是mmap概念的内在局限性。