개요
항목
|
설명
|
내용 및 특징 |
Memory mapped File 은 File
I/O 를 Virtual
Memory 처리 기반에서
수행할 수 있게 해준다. Memory API를 이용하여 File I/O Api를 대신할 수 있으므로 보다 쉬운 API 사용이 가능. |
장점 |
File Buffer 를 거치지 않고 Memory에서 I/O 를 Direct
access 하고, 4K 단위의 Memory
page 를 이용하므로 I/O 성능을 개선 여러 프로세스끼리 공유파일이 가능. |
단점 |
32bit 시스템에서 4G 이상의 파일은 수용할 수 없음. 처리해야 할 에러 유형이 상대적으로 많음. |
주요 특징
Memory mapped file은 file object , string object 둘 다를 지원하는 다양한 api 를 가지고 있다. Close(),flush(),read(),readline(),seek(),tell(), write() 와 같은 file api 와 slicing 이나 find와 같은 string api 도 지원함.
Mmap.mmap() 함수로 반환된 object 에 대해서 리스트연산, slicing 등 기존 문자열 처리에 사용되는 api 를 이용하여 다양하게 가공이 가능하다.
API 설명
•Unix와 Window
간 함수 인자값에 차이가 있으므로 주의가 필요하다.
•class mmap.mmap(fileno,
length[, flags[, prot[, access[, offset]]]]) 로 호출된다.
•Fileno는 open(파일명) 으로 반환된 File descriptor ,
•length 는 메모리로 매핑할 파일의 크기, 0 으로 설정
시 파일 전체를 메모리로 매핑
•Flags 는 메모리매핑의 공유 특성을 나타냄. MAP_SHARED 가 디폴트이며 이 경우 다른 프로세스가 해당 파일 매핑을 변경할 시 다른 프로세스도 이를 공유할 수 있다. MAP_PRIVATE 는 프로세스별로 별도의 COPY_ON_WRITE 공간을 가지므로 개별 프로세스의 파일 매핑 변경사항이 공유되지 않는다.
•Access 는 ACCESS_READ,
ACCESS_WRITE, or ACCESS_COPY 로 읽기,
쓰기 , 복사용도를 나타냄. ACCESS_COPY 의 경우는 변경사항을 메모리에만 적용하고 파일에는 적용하지 않는다.
•Prot 는 메모리 protection 을 나타내며, PROT_READ and PROT_WRITE 가 사용됨. 디폴트는
PROT_READ | PROT_WRITE 이며
해당 메모로기 read 또는 write 로 사용 될 수 있음을 의미함.
'개발 > Python' 카테고리의 다른 글
Numpy 와 Pandas에서 불리언 색인(Boolean Index) 의 활용 (0) | 2016.09.25 |
---|---|
with.. as 절의 사용법 (0) | 2016.09.21 |
Numpy array 를 shape로 차원확인 하기 (0) | 2016.09.19 |
Python에서는 증감연산자 ++,-- 가 없다 (0) | 2016.09.19 |
PyQt4 와 PyQt5 에서의 Event 처리 방식의 변경. (0) | 2016.09.19 |