OLD | NEW |
1 <head> | 1 <head> |
| 2 <link rel="import" href="action_link.html"> |
2 <link rel="import" href="function_ref.html"> | 3 <link rel="import" href="function_ref.html"> |
3 <link rel="import" href="isolate_ref.html"> | 4 <link rel="import" href="isolate_ref.html"> |
4 <link rel="import" href="observatory_element.html"> | 5 <link rel="import" href="observatory_element.html"> |
5 <link rel="import" href="script_inset.html"> | 6 <link rel="import" href="script_inset.html"> |
6 <link rel="import" href="script_ref.html"> | 7 <link rel="import" href="script_ref.html"> |
7 </head> | 8 </head> |
8 <polymer-element name="isolate-summary" extends="observatory-element"> | 9 <polymer-element name="isolate-summary" extends="observatory-element"> |
9 <template> | 10 <template> |
10 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs
s"> | 11 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs
s"> |
11 <style> | |
12 .counters { | |
13 display: flex; | |
14 flex-direction: row; | |
15 justify-content: center; | |
16 } | |
17 .counter { | |
18 margin: 10px; | |
19 } | |
20 </style> | |
21 <div class="flex-row"> | 12 <div class="flex-row"> |
22 <div class="flex-item-fixed-1-12"><img src="packages/observatory/src/eleme
nts/img/isolate_icon.png"></div> | 13 <div class="flex-item-10-percent"> |
23 <div class="flex-item-fixed-1-12">{{ isolate.mainPort }}</div> | 14 <img src="packages/observatory/src/elements/img/isolate_icon.png"> |
24 <div class="flex-item-fixed-4-12"> | |
25 <div class="flex-row"> | |
26 <isolate-ref ref="{{ isolate }}"></isolate-ref> | |
27 </div> | |
28 <div class="flex-row"> | |
29 <small> | |
30 (<a href="{{ isolate.rootLib.hashLink }}">library</a>) | |
31 (<a href="{{ isolate.relativeHashLink('debug/breakpoints') }}">break
points</a>) | |
32 (<a href="{{ isolate.relativeHashLink('profile') }}">profile</a>) | |
33 </small> | |
34 </div> | |
35 </div> | 15 </div> |
36 | 16 <div class="flex-item-10-percent"> |
37 <div class="flex-item-fixed-2-12"> | 17 <isolate-ref ref="{{ isolate }}"></isolate-ref> |
38 <a href="{{ isolate.relativeHashLink('allocationprofile') }}"> | |
39 {{ isolate.newHeapUsed | formatSize }}/{{ isolate.oldHeapUsed | format
Size }} | |
40 </a> | |
41 ( <a href="{{ isolate.relativeHashLink('heapmap') }}">map</a> ) | |
42 </div> | 18 </div> |
43 <div class="flex-item-fixed-2-12"> | 19 <div class="flex-item-20-percent"> |
44 <template if="{{ isolate.topFrame == null }}"> | 20 <isolate-run-state isolate="{{ isolate }}"></isolate-run-state> |
45 idle | 21 </div> |
46 </template> | 22 <div class="flex-item-50-percent"> |
47 <template if="{{ isolate.topFrame != null }}"> | 23 <isolate-location isolate="{{ isolate }}"></isolate-location> |
48 run | 24 </div> |
49 </template> | 25 <div class="flex-item-10-percent"> |
50 ( <a href="{{ isolate.relativeHashLink('stacktrace') }}">stack trace</a>
) | |
51 </div> | 26 </div> |
52 </div> | 27 </div> |
53 | 28 |
54 <div class="counters"> | 29 <div class="flex-row"> |
55 <template repeat="{{ key in isolate.counters.keys }}"> | 30 <div class="flex-item-20-percent"></div> |
56 <div class="counter">{{ key }} ({{ isolate.counters[key] }})</div> | 31 <div class="flex-item-60-percent"> |
57 </template> | 32 <hr> |
| 33 </div> |
| 34 <div class="flex-item-20-percent"></div> |
58 </div> | 35 </div> |
59 | 36 |
60 <template if="{{ isolate.topFrame != null }}"> | 37 <isolate-shared-summary isolate="{{ isolate }}"></isolate-shared-summary> |
61 <script-inset script="{{ isolate.topFrame['script'] }}" | 38 |
62 pos="{{ isolate.topFrame['tokenPos'] }}"> | 39 </template> |
63 <function-ref ref="{{ isolate.topFrame['function'] }}"></function-ref> | 40 </polymer-element> |
| 41 |
| 42 <polymer-element name="isolate-run-state" extends="observatory-element"> |
| 43 <template> |
| 44 <template if="{{ isolate.pauseEvent != null }}"> |
| 45 <strong>paused</strong> |
| 46 <action-link callback="{{ resume }}" label="resume"></action-link> |
| 47 </template> |
| 48 |
| 49 <template if="{{ isolate.running }}"> |
| 50 <strong>running</strong> |
| 51 <action-link callback="{{ pause }}" label="pause"></action-link> |
| 52 </template> |
| 53 |
| 54 <template if="{{ isolate.idle }}"> |
| 55 <strong>idle</strong> |
| 56 </template> |
| 57 |
| 58 <template if="{{ isolate.loading }}"> |
| 59 <strong>loading...</strong> |
| 60 </template> |
| 61 </template> |
| 62 </polymer-element> |
| 63 |
| 64 <polymer-element name="isolate-location" extends="observatory-element"> |
| 65 <template> |
| 66 <template if="{{ isolate.pauseEvent != null }}"> |
| 67 <template if="{{ isolate.pauseEvent['eventType'] == 'IsolateCreated' }}"> |
| 68 at isolate start |
| 69 </template> |
| 70 <template if="{{ isolate.pauseEvent['eventType'] == 'IsolateShutdown' }}"> |
| 71 at isolate exit |
| 72 </template> |
| 73 <template if="{{ isolate.pauseEvent['eventType'] == 'IsolateInterrupted' }
}"> |
| 74 at |
| 75 <function-ref ref="{{ isolate.topFrame['function'] }}"> |
| 76 </function-ref> |
64 (<script-ref ref="{{ isolate.topFrame['script'] }}" | 77 (<script-ref ref="{{ isolate.topFrame['script'] }}" |
65 pos="{{ isolate.topFrame['tokenPos'] }}"></script-ref>) | 78 pos="{{ isolate.topFrame['tokenPos'] }}"></script-ref>) |
66 </script-inset> | 79 </template> |
| 80 <template if="{{ isolate.pauseEvent['eventType'] == 'BreakpointReached' }}
"> |
| 81 at breakpoint {{ isolate.pauseEvent['breakpoint']['id'] }} |
| 82 <function-ref ref="{{ isolate.topFrame['function'] }}"> |
| 83 </function-ref> |
| 84 (<script-ref ref="{{ isolate.topFrame['script'] }}" |
| 85 pos="{{ isolate.topFrame['tokenPos'] }}"></script-ref>) |
| 86 </template> |
67 </template> | 87 </template> |
| 88 |
| 89 <template if="{{ isolate.running }}"> |
| 90 at |
| 91 <function-ref ref="{{ isolate.topFrame['function'] }}"> |
| 92 </function-ref> |
| 93 (<script-ref ref="{{ isolate.topFrame['script'] }}" |
| 94 pos="{{ isolate.topFrame['tokenPos'] }}"></script-ref>) |
| 95 </template> |
| 96 |
68 </template> | 97 </template> |
69 <script type="application/dart" src="isolate_summary.dart"></script> | |
70 </polymer-element> | 98 </polymer-element> |
| 99 |
| 100 <polymer-element name="isolate-shared-summary" extends="observatory-element"> |
| 101 <template> |
| 102 <style> |
| 103 .errorBox { |
| 104 background-color: #f5f5f5; |
| 105 border: 1px solid #ccc; |
| 106 padding: 10px; |
| 107 font-family: consolas, courier, monospace; |
| 108 font-size: 1em; |
| 109 line-height: 1.2em; |
| 110 white-space: pre; |
| 111 } |
| 112 </style> |
| 113 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs
s"> |
| 114 <template if="{{ isolate.error != null }}"> |
| 115 <div class="content-centered"> |
| 116 <pre class="errorBox">{{ isolate.error.message }}</pre> |
| 117 <br> |
| 118 </div> |
| 119 </template> |
| 120 <div class="flex-row"> |
| 121 <div class="flex-item-10-percent"> |
| 122 </div> |
| 123 <div class="flex-item-40-percent"> |
| 124 <isolate-counter-chart counters="{{ isolate.counters }}"></isolate-count
er-chart> |
| 125 </div> |
| 126 <div class="flex-item-40-percent"> |
| 127 <div class="memberList"> |
| 128 <div class="memberItem"> |
| 129 <div class="memberName">new heap</div> |
| 130 <div class="memberValue"> |
| 131 {{ isolate.newHeapUsed | formatSize }} |
| 132 of |
| 133 {{ isolate.newHeapCapacity | formatSize }} |
| 134 </div> |
| 135 </div> |
| 136 <div class="memberItem"> |
| 137 <div class="memberName">old heap</div> |
| 138 <div class="memberValue"> |
| 139 {{ isolate.oldHeapUsed | formatSize }} |
| 140 of |
| 141 {{ isolate.oldHeapCapacity | formatSize }} |
| 142 </div> |
| 143 </div> |
| 144 </div> |
| 145 <br> |
| 146 <div class="memberItem"> |
| 147 <div class="memberValue"> |
| 148 See <a href="{{ isolate.relativeHashLink('stacktrace') }}">stack t
race</a> |
| 149 </div> |
| 150 </div> |
| 151 <div class="memberItem"> |
| 152 <div class="memberValue"> |
| 153 See <a href="{{ isolate.relativeHashLink('profile') }}">cpu profil
e</a> |
| 154 </div> |
| 155 </div> |
| 156 <div class="memberList"> |
| 157 <div class="memberItem"> |
| 158 <div class="memberValue"> |
| 159 See <a href="{{ isolate.relativeHashLink('allocationprofile') }}
">allocation profile</a> |
| 160 </div> |
| 161 </div> |
| 162 <div class="memberItem"> |
| 163 <div class="memberValue"> |
| 164 See <a href="{{ isolate.relativeHashLink('heapmap') }}">heap map
</a> |
| 165 </div> |
| 166 </div> |
| 167 </div> |
| 168 </div> |
| 169 <div class="flex-item-10-percent"> |
| 170 </div> |
| 171 </div> |
| 172 </template> |
| 173 </polymer-element> |
| 174 |
| 175 <polymer-element name="isolate-counter-chart" extends="observatory-element"> |
| 176 <template> |
| 177 <div id="counterPieChart" style="height: 200px"></div> |
| 178 </template> |
| 179 </polymer-element> |
| 180 |
| 181 <script type="application/dart" src="isolate_summary.dart"></script> |
OLD | NEW |