| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library analysis_server.src.get_handler; | 5 library analysis_server.src.get_handler; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:collection'; | 8 import 'dart:collection'; |
| 9 import 'dart:convert'; | 9 import 'dart:convert'; |
| 10 import 'dart:io'; | 10 import 'dart:io'; |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 AnalysisServer analysisServer = _server.analysisServer; | 260 AnalysisServer analysisServer = _server.analysisServer; |
| 261 if (analysisServer == null) { | 261 if (analysisServer == null) { |
| 262 return _returnFailure(request, 'Analysis server is not running'); | 262 return _returnFailure(request, 'Analysis server is not running'); |
| 263 } | 263 } |
| 264 _writeResponse(request, (StringBuffer buffer) { | 264 _writeResponse(request, (StringBuffer buffer) { |
| 265 _writePage( | 265 _writePage( |
| 266 buffer, | 266 buffer, |
| 267 'Analysis Server - Analysis Performance', | 267 'Analysis Server - Analysis Performance', |
| 268 [], | 268 [], |
| 269 (StringBuffer buffer) { | 269 (StringBuffer buffer) { |
| 270 void writeRow(TimeCounter counter, String label) { | 270 void writeRow(PerformanceTag tag) { |
| 271 _writeRow(buffer, [counter.result, label], classes: ["right", null]); | 271 _writeRow(buffer, [tag.elapsedMs, tag.label], classes: ["right", null]
); |
| 272 } | 272 } |
| 273 | 273 |
| 274 buffer.write('<h3>Analysis Performance</h3>'); | 274 buffer.write('<h3>Analysis Performance</h3>'); |
| 275 buffer.write('<p><b>Time spent in each phase of analysis</b></p>'); | 275 buffer.write('<p><b>Time spent in each phase of analysis</b></p>'); |
| 276 buffer.write( | 276 buffer.write( |
| 277 '<table style="border-collapse: separate; border-spacing: 10px 5px;"
>'); | 277 '<table style="border-collapse: separate; border-spacing: 10px 5px;"
>'); |
| 278 _writeRow(buffer, ['Time (in ms)', 'Analysis Phase'], header: true); | 278 _writeRow(buffer, ['Time (in ms)', 'Analysis Phase'], header: true); |
| 279 writeRow(PerformanceStatistics.io, 'io'); | 279 PerformanceTag.all.forEach(writeRow); |
| 280 writeRow(PerformanceStatistics.scan, 'scan'); | |
| 281 writeRow(PerformanceStatistics.parse, 'parse'); | |
| 282 writeRow(PerformanceStatistics.resolve, 'resolve'); | |
| 283 writeRow(PerformanceStatistics.errors, 'errors'); | |
| 284 writeRow(PerformanceStatistics.hints, 'hints'); | |
| 285 writeRow(PerformanceStatistics.lint, 'lint'); | |
| 286 buffer.write('</table>'); | 280 buffer.write('</table>'); |
| 287 | 281 |
| 288 Map<DataDescriptor, Map<CacheState, int>> transitionMap = SourceEntry.tr
ansitionMap; | 282 Map<DataDescriptor, Map<CacheState, int>> transitionMap = SourceEntry.tr
ansitionMap; |
| 289 buffer.write('<p><b>Number of times a state transitioned to VALID (group
ed by descriptor)</b></p>'); | 283 buffer.write('<p><b>Number of times a state transitioned to VALID (group
ed by descriptor)</b></p>'); |
| 290 if (transitionMap.isEmpty) { | 284 if (transitionMap.isEmpty) { |
| 291 buffer.write('<p>none</p>'); | 285 buffer.write('<p>none</p>'); |
| 292 } else { | 286 } else { |
| 293 List<DataDescriptor> descriptors = transitionMap.keys.toList(); | 287 List<DataDescriptor> descriptors = transitionMap.keys.toList(); |
| 294 descriptors.sort( | 288 descriptors.sort( |
| 295 (DataDescriptor first, DataDescriptor second) => | 289 (DataDescriptor first, DataDescriptor second) => |
| (...skipping 1334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1630 * 'error'. | 1624 * 'error'. |
| 1631 */ | 1625 */ |
| 1632 static String makeLink(String path, Map<String, String> params, | 1626 static String makeLink(String path, Map<String, String> params, |
| 1633 String innerHtml, [bool hasError = false]) { | 1627 String innerHtml, [bool hasError = false]) { |
| 1634 Uri uri = new Uri(path: path, queryParameters: params); | 1628 Uri uri = new Uri(path: path, queryParameters: params); |
| 1635 String href = HTML_ESCAPE.convert(uri.toString()); | 1629 String href = HTML_ESCAPE.convert(uri.toString()); |
| 1636 String classAttribute = hasError ? ' class="error"' : ''; | 1630 String classAttribute = hasError ? ' class="error"' : ''; |
| 1637 return '<a href="$href"$classAttribute>$innerHtml</a>'; | 1631 return '<a href="$href"$classAttribute>$innerHtml</a>'; |
| 1638 } | 1632 } |
| 1639 } | 1633 } |
| OLD | NEW |