Я написал простой Java Downloader, и у меня возникли проблемы со скоростью.
Сначала скорость в порядке - точно так же, как когда я использую свой браузер для загрузки этого файла . Но через некоторое время скорость сильно снижается и меняется каждые две секунды - с 42 кб / с до 64 кб / с и с 64 кб / с до 42 кб / с.
Мой код:
InputStream is = null;
FileOutputStream os = null;
os = new FileOutputStream(...);
URL u = new URL(...);
URLConnection uc = u.openConnection();
is = uc.getInputStream();
final byte[] buf = new byte[1024];
for(int count = is.read(buf);count != -1;count = is.read(buf)) {
os.write(buf, 0, count);
}
Что мне делать, чтобы максимизировать скорость загрузки ?
ОБНОВЛЕНИЕ
Размеры файлов варьируются от 1 до примерно 100 МБ. Я увеличил буфер до 65536.
По поводу измерения: каждые 3 секунды я проверяю, сколько байтов было записано, а затем делю его на 3 и 1024 - это дает мне кбит / с