본문 바로가기
숨터 가볍게 읽는 공간
전체 베스트 최근
← programming 게시판

BufferedInputStream은 8K이상 읽을 땐 성능저하된다는데?

익명(59.16) 2022-04-17 02:10 추천 0

https://stackoverflow.com/questions/3122422/usage-of-bufferedinputstream

댓글 21

  • 그렇구나... 사소해 보이는 내용이었지만 하나 배우고 가네.

    개발뉴비(coderhs) 2022-04-17 02:18
  • 해당 댓글은 삭제되었습니다.

    해당 댓글은 삭제되었습니다. 2026-07-10 11:42
  • 답글

    저기서도 Direct Buffering이 더 빠르다고 하지 않음?

    익명(59.16) 2022-04-17 02:20
  • 답글

    네가 했던 실험이면 마지막 코드 수정한 버전 얘기하는거야?

    개발뉴비(coderhs) 2022-04-17 02:20
  • 답글

    BufferedInputStream.read() vs FileInputStream.read(buffer)

    익명(59.16) 2022-04-17 02:21
  • 답글

    이게 내가 했던 실험이고 저 문서의 어프로치2, 어프로치3도 똑같은 내용같음

    익명(59.16) 2022-04-17 02:22
  • 답글

    nvm이 하는 이야기는 BufferedInputStream.read(buffer)랑 FileInputStream.read(buffer)를 비교해야 한다는 말 아니었어?

    개발뉴비(coderhs) 2022-04-17 02:24
  • 답글

    그리고 애초에 BufferedInputStream의 목적은 8K 단위로 읽어와서 바이트로 뿌려주려는 거 같음. 8K씩 읽어와서 8K씩 뿌려주는 놈이 아님.

    익명(59.16) 2022-04-17 02:24
  • 답글

    BufferedInputStream.read(buffer) 처럼 사용하는게 올바른 practice라는 증거를 찾지 못했음. 예제들 전부 다 read() 쓰고 있고 그게 올바른 사용방법이라고 쓰여있음

    익명(59.16) 2022-04-17 02:25
  • 답글

    그렇구나. 사실 오라클 공식도 저렇게 해놨으니... 난 아까 내가 올린 이 글 보고 한 말이었음.
    https://www.geeksforgeeks.org/bufferedinputstream-read-method-in-java-with-examples/

    개발뉴비(coderhs) 2022-04-17 02:27
  • 답글

    내가 처음 주장한 것도 FileInputStream에서 byte[8192]를 잡으면 BufferedInputStream과 비슷할 것이라는 거였음. 근데 극적으로 속도 차이가 난다니 이해가 안 가서 물어본거구.. 그런데 스택오버플로우에서 syscall이 속도를 늦추는 원인이라고 하면 그걸 같게 해야 하지 않을까? 했던거구.. 내가 이해도가 부족했다면 미안하다

    개발뉴비(coderhs) 2022-04-17 02:28
  • 에효... BufferedInputStream은 버퍼 단위로 읽어들여서 개발자를 편하게 해주는 거지 그이상도 그이하도 아님. 내가 처음에 말한대로 InputStream이랑 성능 자체는 비슷하겠지 니가 큰 버퍼를 만들어서 직접 버퍼 관리를 해버리면? 그리고 너가 링크 건 스오플 답변 말인데 잘 읽어봐 내가 한 말이랑 전혀 다르지 않음. 큰 사이즈의 버퍼를 만들어서 읽어들이면 차이가없다. 버퍼크기가 충분히 크면 BufferedInputStream이 InputStream에 비해 오버헤드가 있어서 성능이 더 저하될 수 있다. 이건 내가 다 말해준 내용 아니야?

    nvm(milizz) 2022-04-17 02:27
  • 답글

    그리고 왜 8k에 집착하는지는 모르겟는데 8k 기점으로 뭔가 급격하게 변한다는게 아니고 대충 이정도 크기면 BufferedInputStream이 딱히 의미가 없다는 뜻이야

    nvm(milizz) 2022-04-17 02:28
  • 답글

    아마 8k가 BufferedInputStream의 default buf size라서?

    개발뉴비(coderhs) 2022-04-17 02:29
  • 답글

    ㅇㅇ 니 말대로 편하게 해준다는 의미 뿐인 거 같음
    같은 질문 발견함
    https://stackoverflow.com/questions/52640010/is-fileinputstream-not-buffered-and-why-bufferedinputstream-is-faster

    익명(59.16) 2022-04-17 02:29
  • 답글

    "BufferedInputStream.read(buffer) 처럼 사용하는게 올바른 practice라는 증거를 찾지 못했음. 예제들 전부 다 read() 쓰고 있고 그게 올바른 사용방법이라고 쓰여있음" 동일한 비교를 하라는 거지 read()쓰지 말고 read(buffer)를 쓰라는 말이 아닌거 알지? 똑같이 read()를 쓰던지 read(buffer)를 쓰던지 해서 비교하라고. 정 못알아 듣겠으면 실제로 무언가 연산을 하는 테스트를 해봐. InputStream이랑 BufferInputStream을 써서 각각 byte를 전부 곱하는 연산을 해서 하면 둘의 차이가 별로 없다는 걸 알 수 있을거야. 그땐 니가 read()를 쓰든 read(buffer)를 쓰든 별 의미가 없겠지 둘다 바이트 단위로 연산이 들어가니

    nvm(milizz) 2022-04-17 02:31
  • 답글

    결론적으로 말하면 FileInputStream.read(buffer)나 BufferedInputStream.read()는 결국 전자가 buffer를 직접 만들어서 쓰는거니까 불편한거고, 근본적으로는 같으니까 속도 면에서는 별 차이가 없어야한다는 거지? 나도 그렇게 생각했는데 성능이 2~3배 차이난다는게 좀 신기해서 실험을 물어본건데..

    개발뉴비(coderhs) 2022-04-17 02:33
  • 답글

    BufferedInputStream.read(buffer) vs FileInputStream.read(buffer)가 아니라 BufferedInputStream.read() vs FileInputStream.read(buffer)를 하되 for (int i = 0; i < buffer.length; i++) data = buffer[i] 로 했어야 공평한 실험이었을 거 같음

    익명(59.16) 2022-04-17 02:34
  • 답글

    file io를 줄이기 위해 버퍼에 8k 단위로 불러와서 1 바이트씩 뿌려주는 개념이니까

    익명(59.16) 2022-04-17 02:35
  • 답글

    애초에 InputStream이 데이터를 byte 단위로 처리하기 위한 목적이니까 그랬어야 했네

    익명(59.16) 2022-04-17 02:36
  • 역시 글로 공부하는 것보다 소스 까고 실험하는 게 뇌에 잘 각인되네 떙큐 에브리원

    익명(59.16) 2022-04-17 02:39

