| 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 """Models the effect of prefetching resources from a loading trace. | 5 """Models the effect of prefetching resources from a loading trace. |
| 6 | 6 |
| 7 For example, this can be used to evaluate NoState Prefetch | 7 For example, this can be used to evaluate NoState Prefetch |
| 8 (https://goo.gl/B3nRUR). | 8 (https://goo.gl/B3nRUR). |
| 9 | 9 |
| 10 When executed as a script, takes a trace as a command-line arguments and shows | 10 When executed as a script, takes a trace as a command-line arguments and shows |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 | 45 |
| 46 | 46 |
| 47 class PrefetchSimulationView(object): | 47 class PrefetchSimulationView(object): |
| 48 """Simulates the effect of prefetch.""" | 48 """Simulates the effect of prefetch.""" |
| 49 def __init__(self, trace, dependencies_lens, user_lens): | 49 def __init__(self, trace, dependencies_lens, user_lens): |
| 50 self.postload_msec = None | 50 self.postload_msec = None |
| 51 self.graph = None | 51 self.graph = None |
| 52 if trace is None: | 52 if trace is None: |
| 53 return | 53 return |
| 54 requests = trace.request_track.GetEvents() | 54 requests = trace.request_track.GetEvents() |
| 55 critical_requests_ids = user_lens.CriticalRequests() | 55 critical_requests_ids = user_lens.CriticalRequestIds() |
| 56 self.postload_msec = user_lens.PostloadTimeMsec() | 56 self.postload_msec = user_lens.PostloadTimeMsec() |
| 57 self.graph = dependency_graph.RequestDependencyGraph( | 57 self.graph = dependency_graph.RequestDependencyGraph( |
| 58 requests, dependencies_lens, node_class=RequestNode) | 58 requests, dependencies_lens, node_class=RequestNode) |
| 59 preloaded_requests = [r.request_id for r in self.PreloadedRequests( | 59 preloaded_requests = [r.request_id for r in self.PreloadedRequests( |
| 60 requests[0], dependencies_lens, trace)] | 60 requests[0], dependencies_lens, trace)] |
| 61 self._AnnotateNodes(self.graph.graph.Nodes(), preloaded_requests, | 61 self._AnnotateNodes(self.graph.graph.Nodes(), preloaded_requests, |
| 62 critical_requests_ids) | 62 critical_requests_ids) |
| 63 | 63 |
| 64 def Cost(self): | 64 def Cost(self): |
| 65 """Returns the cost of the graph, restricted to the critical requests.""" | 65 """Returns the cost of the graph, restricted to the critical requests.""" |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 def main(filename): | 182 def main(filename): |
| 183 trace = loading_trace.LoadingTrace.FromJsonFile(filename) | 183 trace = loading_trace.LoadingTrace.FromJsonFile(filename) |
| 184 dependencies_lens = request_dependencies_lens.RequestDependencyLens(trace) | 184 dependencies_lens = request_dependencies_lens.RequestDependencyLens(trace) |
| 185 user_lens = user_satisfied_lens.FirstContentfulPaintLens(trace) | 185 user_lens = user_satisfied_lens.FirstContentfulPaintLens(trace) |
| 186 _PrintSumamry(trace, dependencies_lens, user_lens) | 186 _PrintSumamry(trace, dependencies_lens, user_lens) |
| 187 | 187 |
| 188 | 188 |
| 189 if __name__ == '__main__': | 189 if __name__ == '__main__': |
| 190 import sys | 190 import sys |
| 191 main(sys.argv[1]) | 191 main(sys.argv[1]) |
| OLD | NEW |