Я провел небольшое исследование для сообщения в блоге о java.io.BufferedInputStream
и буферах. Судя по всему, за эти годы значение по умолчанию выросло с ничтожных 512 байт до 8192 байт в (предположительно) реализации Sun Java 7 и даже было явно указано в JavaDocs в JDK 1.1.8 . Мой вопрос также вызвал вопросы кто/что решает, каким должно быть значение по умолчанию -- оно не такое черно-белое, как я ожидал.
Мне любопытно, какой размер буфера по умолчанию был в каждой версии и каким он может быть в других экзотических JVM. До сих пор я отслеживал это с помощью исходного кода, JavaDocs или отчетов об ошибках Sun для 1.0, 1.1, 1.4, Java 5, Java 6 и (опять же предположительно) Sun Java 7 JVM.
Что мне не удалось найти, так это значение для
- Реализация JVM в Sun JDK 1.2
- Реализация Sun JDK 1.3
- Значение любой другой реализации (например, IBM или что-то еще)
Итак, мне было интересно, что это за значения и где я могу найти ссылку на них?
Или, если бы кто-то из SOpedians мог иметь доступ к одной из этих установок. Если да, не могли бы вы скомпилировать и запустить приведенный ниже код, а затем сообщить об этом здесь? Или вы знаете о
import java.io.BufferedInputStream;
import java.io.InputStream;
public class BufferSizeDetector extends BufferedInputStream {
public static void main(String[] args) {
BufferSizeDetector bsd = new BufferSizeDetector(null);
System.err.println(System.getProperty("java.version"));
System.err.println(bsd.getBufferSize());
}
public BufferSizeDetector(InputStream in) {
super(in);
}
public int getBufferSize() {
return super.buf.length;
}
}