【问题标题】:Reserve memory on OS X在 OS X 上预留内存
【发布时间】:2010-08-24 21:06:23
【问题描述】:

在 OS X 中相当于 Windows 的 VirtualAlloc 是什么?也就是说,我怎样才能保留一个连续的地址空间而不实际提交它,然后再提交它的块?

谢谢,

亚历克斯

【问题讨论】:

  • AFAIK,没有办法像VirtualAlloc 那样保留内存。对于连续分配,请使用mmap
  • 我还看到mmap 在 OS X 和其他 Unices 上用于连续分配。专家能否指出与 Windows 的VirtualAlloc 的差异(如果有)?也许有人回答说他们不一样? (注:我指的mmap的用户回到了malloc,但我不记得原因了)

标签: c macos memory-management


【解决方案1】:

使用MAP_ANON | MAP_PRIVATE 调用的mmap() 函数与带有MEM_RESERVE 标志的VirtualAlloc() 非常大致等效。然后通过触摸映射中的每个页面来提交内存。

【讨论】:

    【解决方案2】:

    不,很遗憾,没有与 VirtualAlloc 完全相同的版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多