| <head> |
| <link rel="import" href="observatory_element.html"> |
| </head> |
| <polymer-element name="isolate-summary" extends="observatory-element"> |
| <template> |
| <div class="row"> |
| <div class="col-md-1"> |
| <img src="img/isolate_icon.png" class="img-polaroid"> |
| </div> |
| |
| <div class="col-md-1">{{ isolate.name }}</div> |
| |
| <!-- TODO(turnidge): Use function-ref when it can take isolate param --> |
| <div class="col-md-4"> |
| |
| <div class="row"> |
| <template if="{{ isolate.entry['id'] != null }}"> |
| <a href="{{ app.locationManager.relativeLink(isolate.id, isolate.entry['id']) }}"> |
| {{ isolate.entry['name'] }} |
| </a> |
| </template> |
| <template if="{{ isolate.entry['id'] == null }}"> |
| <!-- fred --> |
| root isolate |
| </template> |
| </div> |
| |
| <div class="row"> |
| <small> |
| (<a href="{{ app.locationManager.relativeLink(isolate.id, isolate.rootLib) }}">library</a>) |
| (<a href="{{ app.locationManager.relativeLink(isolate.id, 'debug/breakpoints') }}">breakpoints</a>) |
| (<a href="{{ app.locationManager.relativeLink(isolate.id, 'profile') }}">profile</a>) |
| </small> |
| </div> |
| </div> |
| |
| <div class="col-md-2"> |
| <div class="row"> |
| <div class="col-md-3">{{ isolate.timers['total'] | formatTime }}</div> |
| <div class="col-md-1"></div> |
| <div class="col-md-3"><p class="text-muted">total</p></div> |
| </div> |
| <div class="row"> |
| <div class="col-md-3">{{ isolate.timers['dart'] | formatTime }}</div> |
| <div class="col-md-1"></div> |
| <div class="col-md-3"><p class="text-muted">dart</p></div> |
| </div> |
| <div class="row"> |
| <div class="col-md-3">{{ isolate.timers['compile'] | formatTime }}</div> |
| <div class="col-md-1"></div> |
| <div class="col-md-3"><p class="text-muted">compile</p></div> |
| </div> |
| <div class="row"> |
| <div class="col-md-3">{{ isolate.timers['gc'] | formatTime }}</div> |
| <div class="col-md-1"></div> |
| <div class="col-md-3"><p class="text-muted">gc</p></div> |
| </div> |
| <div class="row"> |
| <div class="col-md-3">{{ isolate.timers['init'] | formatTime }}</div> |
| <div class="col-md-1"></div> |
| <div class="col-md-3"><p class="text-muted">init</p></div> |
| </div> |
| </div> |
| <div class="col-md-2"> |
| <a href="{{ app.locationManager.relativeLink(isolate.id, 'allocationprofile') }}"> |
| {{ isolate.newHeapUsed | formatSize }}/{{ isolate.oldHeapUsed | formatSize }} |
| </a> |
| </div> |
| <div class="col-md-2"> |
| <template if="{{ isolate.topFrame == null }}"> |
| idle |
| </template> |
| <template if="{{ isolate.topFrame != null }}"> |
| run |
| </template> |
| ( <a href="{{ app.locationManager.relativeLink(isolate.id, 'stacktrace') }}">stack trace</a> ) |
| </div> |
| </div> |
| <div class="row"> |
| <div class="col-md-3"> |
| </div> |
| <div class="col-md-6"> |
| <template if="{{ isolate.topFrame != null }}"> |
| <a href="{{ app.locationManager.relativeLink(isolate.id, isolate.topFrame['function']['id']) }}"> |
| {{ isolate.topFrame['function']['user_name'] }} |
| </a> |
| (<a href="{{ app.locationManager.relativeLink(isolate.id, isolate.topFrame['script']['id']) }}"> |
| {{ isolate.topFrame | fileAndLine }} |
| </a>) |
| <br> |
| <pre>{{ isolate.topFrame['line'] }} {{ isolate.topFrame['lineString'] }}</pre> |
| </template> |
| </div> |
| <div class="col-md-3"> |
| </div> |
| </div> |
| </template> |
| <script type="application/dart" src="isolate_summary.dart"></script> |
| </polymer-element> |