Index: tools/android/loading/sandwich_prefetch.py |
diff --git a/tools/android/loading/sandwich_prefetch.py b/tools/android/loading/sandwich_prefetch.py |
index 456c697b247b0be1bae2171c030e77d5caaec02f..22c9b0044b00f85ba9084d5462b09af9e66898f0 100644 |
--- a/tools/android/loading/sandwich_prefetch.py |
+++ b/tools/android/loading/sandwich_prefetch.py |
@@ -414,16 +414,14 @@ def _ProcessRunOutputDir( |
run_output_verifier.VerifyTrace(trace) |
logging.info('extracting metrics from trace: %s', trace_path) |
- served_from_network_bytes = 0 |
- served_from_cache_bytes = 0 |
- urls_hitting_network = set() |
+ |
+ # Gather response size per URLs. |
response_sizes = {} |
for request in sandwich_utils.FilterOutDataAndIncompleteRequests( |
trace.request_track.GetEvents()): |
# Ignore requests served from the blink's cache. |
if request.served_from_cache: |
continue |
- urls_hitting_network.add(request.url) |
if request.from_disk_cache: |
if request.url in cached_encoded_data_lengths: |
response_size = cached_encoded_data_lengths[request.url] |
@@ -433,13 +431,27 @@ def _ProcessRunOutputDir( |
# load. |
logging.warning('Looks like could be served from memory cache: %s', |
request.url) |
- response_size = response_sizes[request.url] |
- served_from_cache_bytes += response_size |
+ if request.url in response_sizes: |
+ response_size = response_sizes[request.url] |
else: |
response_size = request.GetResponseTransportLength() |
- served_from_network_bytes += response_size |
response_sizes[request.url] = response_size |
+ # Sums the served from cache/network bytes. |
+ served_from_network_bytes = 0 |
+ served_from_cache_bytes = 0 |
+ urls_hitting_network = set() |
+ for request in sandwich_utils.FilterOutDataAndIncompleteRequests( |
+ trace.request_track.GetEvents()): |
+ # Ignore requests served from the blink's cache. |
+ if request.served_from_cache: |
+ continue |
+ urls_hitting_network.add(request.url) |
+ if request.from_disk_cache: |
+ served_from_cache_bytes += response_sizes[request.url] |
+ else: |
+ served_from_network_bytes += response_sizes[request.url] |
+ |
# Make sure the served from blink's cache requests have at least one |
# corresponding request that was not served from the blink's cache. |
for request in sandwich_utils.FilterOutDataAndIncompleteRequests( |