Differences between revisions 1 and 0
Deletions are marked like this. | Additions are marked like this. |
Line 12: | Line 12: |
* memory map io를 사용하는 것이 단연 가장 빠르다. | * memory map io를 사용하는 것이 단연 가장 빠르다. 심지어 1k 미만의 파일을 읽을 때도 더 빠르다. |
파일을 읽고 쓰는 것은 프로그래밍에서 아주 빈번하게 발생하는 일이다.
일반적인 통념 상 파일 시스템은 네트웍에 비해 훨씬 빠르고 메모리에 비해 훨씬 느리다. 보통 그 성능 비율은 100 정도로 유지가 되고 있다.
파일을 읽고 쓸 때의 성능을 보장하려면 다음 몇 가지 부분을 염두에 둬야 한다.
file open/close 가 빈번하게 발생하면 성능에 나쁜 영향을 미친다.
output stream flush가 빈번하게 발생하면 성능에 나쁜 영향을 미칠 수 있다. (file의 경우 윈도우에서는 거의 영향이 없었고, 리눅스의 경우 큰 영향이 있었다.)
stream io와 channel io를 단순 비교하면 stream io 성능이 오히려 나은 경우가 대부분이다.
buffered io를 사용하면 어느 정도의 성능 개선 효과를 보인다. (리눅스 output stream의 경우 아주 큰 개선 효과. 다른 경우에도 조금의 성능 개선 효과. 물론 최적의 buffer 크기를 잘 선택하는 것이 중요하다.)
memory map io를 사용하는 것이 단연 가장 빠르다. 심지어 1k 미만의 파일을 읽을 때도 더 빠르다.