【问题标题】:Maximum available shared memory for boost shared memory allocation用于提升共享内存分配的最大可用共享内存
【发布时间】:2013-08-20 19:13:20
【问题描述】:

如何检查“managed_shared_memory”分配的最大可用共享内存? (增强)

我试图在八核机器上分配所有 32 GB 的可用内存,但它不允许我这样做。

是否有任何操作系统要求我需要完成或设置一些权限才能这样做。

有什么方法可以让我从操作系统获得可用的尺寸。

谢谢。

【问题讨论】:

  • 我不熟悉 BOOST 实现,但我认为 32GB 共享内存是可行的(取决于可用内存和地址范围等)。我认为您在连续的地址范围内肯定有 32GB 的可用内存?你有多少物理内存?来自部门的愚蠢问题,你正在为 64 位编译,对吗?
  • 是 64 位,内存为 64GB,可用共享内存为 32GB。

标签: c++ boost shared-memory


【解决方案1】:

这取决于您使用的操作系统。

例如,在 Linux 操作系统中,有一个函数可以处理此类信息:getrlimit

从这个手册页你可以读到这个(其中一个资源是):

RLIMIT_DATA 这是进程数据段的最大大小,以字节为单位。如果超出此限制,malloc() 函数将失败,并将 errno 设置为 [ENOMEM]。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多