강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

lgh8079님의 프로필 이미지
lgh8079

작성한 질문수

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

파일 입출력과 성능 최적화2 - 버퍼 활용

16강 질문있습니다.

작성

·

11

0

 [질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예


[질문 내용]
package io.buffered; import java.io.FileInputStream; import java.io.IOException; import static io.buffered.BufferedConst.BUFFER_SIZE; import static io.buffered.BufferedConst.FILE_NAME; public class ReadFileV2 { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream(FILE_NAME); long startTime = System.currentTimeMillis(); byte[] buffer = new byte[BUFFER_SIZE]; int fileSize = 0; int size; while ((size = fis.read(buffer)) != -1) { fileSize += size; } fis.close(); long endTime = System.currentTimeMillis(); System.out.println("File name: " + FILE_NAME); System.out.println("File size: " + fileSize / 1024 / 1024 + "MB"); System.out.println("Time taken: " + (endTime - startTime) + "ms"); } }

이 코드를 컴파일했을 때 Time taken이 6ms 언저리로 자꾸 나오는데 컴퓨터마다 다 다르게 찍히는 건가요? 강의에서는 1ms로 나와서 제가 타이핑을 잘못했나 싶어서 여쭤봅니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. lgh8079님.

코드를 작성하고 컴파일한 결과 시간 측정이 다르게 나오는 이유에 대해 고민이 있으신 것 같습니다. 시간 측정 결과는 여러 요인에 의해 영향을 받을 수 있습니다. 몇 가지 가능성을 살펴보겠습니다:

  1. 하드웨어 차이: 컴퓨터의 CPU 성능, 메모리 속도, 디스크 I/O 속도 등 하드웨어 사양에 따라 시간 측정 결과가 차이가 날 수 있습니다.

  2. 백그라운드 작업: 다른 애플리케이션이나 시스템 작업들이 백그라운드에서 실행 중이라면, I/O 작업에 영향을 미쳐 시간이 더 소요될 수 있습니다.

  3. 파일 시스템 상태: 파일 시스템의 상태나 파일 접근 속도 또한 시간 측정에 영향을 줄 수 있습니다. 예를 들어, 파일이 저장된 디스크의 상태 및 경로는 접근 시간을 변동시킬 수 있습니다.

  4. 파일 크기 및 내용: 읽어들이는 파일의 크기나 내용이 각 환경에서 다를 경우, 자연스럽게 처리 시간에도 차이가 생길 수 있습니다. 실험을 위해 사용된 파일이 강의에서 사용된 파일과 동일한지 확인해 주시기 바랍니다.

결론적으로, 컴퓨터 환경에 따라 시간 측정 결과가 달라질 수 있습니다. 이를 감안하여 코드를 작성하시면 좋을 것입니다.

비슷한 사례나 추가적인 팁, 트릭 등을 확인할 수 있는 기존 질문 답변을 아래의 링크를 통해 살펴보시길 추천드립니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

lgh8079님의 프로필 이미지
lgh8079

작성한 질문수

질문하기