6
Wenn ich zwei HTTP-Anfragen an die gleiche URL, eine mit nur HttpClient und die andere mit Volley, die Volley Anfragen dauert viel länger.Volley: http Anfragen langsam
Zum Beispiel in meiner Testumgebung:
- mit Httpclient direkt google.com mittelt verlangen etwa 250ms
- Volley mit google.com mittelt anfordern 750ms über
hier ein Log Dump einer Probe Volley Anfrage:
11:44:14.766: D/Volley(863): [1] MarkerLog.finish: (773 ms) [ ] http://google.com 0xa46e044c NORMAL 1
11:44:14.766: D/Volley(863): [1] MarkerLog.finish: (+0 ) [ 1] add-to-queue
11:44:14.786: D/Volley(863): [1] MarkerLog.finish: (+0 ) [93] cache-queue-take
11:44:14.786: D/Volley(863): [1] MarkerLog.finish: (+7 ) [93] cache-hit-expired
11:44:14.796: D/Volley(863): [1] MarkerLog.finish: (+1 ) [97] network-queue-take
11:44:14.806: D/Volley(863): [1] MarkerLog.finish: (+722) [97] network-http-complete
11:44:14.806: D/Volley(863): [1] MarkerLog.finish: (+20 ) [97] network-parse-complete
11:44:14.816: D/Volley(863): [1] MarkerLog.finish: (+16 ) [97] network-cache-written
11:44:14.826: D/Volley(863): [1] MarkerLog.finish: (+0 ) [97] post-response
11:44:14.836: D/Volley(863): [1] MarkerLog.finish: (+7 ) [ 1] done
wie Sie können sehen Sie, der Flaschenhals ist in der tatsächlichen HTTP-Anfrage. Warum ist es so viel langsamer?
Sicherlich Caching sollte Volley schneller nicht langsamer machen. – Intrications
Es ist nur zum ersten Mal langsamer. Bei den nächsten Versuchen wird die Antwort vom Cache verwendet, anstatt eine weitere HTTP-Transaktion zu initiieren. –
Im Volley-Protokoll zeigt es, dass die Cache-Antwort nicht wiederverwendet wird (Cache-Hit-abgelaufen) und es dauert nur ca. 7ms, um dies zu überprüfen. Aber die tatsächliche HTTP-Anfrage dauert 722ms. Das Schreiben des Caches dauert 16ms. Ich denke also nicht, dass Caching das Problem ist. – Intrications