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