【问题标题】:Is there a memory mapping api on windows platform, just like mmap() on linux?windows平台上是否有内存映射api,就像linux上的mmap()一样?
【发布时间】:2011-05-04 11:45:46
【问题描述】:

有没有做内存映射的api,就像

mmap()

在 Linux 上?

【问题讨论】:

    标签: memory mmap


    【解决方案1】:

    取决于你到底想用它做什么。如果要将现有文件映射到内存中,memory-mapped files 支持。它们还可以用于在进程之间共享内存(使用没有基础文件的命名映射对象)。 如果你想映射物理内存,用户模式一般不支持,虽然有一些技巧。

    【讨论】:

    • 我只是想将一个文件映射到内存,以便获得更高的 I/O 性能
    • 那应该可以了。下面是一些在 Win32 上进行文件映射的示例代码:mollyrocket.com/forums/viewtopic.php?p=2529
    • @IgorSkochinsky: CreateFileMapping "如果 hFile 是 INVALID_HANDLE_VALUE... CreateFileMapping 创建一个指定大小的文件映射对象,该对象由系统分页文件而不是文件系统中的文件支持。 "这就是“映射物理内存”的意思吗?
    • @MooingDuck 不,“由系统分页文件支持”仍然是指虚拟内存;不能保证您在物理内存中的特定位置,并且您的映射可以在操作系统感觉的任何时候被分页或移动。见here。
    • @IgorSkochinsky:呵呵,我不知道mmap 能做到这一点。
    猜你喜欢
    • 2017-05-11
    • 1970-01-01
    • 2023-03-18
    • 2013-12-31
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多