Skip to content

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))

See also

Favorite site