Sto creando una piccola app per misurare quanto tempo occorre caricare un documento HTML, controllando ogni x numero di secondi.Utilizzo di Jsoup connect() in un ciclo. La prima richiesta è sempre molto più lenta di tutte le altre successive
sto usando jsoup in un ciclo:
Connection.Response response = null;
for (int i = 0; i < totalGets; i++) {
long startTime = System.currentTimeMillis();
try {
response = Jsoup.connect(url)
.userAgent(USER_AGENT) //just using a Firefox user-agent
.timeout(30_000)
.execute();
} catch (IOException e) {
if (e.getMessage().contains("connect timed out")) {
System.out.println("Request timed out after 30 seconds!");
}
}
long currentTime = System.currentTimeMillis();
System.out.println("Response time: " + (currentTime - startTime) + "ms" + "\tResponse code: " + response.statusCode());
sleep(2000);
}
Il problema che sto avendo è che proprio la prima esecuzione del collegamento jsoup è sempre più lenta di tutte le successive una volta, non importa quale sito web.
Qui è la mia uscita sul https://www.google.com
Response time: 934ms Response code: 200
Response time: 149ms Response code: 200
Response time: 122ms Response code: 200
Response time: 136ms Response code: 200
Response time: 128ms Response code: 200
Ecco quello che ottengo sul http://stackoverflow.com
Response time: 440ms Response code: 200
Response time: 182ms Response code: 200
Response time: 187ms Response code: 200
Response time: 193ms Response code: 200
Response time: 185ms Response code: 200
Perché è sempre più veloce dopo la prima connessione? C'è un modo migliore per determinare la velocità di caricamento del documento?
Forse questo aiuta: http://stackoverflow.com/questions/16994628/jsoup-seems-to- be-caching-can-i-disable-this – acdhirr