2016-08-06 2 views
1

Мне было любопытно, как определяется размер буфера класса BufferedInputStream для каждой программы. Я узнал в STACKOVERFLOW, что размер буфера по умолчанию - 8 КБ.Значение размера буфера по умолчанию (8KB) ​​в 'BufferedInputStream'? (JAVA)

Интересно, имеет ли смысл размер буфера по умолчанию класс «BufferInputStream», размер которого составляет 8 КБ.

Когда я искал java-документы для получения информации о классе «BufferedInputStream», Я узнал, что для класса существуют две формы конструкторов. Одна форма конструктора предлагает пользователям возможность изменять размер буфера.

BufferedInputStream (InputStream в, Int размер)

  1. Может размер буфера этого класса иметь решающее значение при принятии решения о производительности некоторых программ? Мне любопытно, если кто-либо использует вышеуказанную форму конструктора, чтобы изменить размер буфера, чтобы он соответствовал/оптимизировал его/ее программу.
  2. Есть ли какой-либо глубокий смысл для размера буфера по умолчанию 8 КБ?

Благодарим за понимание.

ответ

1

Может ли размер буфера этого класса иметь решающее значение при определении производительности некоторых программ? Мне любопытно, если кто-либо использует вышеуказанную форму конструктора, чтобы изменить размер буфера, чтобы он соответствовал/оптимизировал его/ее программу.

Возможно, нет. Изменение размера буфера от 1 до 2 приведет к удвоению вашей производительности (путем сокращения системных вызовов). Изменение с 2 на 4 удвоит его снова. С 4 до 8 снова. Вы поняли эту идею. В какой-то момент это перестает быть истинным, поскольку производительность перестает доминировать в системных вызовах и начинает доминировать в размерах передачи. 8k - прекрасное место для остановки. Используйте больше, если хотите, но вы не заметите большой разницы.

Есть ли какое-либо глубокое значение для размера буфера по умолчанию 8 КБ?

Нет. Это 8k в размере. По умолчанию. В этом смысл. Вы можете изменить его с помощью конструктора. Ничего больше.

+0

есть _profound смысл_ в 8KB: 4KB является по умолчанию и рекомендуется размер блока для NTFS, он также по умолчанию с Linux. 8 КБ - вдвое больше. вам лучше выбрать кратное размеру вашего блока, чтобы быть эффективным. – destan

Смежные вопросы