Escribí Java Downloader y tengo algunos problemas con la velocidad.Por qué la velocidad de descarga de archivos usando Java es tan baja
Al principio, la velocidad está bien, al igual que cuando uso mi navegador para descargar este archivo. Pero después de un tiempo, la velocidad disminuye mucho y cambia cada dos segundos: de 42 kb/s a 64 kb/s y de 64 kb/s a 42 kb/s.
Mi código:
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);
}
¿Qué debo hacer para maximalise velocidad de descarga?
ACTUALIZACIÓN
Los tamaños de los archivos son diferentes de 1 a alrededor de 100 MB. Aumenté el buffer a 65536 para que sea el mismo.
sobre la medición: puedo comprobar cada 3 segundos la cantidad de bytes que estaba escrito, y luego se divide por 3 y por 1024 - me da kb/s
¿Cómo mide su velocidad de descarga? ¿Y cuál es la velocidad que estás esperando? – coobird
¿Qué tan grande es su archivo? –
Eso significa medir los sonidos, ya que se basa en el sistema de archivos que informa en tiempo real * exactamente * cuántos bytes se han escrito en el archivo, p. Ej. en respuesta a un comando 'ls' o' dir'. Me decantaría por un enfoque más directo solo para eliminar las incertidumbres y agregar instrumentos al código. –