Python:mmap
Example
Write process:
import numpy as np
import datetime
import mmap
import os
from time import sleep
image = np.zeros([1080, 1920, 3], np.int8)
fd = os.open('temp.mem', os.O_CREAT | os.O_TRUNC | os.O_RDWR)
os.write(fd, image.tobytes())
mm = mmap.mmap(fd, 0, mmap.MAP_SHARED, mmap.PROT_WRITE)
begin_time = datetime.datetime.now()
mm.write(image.tobytes())
delta = datetime.datetime.now() - begin_time
milliseconds = int(delta.total_seconds() * 1000)
print('Memory write time: {}ms'.format(milliseconds))
Read process:
import numpy as np
import datetime
import mmap
import os
from time import sleep
image = np.zeros([1080, 1920, 3], np.int8)
fd = os.open('temp.mem', os.O_RDWR) # 이 곳에 os.O_CREAT | os.O_TRUNC 를 추가하면 안된다.
os.write(fd, image.tobytes())
mm = mmap.mmap(fd, 0, mmap.MAP_SHARED, mmap.PROT_READ | mmap.PROT_WRITE) # os.open시 사용한 권한과 동일하게 적용하자.
begin_time = datetime.datetime.now()
memory = mm.read(image.size)
delta = datetime.datetime.now() - begin_time
milliseconds = int(delta.total_seconds() * 1000)
print('Memory read time: {}ms'.format(milliseconds))