Я профилировал свой код, загружающий двоичный файл. Время загрузки было около 15 секунд.
Большую часть моего времени загрузки приходилось на методы, загружающие двоичные данные.
У меня был следующий код для создания моего DataInputStream:
is = new DataInputStream(
new GZIPInputStream(
new FileInputStream("file.bin")));
И я изменил его на этот:
is = new DataInputStream(
new BufferedInputStream(
new GZIPInputStream(
new FileInputStream("file.bin"))));
Итак, после того, как я сделал эту небольшую модификацию, код загрузки изменился с 15 секунд до 4.
Но потом я обнаружил, что BufferedInputStream имеет два конструктора. Другой конструктор позволяет вам явно определять размер буфера.
У меня два вопроса: