Chromium Code Reviews| Index: pkg/analysis_server/lib/src/get_handler.dart |
| diff --git a/pkg/analysis_server/lib/src/get_handler.dart b/pkg/analysis_server/lib/src/get_handler.dart |
| index 095ca77c3ec12fff6d34294e31d13f0459c6eed2..fe8eeee55bcacbe4104d04aeb9c3830a57d38095 100644 |
| --- a/pkg/analysis_server/lib/src/get_handler.dart |
| +++ b/pkg/analysis_server/lib/src/get_handler.dart |
| @@ -267,20 +267,42 @@ class GetHandler { |
| 'Analysis Server - Analysis Performance', |
| [], |
| (StringBuffer buffer) { |
| - void writeRow(PerformanceTag tag) { |
| - _writeRow(buffer, [tag.elapsedMs, tag.label], classes: ["right", null]); |
| - } |
| buffer.write('<h3>Analysis Performance</h3>'); |
| - buffer.write('<p><b>Time spent in each phase of analysis</b></p>'); |
| - buffer.write( |
| - '<table style="border-collapse: separate; border-spacing: 10px 5px;">'); |
| - _writeRow(buffer, ['Time (in ms)', 'Analysis Phase'], header: true); |
| - PerformanceTag.all.forEach(writeRow); |
| - buffer.write('</table>'); |
| - Map<DataDescriptor, Map<CacheState, int>> transitionMap = SourceEntry.transitionMap; |
| - buffer.write('<p><b>Number of times a state transitioned to VALID (grouped by descriptor)</b></p>'); |
| + { |
| + buffer.write('<p><b>Time spent in each phase of analysis</b></p>'); |
| + buffer.write( |
| + '<table style="border-collapse: separate; border-spacing: 10px 5px;">'); |
| + _writeRow( |
| + buffer, |
| + ['Time (in ms)', 'Percent', 'Analysis Phase'], |
| + header: true); |
| + // prepare sorted tags |
| + List<PerformanceTag> tags = PerformanceTag.all.toList(); |
| + tags.remove(ServerPerformanceStatistics.idle); |
| + tags.sort((a, b) => b.elapsedMs - a.elapsedMs); |
| + // prepare total time |
| + int totalTime = 0; |
| + tags.forEach((PerformanceTag tag) { |
| + totalTime += tag.elapsedMs; |
| + }); |
| + // write rows |
| + void writeRow(PerformanceTag tag) { |
| + int percent = (tag.elapsedMs * 100) ~/ totalTime; |
|
Paul Berry
2015/02/24 17:45:22
This will round down to percent granularity. I do
|
| + _writeRow( |
| + buffer, |
| + [tag.elapsedMs, '$percent%', tag.label], |
| + classes: ["right", "right", null]); |
| + } |
| + tags.forEach(writeRow); |
| + buffer.write('</table>'); |
| + } |
| + |
| + Map<DataDescriptor, Map<CacheState, int>> transitionMap = |
| + SourceEntry.transitionMap; |
| + buffer.write( |
| + '<p><b>Number of times a state transitioned to VALID (grouped by descriptor)</b></p>'); |
| if (transitionMap.isEmpty) { |
| buffer.write('<p>none</p>'); |
| } else { |