使用shm_open创建的共享内存对象和使用shmget创建的共享内存段有什么区别?
它们是否有任何不能像shmmax和shmall一样进行调整的限制?
这两者之间是否存在性能差异,以及在哪些IPC场景下应该使用它们?
使用shm_open创建的共享内存对象和使用shmget创建的共享内存段有什么区别?
它们是否有任何不能像shmmax和shmall一样进行调整的限制?
这两者之间是否存在性能差异,以及在哪些IPC场景下应该使用它们?
shm_open
访问的内存比通过shmget
访问的内存更快。除此之外,在功能方面它们非常相似。两者之间必须存在一些微妙的缓存或TLB差异,但我不熟悉底层细节。shm_open
的POPULATE选项才能获得这种性能提升。