Ich erstelle eine kleine App, um zu messen, wie lange ein HTML-Dokument zum Laden braucht, und überprüft jede x Anzahl von Sekunden.Verwenden von Jsoup connect() in einer Schleife. Die erste Anfrage ist immer viel langsamer als alle anderen folgenden
Ich verwende in einer Schleife jsoup:
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);
}
Das Problem, das ich habe, ist, dass die erste Ausführung der jsoup Verbindung ist immer langsamer als alle einmal nachfolgende, egal welche Website.
Hier ist meine Ausgabe auf 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
Hier ist, was ich bekommen auf 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
Warum ist es immer schneller nach dem ersten verbinden? Gibt es eine bessere Möglichkeit, die Ladegeschwindigkeit des Dokuments zu ermitteln?
Vielleicht hilft: http://stackoverflow.com/questions/16994628/jsoup-seems-to- be-caching-can-i-disable-this – acdhirr