%PDF- %PDF-
Direktori : /usr/local/go119/src/cmd/vendor/github.com/google/pprof/internal/driver/html/ |
Current File : //usr/local/go119/src/cmd/vendor/github.com/google/pprof/internal/driver/html/top.html |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>{{.Title}}</title> {{template "css" .}} <style type="text/css"> </style> </head> <body> {{template "header" .}} <div id="top"> <table id="toptable"> <thead> <tr> <th id="flathdr1">Flat</th> <th id="flathdr2">Flat%</th> <th>Sum%</th> <th id="cumhdr1">Cum</th> <th id="cumhdr2">Cum%</th> <th id="namehdr">Name</th> <th>Inlined?</th> </tr> </thead> <tbody id="rows"></tbody> </table> </div> {{template "script" .}} <script> function makeTopTable(total, entries) { const rows = document.getElementById('rows'); if (rows == null) return; // Store initial index in each entry so we have stable node ids for selection. for (let i = 0; i < entries.length; i++) { entries[i].Id = 'node' + i; } // Which column are we currently sorted by and in what order? let currentColumn = ''; let descending = false; sortBy('Flat'); function sortBy(column) { // Update sort criteria if (column == currentColumn) { descending = !descending; // Reverse order } else { currentColumn = column; descending = (column != 'Name'); } // Sort according to current criteria. function cmp(a, b) { const av = a[currentColumn]; const bv = b[currentColumn]; if (av < bv) return -1; if (av > bv) return +1; return 0; } entries.sort(cmp); if (descending) entries.reverse(); function addCell(tr, val) { const td = document.createElement('td'); td.textContent = val; tr.appendChild(td); } function percent(v) { return (v * 100.0 / total).toFixed(2) + '%'; } // Generate rows const fragment = document.createDocumentFragment(); let sum = 0; for (const row of entries) { const tr = document.createElement('tr'); tr.id = row.Id; sum += row.Flat; addCell(tr, row.FlatFormat); addCell(tr, percent(row.Flat)); addCell(tr, percent(sum)); addCell(tr, row.CumFormat); addCell(tr, percent(row.Cum)); addCell(tr, row.Name); addCell(tr, row.InlineLabel); fragment.appendChild(tr); } rows.textContent = ''; // Remove old rows rows.appendChild(fragment); } // Make different column headers trigger sorting. function bindSort(id, column) { const hdr = document.getElementById(id); if (hdr == null) return; const fn = function() { sortBy(column) }; hdr.addEventListener('click', fn); hdr.addEventListener('touch', fn); } bindSort('flathdr1', 'Flat'); bindSort('flathdr2', 'Flat'); bindSort('cumhdr1', 'Cum'); bindSort('cumhdr2', 'Cum'); bindSort('namehdr', 'Name'); } viewer(new URL(window.location.href), {{.Nodes}}); makeTopTable({{.Total}}, {{.Top}}); </script> </body> </html>