2016-08-06 12 views
1

각 프로그램에 대해 'BufferedInputStream'클래스의 버퍼 크기가 어떻게 결정되는지 궁금했습니다. STACKOVERFLOW에서 기본 버퍼 크기가 8KB라는 것을 알았습니다.'BufferedInputStream'의 기본 버퍼 크기 (8KB)의 의미? (JAVA)

기본 버퍼 크기가 인 'BufferInputStream'클래스의 의미가 깊은 지 궁금합니다. 크기는 8KB입니다.

'BufferedInputStream'클래스에 대한 정보를 java 문서에서 검색했을 때 클래스의 두 가지 생성자가 있다는 것을 알게되었습니다. 하나의 생성자 양식은 사용자에게 버퍼 크기를 변경할 수있는 기능을 제공합니다.

BufferedInputStream을 (에서의 InputStream, INT 크기)

  1. 이 클래스의 버퍼 크기는 일부 프로그램의 성능을 결정하는데 중요 할 수 있을까요? 누군가가 위의 형식의 생성자를 사용하여 버퍼 크기를 변경하여 프로그램을 최적화/최적화하면 궁금합니다.
  2. 기본 버퍼 크기 8KB에 중대한 의미가 있습니까?

읽어 주셔서 감사합니다.

답변

1

일부 프로그램의 성능을 결정할 때이 클래스의 버퍼 크기가 중요 할 수 있습니까? 누군가가 위의 형식의 생성자를 사용하여 버퍼 크기를 변경하여 프로그램을 최적화/최적화하면 궁금합니다.

아마도 그렇지 않습니다. 버퍼 크기를 1에서 2로 변경하면 성능이 시스템 호출을 줄임으로써 두 배가됩니다. 2에서 4로 변경하면 다시 배가됩니다. 다시 4에서 8로 변경. 당신은 아이디어를 얻습니다. 성능이 시스템 호출에 의해 지배되지 않고 전송 크기에 의해 지배되기 시작하면서 어느 시점에서 이것은 사실이 아닙니다. 8k는 멈출 수있는 좋은 장소입니다. 원한다면 더 많이 사용하십시오. 그러나 많은 차이를 느끼지 못할 것입니다.

기본 버퍼 크기 8KB에는 어떤 중요한 의미가 있습니까?

없습니다. 크기는 8k입니다. 기본적으로. 그것이 의미입니다. 생성자를 통해 변경할 수 있습니다. 그 이상은 없습니다.

+0

8KB에는 _profound 의미가 있습니다. : NTFS의 기본 및 권장 블록 크기는 4KB이며, Linux에서도 기본값입니다. 8KB는 두 배입니다. 효율적이기 위해서는 블록 크기의 배수를 선택하는 것이 좋습니다. – destan