아래의 문서를 번역 및 요약하였습니다.
http://www.cs.brown.edu/courses/cs161/papers/j-nio-ltr.pdf
-----------------------------------------------------------
2. Java I/O의 개념
2-1. Java IO와의 차이
기존 IO는 Stream을 이용한 입출력 이었으나 NIO는 block I/O라는 방식이 사용되었다.
2-2. 왜 NIO가 좋은가?
NIO는 Native Code의 사용없이도 고성능(속도의 측면이 강함)의 I/O를 사용할 수 있게한다.
2-3. Stream vs Blocks
Original IO와 NIO의 가장 큰 차이는 '데이터가 어떻게 패키징(package)되고 전송(transmit)되느냐'이다.
앞서 예기했듯 IO는 Stream을 사용하고 NIO는Block을 사용한다
- Stream 방식
Original IO input/output시에 데이터의 전송단위는 1byte이다. 물론 Buffer를 사용하지만 buffer를 쓰더라도 궁극적으로 하나의 바이트씩 produce와 consume이 발생한다. 이방식의 성능은 그리 좋지 못하다.
- Block 방식
block-oriented I/O system의 경우 데이터를 블록의 단위로 다룬다(deal with in blocks). block화된 데이터는 단 한번의 처리단위 시간 동안 일괄 처리된다. 블록으로 데이터를 처리하는것이 stream(byte 기반)으로 처리하는것 보다 훨씬 빠르다. 물론, 빠른만큼 개발자의 구현은 기존 IO보다 힘들어 진다.
http://www.cs.brown.edu/courses/cs161/papers/j-nio-ltr.pdf
-----------------------------------------------------------
2. Java I/O의 개념
2-1. Java IO와의 차이
기존 IO는 Stream을 이용한 입출력 이었으나 NIO는 block I/O라는 방식이 사용되었다.
2-2. 왜 NIO가 좋은가?
NIO는 Native Code의 사용없이도 고성능(속도의 측면이 강함)의 I/O를 사용할 수 있게한다.
2-3. Stream vs Blocks
Original IO와 NIO의 가장 큰 차이는 '데이터가 어떻게 패키징(package)되고 전송(transmit)되느냐'이다.
앞서 예기했듯 IO는 Stream을 사용하고 NIO는Block을 사용한다
- Stream 방식
Original IO input/output시에 데이터의 전송단위는 1byte이다. 물론 Buffer를 사용하지만 buffer를 쓰더라도 궁극적으로 하나의 바이트씩 produce와 consume이 발생한다. 이방식의 성능은 그리 좋지 못하다.
- Block 방식
block-oriented I/O system의 경우 데이터를 블록의 단위로 다룬다(deal with in blocks). block화된 데이터는 단 한번의 처리단위 시간 동안 일괄 처리된다. 블록으로 데이터를 처리하는것이 stream(byte 기반)으로 처리하는것 보다 훨씬 빠르다. 물론, 빠른만큼 개발자의 구현은 기존 IO보다 힘들어 진다.
'Expired > Java Works' 카테고리의 다른 글
자막(smi) 파일에서 대본 추출 프로그램 (6) | 2008.11.09 |
---|---|
NIO 강좌 - 3 (0) | 2008.02.09 |
PC상의 로컬 파일을 전송하기 위한 간단한 서블릿 예제.. (0) | 2008.01.28 |
Java로 EXE 파일 실행..(Excuting exe file by Java Program) (0) | 2007.12.29 |
실시간 블로그 이미지 갱신.. (0) | 2007.12.02 |