2013-06-07 2 views
6

Если я делаю два HTTP-запроса на один и тот же URL-адрес, один с HttpClient, а другой с Volley, запросы Volley занимают гораздо больше времени.Volley: http-запросы slow

Например, в моей тестовой среде:

  • использованием HttpClient непосредственно запросить google.com в среднем около 250мс
  • с помощью Volley запросить google.com в среднем около 750 мс

вот свалка образца образца Волейбольная просьба:

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 

как можно см. узкое место в фактическом HTTP-запросе. Почему это так медленнее?

ответ

1

Похож, что волейбол кэширует ваш ответ. Использование HttpClient напрямую не кэширует ничего.

+4

Конечно, кеширование должно сделать Volley быстрее не медленнее. – Intrications

+1

Это медленнее только в первый раз. Затем повторные попытки будут использовать ответ из кеша, а не инициировать другую транзакцию http. –

+3

В журнале Volley показано, что ответ на кеш не используется повторно (с истечением кеша-истек), и для проверки этого требуется всего около 7 мс. Но фактический запрос HTTP занимает 722мс. Запись кеша занимает 16 мс. Поэтому я не думаю, что проблема кэширования. – Intrications