Index: runtime/bin/vmservice/client/lib/src/elements/heap_profile.html |
diff --git a/runtime/bin/vmservice/client/lib/src/elements/heap_profile.html b/runtime/bin/vmservice/client/lib/src/elements/heap_profile.html |
index fe5f2fc9e948c220489de14d3434df8d1622f83d..d6647a68f207107ef6c080c5c2b91b7bb2f42533 100644 |
--- a/runtime/bin/vmservice/client/lib/src/elements/heap_profile.html |
+++ b/runtime/bin/vmservice/client/lib/src/elements/heap_profile.html |
@@ -1,15 +1,14 @@ |
-<head> |
- <link rel="import" href="class_ref.html"> |
- <link rel="import" href="observatory_element.html"> |
- <link rel="import" href="nav_bar.html"> |
-</head> |
+<link rel="import" href="../../../../packages/polymer/polymer.html"> |
+<link rel="import" href="class_ref.html"> |
+<link rel="import" href="observatory_element.html"> |
+<link rel="import" href="nav_bar.html"> |
+ |
<polymer-element name="heap-profile" extends="observatory-element"> |
<template> |
<link rel="stylesheet" href="css/shared.css"> |
<style> |
.table { |
border-collapse: collapse!important; |
- width: 100%; |
margin-bottom: 20px |
table-layout: fixed; |
} |
@@ -25,6 +24,13 @@ |
text-align: left; |
border-bottom:2px solid #ddd; |
} |
+ .spacer { |
+ width: 16px; |
+ } |
+ .left-border-spacer { |
+ width: 16px; |
+ border-left: 1px solid; |
+ } |
.clickable { |
color: #0489c3; |
text-decoration: none; |
@@ -41,18 +47,47 @@ |
<nav-bar> |
<top-nav-menu></top-nav-menu> |
<isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu> |
- <nav-menu link="{{ profile.isolate.relativeLink('allocationprofile') }}" anchor="heap profile" last="{{ true }}"></nav-menu> |
+ <nav-menu link="{{ profile.isolate.relativeLink('allocationprofile') }}" anchor="allocation profile" last="{{ true }}"></nav-menu> |
<nav-refresh callback="{{ resetAccumulator }}" label="Reset Accumulator"></nav-refresh> |
<nav-refresh callback="{{ refreshGC }}" label="GC"></nav-refresh> |
<nav-refresh callback="{{ refresh }}"></nav-refresh> |
<nav-control></nav-control> |
</nav-bar> |
- |
- <div class="flex-row"> |
- <div id="newPieChart" class="flex-item-fixed-4-12" style="height: 400px"> |
+ <div class="content"> |
+ <h1>Allocation Profile</h1> |
+ <br> |
+ <div class="memberList"> |
+ <div class="memberItem"> |
+ <div class="memberName">last forced GC at</div> |
+ <div class="memberValue">{{ lastForcedGC }}</div> |
+ </div> |
+ <div class="memberItem"> |
+ <div class="memberName">last accumulator reset at</div> |
+ <div class="memberValue">{{ lastAccumulatorReset }}</div> |
+ </div> |
</div> |
- <div id="newStatus" class="flex-item-fixed-2-12"> |
- <div class="memberList"> |
+ </div> |
+ <hr> |
+ <div class="content-centered-big"> |
+ <div class="flex-row"> |
+ <div id="newSpace" class="flex-item-50-percent"> |
+ <h2>New Generation</h2> |
+ <br> |
+ <div class="memberList"> |
+ <div class="memberItem"> |
+ <div class="memberName">used</div> |
+ <div class="memberValue"> |
+ {{ isolate.newHeapUsed | formatSize }} |
+ of |
+ {{ isolate.newHeapCapacity | formatSize }} |
+ </div> |
+ </div> |
+ <div class="memberItem"> |
+ <div class="memberName">external</div> |
+ <div class="memberValue"> |
+ {{ isolate.newExternal | formatSize }} |
+ </div> |
+ </div> |
<div class="memberItem"> |
<div class="memberName">Collections</div> |
<div class="memberValue">{{ formattedCollections(true) }}</div> |
@@ -65,12 +100,27 @@ |
<div class="memberName">Cumulative Collection Time</div> |
<div class="memberValue">{{ formattedTotalCollectionTime(true) }}</div> |
</div> |
+ </div> |
+ <div id="newPieChart" style="height: 300px"></div> |
</div> |
- </div> |
- <div id="oldPieChart" class="flex-item-fixed-4-12" style="height: 400px"> |
- </div> |
- <div id="oldStatus" class="flex-item-fixed-2-12"> |
- <div class="memberList"> |
+ <div id="oldSpace" class="flex-item-50-percent"> |
+ <h2>Old Generation</h2> |
+ <br> |
+ <div class="memberList"> |
+ <div class="memberItem"> |
+ <div class="memberName">used</div> |
+ <div class="memberValue"> |
+ {{ isolate.oldHeapUsed | formatSize }} |
+ of |
+ {{ isolate.oldHeapCapacity | formatSize }} |
+ </div> |
+ </div> |
+ <div class="memberItem"> |
+ <div class="memberName">external</div> |
+ <div class="memberValue"> |
+ {{ isolate.oldExternal | formatSize }} |
+ </div> |
+ </div> |
<div class="memberItem"> |
<div class="memberName">Collections</div> |
<div class="memberValue">{{ formattedCollections(false) }}</div> |
@@ -83,39 +133,37 @@ |
<div class="memberName">Cumulative Collection Time</div> |
<div class="memberValue">{{ formattedTotalCollectionTime(false) }}</div> |
</div> |
+ </div> |
+ <div id="oldPieChart" style="height: 300px"></div> |
</div> |
</div> |
</div> |
- <div class="flex-row"> |
- <table id="classtable" class="flex-item-fixed-12-12 table"> |
- <thead> |
+ <br> |
+ <hr> |
+ <div class="content-centered-big"> |
+ <table id="classtable" class="flex-item-100-percent table"> |
+ <thead id="classTableHead"> |
<tr> |
<th on-click="{{changeSort}}" class="clickable" title="Class">{{ classTable.getColumnLabel(0) }}</th> |
- <th on-click="{{changeSort}}" class="clickable" title="New Accumulated Size">{{ classTable.getColumnLabel(1) }}</th> |
- <th on-click="{{changeSort}}" class="clickable" title="New Accumulated Instances">{{ classTable.getColumnLabel(2) }}</th> |
- <th on-click="{{changeSort}}" class="clickable" title="New Current Size">{{ classTable.getColumnLabel(3) }}</th> |
- <th on-click="{{changeSort}}" class="clickable" title="New Current Instances">{{ classTable.getColumnLabel(4) }}</th> |
- <th on-click="{{changeSort}}" class="clickable" title="Old Accumulated Size">{{ classTable.getColumnLabel(5) }}</th> |
- <th on-click="{{changeSort}}" class="clickable" title="Old Accumulated Instances">{{ classTable.getColumnLabel(6) }}</th> |
- <th on-click="{{changeSort}}" class="clickable" title="Old Current Size">{{ classTable.getColumnLabel(7) }}</th> |
- <th on-click="{{changeSort}}" class="clickable" title="Old Current Instances">{{ classTable.getColumnLabel(8) }}</th> |
+ <th class="spacer"></th> |
+ <th on-click="{{changeSort}}" class="clickable" title="New Accumulated Size">{{ classTable.getColumnLabel(2) }}</th> |
+ <th on-click="{{changeSort}}" class="clickable" title="New Accumulated Instances">{{ classTable.getColumnLabel(3) }}</th> |
+ <th on-click="{{changeSort}}" class="clickable" title="New Current Size">{{ classTable.getColumnLabel(4) }}</th> |
+ <th on-click="{{changeSort}}" class="clickable" title="New Current Instances">{{ classTable.getColumnLabel(5) }}</th> |
+ <th class="spacer"></th> |
+ <th on-click="{{changeSort}}" class="clickable" title="Old Accumulated Size">{{ classTable.getColumnLabel(7) }}</th> |
+ <th on-click="{{changeSort}}" class="clickable" title="Old Accumulated Instances">{{ classTable.getColumnLabel(8) }}</th> |
+ <th on-click="{{changeSort}}" class="clickable" title="Old Current Size">{{ classTable.getColumnLabel(9) }}</th> |
+ <th on-click="{{changeSort}}" class="clickable" title="Old Current Instances">{{ classTable.getColumnLabel(10) }}</th> |
</tr> |
</thead> |
- <tbody> |
- <tr template repeat="{{row in classTable.sortedRows }}"> |
- <td><class-ref ref="{{ classTable.getValue(row, 0) }}"></class-ref></td> |
- <td title="{{ classTable.getValue(row, 1) }}">{{ classTable.getFormattedValue(row, 1) }}</td> |
- <td title="{{ classTable.getValue(row, 2) }}">{{ classTable.getFormattedValue(row, 2) }}</td> |
- <td title="{{ classTable.getValue(row, 3) }}">{{ classTable.getFormattedValue(row, 3) }}</td> |
- <td title="{{ classTable.getValue(row, 4) }}">{{ classTable.getFormattedValue(row, 4) }}</td> |
- <td title="{{ classTable.getValue(row, 5) }}">{{ classTable.getFormattedValue(row, 5) }}</td> |
- <td title="{{ classTable.getValue(row, 6) }}">{{ classTable.getFormattedValue(row, 6) }}</td> |
- <td title="{{ classTable.getValue(row, 7) }}">{{ classTable.getFormattedValue(row, 7) }}</td> |
- <td title="{{ classTable.getValue(row, 8) }}">{{ classTable.getFormattedValue(row, 8) }}</td> |
- </tr> |
+ <tbody id="classTableBody"> |
</tbody> |
</table> |
+ <br><br><br> |
+ <br><br><br> |
</div> |
</template> |
-<script type="application/dart" src="heap_profile.dart"></script> |
</polymer-element> |
+ |
+<script type="application/dart" src="heap_profile.dart"></script> |