我有一个使用 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/