Ответ 1
Mac OS X Tiger 10.7.0, по умолчанию, предоставленная Apple VM:
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode)
Тогда:
1.6.0_26
8192
Я занимался некоторыми исследованиями для публикации в блоге относительно java.io.BufferedInputStream
и буферов. По-видимому, на протяжении многих лет значение по умолчанию выросло с минимальных 512 байт до 8192 байта (предположительно) реализации Sun Java 7 и даже было явно указано в JavaDocs в JDK 1.1.8. Мой вопрос также затронул вопросы кто/что определяет, что должно быть по умолчанию - не так, как я ожидал, как черный-n-белый.
Мне интересно, как , какой размер буфера по умолчанию был в каждой версии версии, и что это может быть в других, экзотических JVM. До сих пор я отслеживал это с помощью исходного кода, JavaDocs или отчетов об ошибках Sun для 1.0, 1.1, 1.4, Java 5, Java 6 и (предположительно снова) Sun Java 7 JVM.
То, что я не смог включить, это значение для
Итак, мне было интересно, , что эти значения и где я могу найти ссылку на них?
Или это означает, что если какие-либо 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;
}
}
Mac OS X Tiger 10.7.0, по умолчанию, предоставленная Apple VM:
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode)
Тогда:
1.6.0_26
8192
Система:
Linux wart 2.6.33-rc1-00225-gc9f937e #2 Wed Dec 23 17:55:01 UTC 2009 armv5tel GNU/Linux
OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu10)
OpenJDK Core VM (build 14.0-b08, interpreted mode)
Результат вашей программы:
1.6.0_0
8192
Я не уверен, что вы надеетесь извлечь из этого, но поскольку у меня это передо мной... win32 IBM 1.4.2 JRE использует размер буфера 2048
.
Запустите с моего IntelliJ в Windows 7:
Вывод:
1.8.0_121
8192