Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(583)

Side by Side Diff: tools/android/loading/loading_trace.py

Issue 1848203003: clovis: Add a method to slim a trace by dropping large objects. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2016 The Chromium Authors. All rights reserved. 1 # Copyright (c) 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 """Represents the trace of a page load.""" 5 """Represents the trace of a page load."""
6 6
7 import json 7 import json
8 8
9 import devtools_monitor 9 import devtools_monitor
10 import page_track 10 import page_track
(...skipping 16 matching lines...) Expand all
27 url: (str) URL that has been loaded 27 url: (str) URL that has been loaded
28 metadata: (dict) Metadata associated with the load. 28 metadata: (dict) Metadata associated with the load.
29 page: (PageTrack) instance of PageTrack. 29 page: (PageTrack) instance of PageTrack.
30 request: (RequestTrack) instance of RequestTrack. 30 request: (RequestTrack) instance of RequestTrack.
31 tracing_track: (TracingTrack) instance of TracingTrack. 31 tracing_track: (TracingTrack) instance of TracingTrack.
32 """ 32 """
33 self.url = url 33 self.url = url
34 self.metadata = metadata 34 self.metadata = metadata
35 self.page_track = page 35 self.page_track = page
36 self.request_track = request 36 self.request_track = request
37 self.tracing_track = tracing_track 37 self._tracing_track = tracing_track
38 self._tracing_json_str = None
38 39
39 def ToJsonDict(self): 40 def ToJsonDict(self):
40 """Returns a dictionary representing this instance.""" 41 """Returns a dictionary representing this instance."""
41 result = {self._URL_KEY: self.url, self._METADATA_KEY: self.metadata, 42 result = {self._URL_KEY: self.url, self._METADATA_KEY: self.metadata,
42 self._PAGE_KEY: self.page_track.ToJsonDict(), 43 self._PAGE_KEY: self.page_track.ToJsonDict(),
43 self._REQUEST_KEY: self.request_track.ToJsonDict(), 44 self._REQUEST_KEY: self.request_track.ToJsonDict(),
44 self._TRACING_KEY: self.tracing_track.ToJsonDict()} 45 self._TRACING_KEY: self.tracing_track.ToJsonDict()}
45 return result 46 return result
46 47
47 def ToJsonFile(self, json_path): 48 def ToJsonFile(self, json_path):
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 LoadingTrace instance. 88 LoadingTrace instance.
88 """ 89 """
89 page = page_track.PageTrack(connection) 90 page = page_track.PageTrack(connection)
90 request = request_track.RequestTrack(connection) 91 request = request_track.RequestTrack(connection)
91 trace = tracing.TracingTrack( 92 trace = tracing.TracingTrack(
92 connection, 93 connection,
93 categories=(tracing.DEFAULT_CATEGORIES if categories is None 94 categories=(tracing.DEFAULT_CATEGORIES if categories is None
94 else categories)) 95 else categories))
95 connection.MonitorUrl(url, timeout_seconds=timeout_seconds) 96 connection.MonitorUrl(url, timeout_seconds=timeout_seconds)
96 return cls(url, chrome_metadata, page, request, trace) 97 return cls(url, chrome_metadata, page, request, trace)
98
99 @property
100 def tracing_track(self):
101 if not self._tracing_track:
102 self._RestoreTracingTrack()
103 return self._tracing_track
104
105 def Slim(self):
106 """Slims the memory usage of a trace by dropping the TraceEvents from it.
107
108 The tracing track is restored on-demand when accessed.
109 """
110 self._tracing_json_str = json.dumps(self._tracing_track.ToJsonDict())
111 self._tracing_track = None
112
113 def _RestoreTracingTrack(self):
114 assert self._tracing_json_str
115 self._tracing_track = tracing.TracingTrack.FromJsonDict(
116 json.loads(self._tracing_json_str))
117 self._tracing_json_str = None
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698