Java 서블릿에서 HttpServletRequest를 가져 와서 모든 NIO를 사용하여 파일에 쓰는 방법 (전체 Inputstream을 버퍼링하지 않음)이 있습니까? 노력할만한 가치가 있습니까? 정상적인 java.io 스트림을 읽고 java.nio 채널에 쓰는 것이 더 빠를 수 있습니까? 아니면 둘 다 순수한 NIO 일 필요가 있습니까? 감사.Java NIO 서블릿 파일
는 편집 :
그래서 난 그냥 하나 개의 디스크에서 파일을 읽고 (그래서 실제로 코드가 아닌 디스크를 테스트하고 있습니다) 다른 디스크에 쓰기, 신속하고 더러운 벤치 마크를했다.Averages:
InputStream -> OutputStream : 321 ms.
FileChannel -> FileChannel : 3 ms.
InputStream -> FileChannel : 600 ms.
실제로 하이브리드 java.io -> java.nio를 사용하려고하면 성능이 저하됩니다. nio-> nio는 A LOT보다 빠르지 만 Servlet InputStream이 붙어 있습니다.
FileChannel이 DMA를 사용하여 디스크에 스트림을 쓸 수 있다는 점을 제외하고는 성능이 향상 될 수 있다는 느낌이었습니다. – Gandalf