다른 게시글

  • ISTJ 나온 사람?
    익명(1.239) | 22.04.17
    추천 0
  • 국비가는애들 대부분 백엔드함??
    익명(223.38) | 22.04.17
    추천 0
  • ERD에서 점선이 한 개도 없으면 문제 있나요?
    ㅇㅇㅇ(1.230) | 22.04.17
    추천 0
  • 사람에 관심 없는편인거 먼가 뼈저리게느끼네 [2]
    공기역학(experimenter) | 22.04.17
    추천 0
  • 국비충 포폴 질문
    Nell(220.122) | 22.04.17
    추천 0
  • Nell이란 사용자도 세월호 리본과 노무현 [2]
    만남의광장(aerohong) | 22.04.17
    추천 0
  • 프붕이 프로그래머스 1단계 다 풀었는데 고민좀 [4]
    익명(118.216) | 22.04.17
    추천 0
  • 오픈소스 뿌리는 애들 상줘야함 ㅇㅇ [2]
    익명(59.11) | 22.04.17
    추천 0
  • re2002가 세월호 희생자 조롱 글 올렸다 [1]
    만남의광장(aerohong) | 22.04.17
    추천 0
  • 코드 해석좀해조
    익명(222.237) | 22.04.17
    추천 0
목록으로
읽기 전용 미러