c++ - 以任何方式多次打开共享内存是否不好?

标签 c++ c linux posix shared-memory

我有一个使用 shm_open 打开 posix 共享内存的类.现在我必须多次创建此类的对象(总共 5-10 个对象),这意味着同一个共享内存将被打开那么多次。

共享内存的大小是可变的,可以从 1k 到 500k。

关于这个的问题是:
1.这会导致内存使用量增加吗? (我没有看到这种情况发生,所以我的猜测是没有)
2. 这会导致访问共享内存时性能变差吗?
3. 还有什么可能出错的地方吗?

最佳答案

答案在您将 shm_open 链接到的页面上:

shm_open() creates and opens a new, or opens an existing, POSIX shared memory object. A POSIX shared memory object is in effect a handle which can be used by unrelated processes to mmap(2) the same region of shared memory.

要访问共享内存对象,您需要它的句柄。 shm_open() 可用于打开(创建)新的和重新打开现有的共享内存对象。重新打开现有对象时不会增加内存,也不会出现不良性能。

关于c++ - 以任何方式多次打开共享内存是否不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6174244/

相关文章:

c++ - 为什么多线程代码在更快的机器上运行得更慢?

c++ - 如何包含 GDB 调试符号 'break packages' ?

linux - 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

linux - 在 ansible 剧本中添加 sudo_user 会使命令永远执行

c++ - 有 C++ 命令行吗?

c++ - C++ 运算符的性能

创建共享库找不到​​apr-1

C 生成正确的 shell 命令,但 system() 调用返回意外值

c++ - 为什么函数声明在 C++ 中是强制性的,而不是在 C 中?

c++ - 使用已删除的函数 std::unique_ptr