2013-06-07 38 views
6

Aynı URL'ye, yalnızca HttpClient ve diğeri Voleybolu olan iki HTTP isteği oluşturursam, Volley istekleri çok daha uzun sürüyor.Volley: http istekleri yavaş

Örneğin benim test ortamında:

  • doğrudan yaklaşık 250ms
  • yaklaşık 750ms burada

bir var google.com ortalamalarını istemek için Voleybolu kullanarak google.com ortalamalarını istemek için HttpClient kullanarak Bir örnek Volley isteği log dosyası:

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 

bakın, darboğaz gerçek HTTP isteğidir. Neden bu kadar yavaş?

cevap

1

Volley yanıtınızı önbelleğe alıyor gibi görünüyor. HttpClient'i doğrudan kullanmak hiçbir şeyi önbelleğe almaz.

+4

Kesinlikle önbelleğe almayı Volley daha hızlı yapmamalı. – Intrications

+1

Sadece ilk kez daha yavaş. Sonraki yeniden denemeler, başka bir http işlemini başlatmak yerine önbellekten yanıt kullanacaktır. –

+3

Volley günlüğünde, önbellek yanıtının yeniden kullanılmadığını (önbellek vurma süresi doldu) ve bunu kontrol etmek yaklaşık 7 ms sürdüğünü gösterir. Ancak asıl http isteği 722 ms alır. Önbelleğin yazılması 16 ms alır. Yani önbelleğe almanın problem olduğunu düşünmüyorum. – Intrications