首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >POSIX共享内存在c++程序中的高效使用

问POSIX共享内存在c++程序中的高效使用
EN

Stack Overflow用户
提问于 2015-10-25 20:10:51
回答 1查看 520关注 0票数 0

我在linux机器上使用基于POSIX API的共享内存在多个MPI进程之间进行通信。我有一个可行的解决方案,但我想知道如何有效地利用共享内存空间来处理大数据。

我有一台具有64 2GB共享内存限制的机器,可能会发生这样的情况:我不得不将数据>64 2GB写入这个空间,但这些数据块较小,为1-2GB。

我想知道的是:

  • 一旦1-2GB块达到目的,而我不再想要这些数据,我怎么才能真正地删除它占用的内存呢?

我使用的是shm_unlink(),但它似乎没有清除/dev/shm/中的空间。

请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2015-10-25 20:43:05

从sum_unlink在unlink.html中的描述来看,内存删除似乎实际上可能被推迟,请阅读下面的内容:

如果在对象未链接时存在对共享内存对象的一个或多个引用,则应在shm_unlink()返回之前删除该名称,但对内存对象内容的删除应推迟到删除对共享内存对象的所有打开和映射引用为止。

我希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33334554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档