| OLD | NEW |
| 1 <head> | 1 <head> |
| 2 <link rel="import" href="class_ref.html"> | 2 <link rel="import" href="class_ref.html"> |
| 3 <link rel="import" href="observatory_element.html"> | 3 <link rel="import" href="observatory_element.html"> |
| 4 <link rel="import" href="nav_bar.html"> | 4 <link rel="import" href="nav_bar.html"> |
| 5 </head> | 5 </head> |
| 6 <polymer-element name="heap-profile" extends="observatory-element"> | 6 <polymer-element name="heap-profile" extends="observatory-element"> |
| 7 <template> | 7 <template> |
| 8 <link rel="stylesheet" href="css/shared.css"> |
| 9 <style> |
| 10 .table { |
| 11 border-collapse: collapse!important; |
| 12 width: 100%; |
| 13 margin-bottom: 20px |
| 14 table-layout: fixed; |
| 15 } |
| 16 .table td:nth-of-type(1) { |
| 17 width: 30%; |
| 18 } |
| 19 .th, .td { |
| 20 padding: 8px; |
| 21 vertical-align: top; |
| 22 } |
| 23 .table thead > tr > th { |
| 24 vertical-align: bottom; |
| 25 text-align: left; |
| 26 border-bottom:2px solid #ddd; |
| 27 } |
| 28 .clickable { |
| 29 color: #0489c3; |
| 30 text-decoration: none; |
| 31 cursor: pointer; |
| 32 } |
| 33 .clickable:hover { |
| 34 text-decoration: underline; |
| 35 cursor: pointer; |
| 36 } |
| 37 #classtable tr:hover > td { |
| 38 background-color: #F4C7C3; |
| 39 } |
| 40 </style> |
| 8 <nav-bar> | 41 <nav-bar> |
| 9 <top-nav-menu></top-nav-menu> | 42 <top-nav-menu></top-nav-menu> |
| 10 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu> | 43 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu> |
| 11 <nav-menu link="." anchor="heap profile" last="{{ true }}"></nav-menu> | 44 <nav-menu link="." anchor="heap profile" last="{{ true }}"></nav-menu> |
| 45 <nav-refresh callback="{{ resetAccumulator }}" label="Reset Accumulator"></n
av-refresh> |
| 46 <nav-refresh callback="{{ refreshGC }}" label="GC"></nav-refresh> |
| 12 <nav-refresh callback="{{ refresh }}"></nav-refresh> | 47 <nav-refresh callback="{{ refresh }}"></nav-refresh> |
| 13 </nav-bar> | 48 </nav-bar> |
| 14 | 49 |
| 15 <button type="button" on-click="{{resetAccumulator}}">Reset Accumulator</butto
n> | 50 <div class="flex-row"> |
| 16 <div class="row"> | 51 <div id="newPieChart" class="flex-item-fixed-4-12" style="height: 400px"> |
| 17 <div id="newPieChart" class="col-md-4" style="height: 400px"> | |
| 18 </div> | 52 </div> |
| 19 <div id="newStatus" class="col-md-2"> | 53 <div id="newStatus" class="flex-item-fixed-2-12"> |
| 20 <table class="table"> | 54 <div class="memberList"> |
| 21 <tbody> | 55 <div class="memberItem"> |
| 22 <tr> | 56 <div class="memberName">Collections</div> |
| 23 <td>Collections</td> | 57 <div class="memberValue">{{ formattedCollections(true) }}</div> |
| 24 <td>{{ formattedCollections(true) }}</td> | 58 </div> |
| 25 </tr> | 59 <div class="memberItem"> |
| 26 <tr> | 60 <div class="memberName">Average Collection Time</div> |
| 27 <td>Average Collection Time</td> | 61 <div class="memberValue">{{ formattedAverage(true) }}</div> |
| 28 <td>{{ formattedAverage(true) }}</td> | 62 </div> |
| 29 </tr> | 63 <div class="memberItem"> |
| 30 <tr> | 64 <div class="memberName">Cumulative Collection Time</div> |
| 31 <td>Cumulative Collection Time</td> | 65 <div class="memberValue">{{ formattedTotalCollectionTime(true) }}</d
iv> |
| 32 <td>{{ formattedTotalCollectionTime(true) }}</td> | 66 </div> |
| 33 </tr> | 67 </div> |
| 34 </tbody> | |
| 35 </table> | |
| 36 </div> | 68 </div> |
| 37 <div id="oldPieChart" class="col-md-4" style="height: 400px"> | 69 <div id="oldPieChart" class="flex-item-fixed-4-12" style="height: 400px"> |
| 38 </div> | 70 </div> |
| 39 <div id="oldStatus" class="col-md-2"> | 71 <div id="oldStatus" class="flex-item-fixed-2-12"> |
| 40 <table class="table"> | 72 <div class="memberList"> |
| 41 <tbody> | 73 <div class="memberItem"> |
| 42 <tr> | 74 <div class="memberName">Collections</div> |
| 43 <td>Collections</td> | 75 <div class="memberValue">{{ formattedCollections(false) }}</div> |
| 44 <td>{{ formattedCollections(false) }}</td> | 76 </div> |
| 45 </tr> | 77 <div class="memberItem"> |
| 46 <tr> | 78 <div class="memberName">Average Collection Time</div> |
| 47 <td>Average Collection Time</td> | 79 <div class="memberValue">{{ formattedAverage(false) }}</div> |
| 48 <td>{{ formattedAverage(false) }}</td> | 80 </div> |
| 49 </tr> | 81 <div class="memberItem"> |
| 50 <tr> | 82 <div class="memberName">Cumulative Collection Time</div> |
| 51 <td>Cumulative Collection Time</td> | 83 <div class="memberValue">{{ formattedTotalCollectionTime(false) }}</
div> |
| 52 <td>{{ formattedTotalCollectionTime(false) }}</td> | 84 </div> |
| 53 </tr> | 85 </div> |
| 54 </tbody> | |
| 55 </table> | |
| 56 </div> | 86 </div> |
| 57 </div> | 87 </div> |
| 58 <div class="row"> | 88 <div class="flex-row"> |
| 59 <p class="col-md-2">Aggregate heap table</p> | 89 <table id="classtable" class="flex-item-fixed-12-12 table"> |
| 60 </div> | 90 <thead> |
| 61 <div class="row"> | 91 <tr> |
| 62 <div id="simpleTable" class="col-md-12" style="height: 800px"></div> | 92 <th on-click="{{changeSort}}" class="clickable" title="Class">{{ class
Table.getColumnLabel(0) }}</th> |
| 63 </div> | 93 <th on-click="{{changeSort}}" class="clickable" title="Total Accumulat
ed Size">{{ classTable.getColumnLabel(1) }}</th> |
| 64 <div class="row"> | 94 <th on-click="{{changeSort}}" class="clickable" title="Total Accumulat
ed Instances">{{ classTable.getColumnLabel(2) }}</th> |
| 65 <p class="col-md-2">Individual heap table</p> | 95 <th on-click="{{changeSort}}" class="clickable" title="Old Space Accum
ulated Size">{{ classTable.getColumnLabel(3) }}</th> |
| 66 </div> | 96 <th on-click="{{changeSort}}" class="clickable" title="Old Space Accum
ulated Instances">{{ classTable.getColumnLabel(4) }}</th> |
| 67 <div class="row"> | 97 <th on-click="{{changeSort}}" class="clickable" title="Total Current S
ize">{{ classTable.getColumnLabel(5) }}</th> |
| 68 <div id="table" class="col-md-12" style="height: 800px"></div> | 98 <th on-click="{{changeSort}}" class="clickable" title="Total Current I
nstances">{{ classTable.getColumnLabel(6) }}</th> |
| 99 </tr> |
| 100 </thead> |
| 101 <tbody> |
| 102 <tr template repeat="{{row in classTable.sortedRows }}"> |
| 103 <td><class-ref ref="{{ classTable.getValue(row, 0) }}"></class-ref></t
d> |
| 104 <td title="{{ classTable.getValue(row, 1) }}">{{ classTable.getFormatt
edValue(row, 1) }}</td> |
| 105 <td title="{{ classTable.getValue(row, 2) }}">{{ classTable.getFormatt
edValue(row, 2) }}</td> |
| 106 <td title="{{ classTable.getValue(row, 3) }}">{{ classTable.getFormatt
edValue(row, 3) }}</td> |
| 107 <td title="{{ classTable.getValue(row, 4) }}">{{ classTable.getFormatt
edValue(row, 4) }}</td> |
| 108 <td title="{{ classTable.getValue(row, 5) }}">{{ classTable.getFormatt
edValue(row, 5) }}</td> |
| 109 <td title="{{ classTable.getValue(row, 6) }}">{{ classTable.getFormatt
edValue(row, 6) }}</td> |
| 110 </tr> |
| 111 </tbody> |
| 112 </table> |
| 69 </div> | 113 </div> |
| 70 </template> | 114 </template> |
| 71 <script type="application/dart" src="heap_profile.dart"></script> | 115 <script type="application/dart" src="heap_profile.dart"></script> |
| 72 </polymer-element> | 116 </polymer-element> |
| OLD | NEW |