OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file | 3 // BSD-style license that can be found in the LICENSE file |
4 | 4 |
5 part of models; | 5 part of models; |
6 | 6 |
7 enum ProfileTreeDirection { | 7 enum ProfileTreeDirection { |
8 inclusive, | 8 inclusive, |
9 exclusive | 9 exclusive |
10 } | 10 } |
11 | 11 |
12 abstract class SampleProfile { | 12 abstract class SampleProfile { |
13 int get sampleCount; | 13 int get sampleCount; |
14 int get stackDepth; | 14 int get stackDepth; |
15 double get sampleRate; | 15 double get sampleRate; |
16 double get timeSpan; | 16 double get timeSpan; |
| 17 Iterable<ProfileCode> get codes; |
| 18 Iterable<ProfileFunction> get functions; |
17 | 19 |
18 FunctionCallTree loadFunctionTree(ProfileTreeDirection direction); | 20 FunctionCallTree loadFunctionTree(ProfileTreeDirection direction); |
19 CodeCallTree loadCodeTree(ProfileTreeDirection direction); | 21 CodeCallTree loadCodeTree(ProfileTreeDirection direction); |
20 } | 22 } |
21 | 23 |
22 abstract class Profile { | 24 abstract class Profile { |
23 double get normalizedExclusiveTicks; | 25 double get normalizedExclusiveTicks; |
24 double get normalizedInclusiveTicks; | 26 double get normalizedInclusiveTicks; |
25 } | 27 } |
26 | 28 |
27 abstract class ProfileCode extends Profile { | 29 abstract class ProfileCode extends Profile { |
28 CodeRef get code; | 30 CodeRef get code; |
| 31 Map<ProfileCode, int> get callers; |
| 32 Map<ProfileCode, int> get callees; |
29 } | 33 } |
30 | 34 |
31 abstract class ProfileFunction extends Profile { | 35 abstract class ProfileFunction extends Profile { |
32 FunctionRef get function; | 36 FunctionRef get function; |
| 37 Map<ProfileFunction, int> get callers; |
| 38 Map<ProfileFunction, int> get callees; |
33 } | 39 } |
34 | 40 |
35 typedef bool CallTreeNodeFilter(CallTreeNode); | 41 typedef bool CallTreeNodeFilter(CallTreeNode); |
36 | 42 |
37 abstract class CallTree { | 43 abstract class CallTree { |
38 CallTree filtered(CallTreeNodeFilter filter); | 44 CallTree filtered(CallTreeNodeFilter filter); |
39 } | 45 } |
40 | 46 |
41 abstract class CodeCallTree extends CallTree { | 47 abstract class CodeCallTree extends CallTree { |
42 CodeCallTreeNode get root; | 48 CodeCallTreeNode get root; |
(...skipping 12 matching lines...) Expand all Loading... |
55 | 61 |
56 abstract class CodeCallTreeNode extends CallTreeNode { | 62 abstract class CodeCallTreeNode extends CallTreeNode { |
57 ProfileCode get profileCode; | 63 ProfileCode get profileCode; |
58 Iterable<CodeCallTreeNode> get children; | 64 Iterable<CodeCallTreeNode> get children; |
59 } | 65 } |
60 | 66 |
61 abstract class FunctionCallTreeNode extends CallTreeNode { | 67 abstract class FunctionCallTreeNode extends CallTreeNode { |
62 ProfileFunction get profileFunction; | 68 ProfileFunction get profileFunction; |
63 Iterable<FunctionCallTreeNode> get children; | 69 Iterable<FunctionCallTreeNode> get children; |
64 } | 70 } |
OLD | NEW |