OLD | NEW |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Descriptive metrics for Clovis. | 5 """Descriptive metrics for Clovis. |
6 | 6 |
7 When executed as a script, prints the amount of data attributed to Ads, and | 7 When executed as a script, prints the amount of data attributed to Ads, and |
8 shows a graph of the amount of data to download for a new visit to the same | 8 shows a graph of the amount of data to download for a new visit to the same |
9 page, with a given time interval. | 9 page, with a given time interval. |
10 """ | 10 """ |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 Returns: | 99 Returns: |
100 (uploaded_bytes (int), downloaded_bytes (int)) | 100 (uploaded_bytes (int), downloaded_bytes (int)) |
101 """ | 101 """ |
102 content_lens = ( | 102 content_lens = ( |
103 content_classification_lens.ContentClassificationLens.WithRulesFiles( | 103 content_classification_lens.ContentClassificationLens.WithRulesFiles( |
104 trace, ad_rules_filename, tracking_rules_filename)) | 104 trace, ad_rules_filename, tracking_rules_filename)) |
105 requests = content_lens.AdAndTrackingRequests() | 105 requests = content_lens.AdAndTrackingRequests() |
106 return TransferSize(requests) | 106 return TransferSize(requests) |
107 | 107 |
108 | 108 |
| 109 def DnsRequestsAndCost(trace): |
| 110 """Returns the number and cost of DNS requests for a trace.""" |
| 111 requests = trace.request_track.GetEvents() |
| 112 requests_with_dns = [r for r in requests if r.timing.dns_start != -1] |
| 113 dns_requests_count = len(requests_with_dns) |
| 114 dns_cost = sum(r.timing.dns_end - r.timing.dns_start |
| 115 for r in requests_with_dns) |
| 116 return (dns_requests_count, dns_cost) |
| 117 |
| 118 |
109 def PlotTransferSizeVsTimeBetweenVisits(trace): | 119 def PlotTransferSizeVsTimeBetweenVisits(trace): |
110 times = [10, 60, 300, 600, 3600, 4 * 3600, 12 * 3600, 24 * 3600] | 120 times = [10, 60, 300, 600, 3600, 4 * 3600, 12 * 3600, 24 * 3600] |
111 labels = ['10s', '1m', '10m', '1h', '4h', '12h', '1d'] | 121 labels = ['10s', '1m', '10m', '1h', '4h', '12h', '1d'] |
112 (_, total_downloaded) = TotalTransferSize(trace) | 122 (_, total_downloaded) = TotalTransferSize(trace) |
113 downloaded = [TransferredDataRevisit(trace, delta_t)[1] for delta_t in times] | 123 downloaded = [TransferredDataRevisit(trace, delta_t)[1] for delta_t in times] |
114 plt.figure() | 124 plt.figure() |
115 plt.title('Amount of data to download for a revisit - %s' % trace.url) | 125 plt.title('Amount of data to download for a revisit - %s' % trace.url) |
116 plt.xlabel('Time between visits (log)') | 126 plt.xlabel('Time between visits (log)') |
117 plt.ylabel('Amount of data (bytes)') | 127 plt.ylabel('Amount of data (bytes)') |
118 plt.plot(times, downloaded, 'k+--') | 128 plt.plot(times, downloaded, 'k+--') |
(...skipping 17 matching lines...) Expand all Loading... |
136 if __name__ == '__main__': | 146 if __name__ == '__main__': |
137 import sys | 147 import sys |
138 from matplotlib import pylab as plt | 148 from matplotlib import pylab as plt |
139 import loading_trace | 149 import loading_trace |
140 if len(sys.argv) != 4: | 150 if len(sys.argv) != 4: |
141 print ( | 151 print ( |
142 'Usage: %s trace_filename ad_rules_filename tracking_rules_filename' | 152 'Usage: %s trace_filename ad_rules_filename tracking_rules_filename' |
143 % sys.argv[0]) | 153 % sys.argv[0]) |
144 sys.exit(0) | 154 sys.exit(0) |
145 main(*sys.argv[1:]) | 155 main(*sys.argv[1:]) |
OLD | NEW |