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

Unified Diff: tools/telemetry/telemetry/core/heap/live_heap_object.py

Issue 24076016: Add JS heap snapshotting functionality to Telemetry (part 2) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Code review (nduca) Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/core/heap/live_heap_object.py
diff --git a/tools/telemetry/telemetry/core/heap/live_heap_object.py b/tools/telemetry/telemetry/core/heap/live_heap_object.py
new file mode 100644
index 0000000000000000000000000000000000000000..c8be3df69bd61d76e7bf9d6daff48536f8db1596
--- /dev/null
+++ b/tools/telemetry/telemetry/core/heap/live_heap_object.py
@@ -0,0 +1,57 @@
+# Copyright 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+class LiveHeapObject(object):
+ """Data structure for representing an object in the heap snapshot.
+
+ Attributes:
+ object_id: int, identifier for the object.
+ type_string: str, describes the type of the node.
+ class_name: str, describes the class of the JavaScript object
+ represented by this LiveHeapObject.
+ edges_to: [RetainingEdge], edges whose end point this LiveHeapObject is.
+ edges_from: [RetainingEdge], edges whose start point this LiveHeapObject is.
+ string: str, for string LiveHeapObjects, contains the string the
+ LiveHeapObject represents. Empty string for LiveHeapObjects which are
+ not strings.
+ name: str, how to refer to this LiveHeapObject.
+ """
+
+ def __init__(self, object_id, type_string, class_name):
+ """Initializes the LiveHeapObject object.
+
+ Args:
+ object_id: int, identifier for the LiveHeapObject.
+ type_string: str, the type of the node.
+ class_name: str, the class of the object this LiveHeapObject represents.
+ """
+ self.object_id = object_id
+ self.type_string = type_string
+ self.class_name = class_name
+ self.edges_to = []
+ self.edges_from = []
+ self.string = ''
+ self.name = ''
+
+ def AddEdgeTo(self, edge):
+ """Associates an Edge with the LiveHeapObject (the end point).
+
+ Args:
+ edge: Edge, an edge whose end point this LiveHeapObject is.
+ """
+ self.edges_to.append(edge)
+
+ def AddEdgeFrom(self, edge):
+ """Associates an Edge with the LiveHeapObject (the start point).
+
+ Args:
+ edge: Edge, an edge whose start point this LiveHeapObject is.
+ """
+ self.edges_from.append(edge)
+
+ def __str__(self):
+ prefix = 'LiveHeapObject(' + str(self.object_id) + ' '
+ if self.type_string == 'object':
+ return prefix + self.class_name + ')'
+ return prefix + self.type_string + ')'

Powered by Google App Engine
This is Rietveld 408576698