Python 获取共享内存:大小不一致
Python getting shared memory: size is not consistent
进程 1:
shm=multiprocessing.shared_memory.SharedMemory(name="shm", create=True, size=10000)
print(shm.size)
打印 10000 张
进程 2:
shm=multiprocessing.shared_memory.SharedMemory(name="shm")
print(shm.size)
打印 12288
问题是我正在尝试使用缓冲区来支持 numpy 数组。然后 numpy 抱怨它不能 reshape()
数组,因为它的大小不一样。
共享内存四舍五入到下一个页面大小,在你的情况下是 3 * 4096。你必须将缓冲区切片到正确的大小
shm = multiprocessing.shared_memory.SharedMemory(name="shm")
buffer = shm.buf[:10000]
进程 1:
shm=multiprocessing.shared_memory.SharedMemory(name="shm", create=True, size=10000)
print(shm.size)
打印 10000 张
进程 2:
shm=multiprocessing.shared_memory.SharedMemory(name="shm")
print(shm.size)
打印 12288
问题是我正在尝试使用缓冲区来支持 numpy 数组。然后 numpy 抱怨它不能 reshape()
数组,因为它的大小不一样。
共享内存四舍五入到下一个页面大小,在你的情况下是 3 * 4096。你必须将缓冲区切片到正确的大小
shm = multiprocessing.shared_memory.SharedMemory(name="shm")
buffer = shm.buf[:10000]