| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 server.performance.analysis.timing; | 5 library server.performance.analysis.timing; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:io'; | 8 import 'dart:io'; |
| 9 | 9 |
| 10 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 10 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 String source; | 54 String source; |
| 55 | 55 |
| 56 ArgParser _createArgParser() => new ArgParser() | 56 ArgParser _createArgParser() => new ArgParser() |
| 57 ..addOption(METRIC_NAME_OPTION, | 57 ..addOption(METRIC_NAME_OPTION, |
| 58 help: 'metric name (defaults to `analysis`)', allowMultiple: true) | 58 help: 'metric name (defaults to `analysis`)', allowMultiple: true) |
| 59 ..addOption(SOURCE_OPTION, help: 'full path to source directory for analysis') | 59 ..addOption(SOURCE_OPTION, help: 'full path to source directory for analysis') |
| 60 ..addOption(PRIORITY_FILE_OPTION, | 60 ..addOption(PRIORITY_FILE_OPTION, |
| 61 help: '(optional) full path to a priority file'); | 61 help: '(optional) full path to a priority file'); |
| 62 | 62 |
| 63 /** | 63 /** |
| 64 * AnalysisTimingTest measures the time taken by the analsyis server to fully an
alyze | 64 * AnalysisTimingTest measures the time taken by the analysis server to fully an
alyze |
| 65 * the given directory. Measurement is started after setting the analysis root,
and | 65 * the given directory. Measurement is started after setting the analysis root,
and |
| 66 * analysis is considered complete on receiving the `"isAnalyzing": false` messa
ge | 66 * analysis is considered complete on receiving the `"isAnalyzing": false` messa
ge |
| 67 * from the analysis server. | 67 * from the analysis server. |
| 68 */ | 68 */ |
| 69 class AnalysisTimingTest extends AbstractTimingTest { | 69 class AnalysisTimingTest extends AbstractTimingTest { |
| 70 Future test_timing() async { | 70 Future test_timing() async { |
| 71 // Set root after subscribing to avoid empty notifications. | 71 // Set root after subscribing to avoid empty notifications. |
| 72 await init(source); | 72 await init(source); |
| 73 | 73 |
| 74 setAnalysisRoot(); | 74 setAnalysisRoot(); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 | 154 |
| 155 sendAnalysisSetPriorityFiles([priorityFile]); | 155 sendAnalysisSetPriorityFiles([priorityFile]); |
| 156 | 156 |
| 157 await analysisFinished; | 157 await analysisFinished; |
| 158 print('analysis completed in ${stopwatch.elapsed}'); | 158 print('analysis completed in ${stopwatch.elapsed}'); |
| 159 metrics.forEach((Metric m) => print('${m.name} timings: ${m.timings}')); | 159 metrics.forEach((Metric m) => print('${m.name} timings: ${m.timings}')); |
| 160 | 160 |
| 161 await shutdown(); | 161 await shutdown(); |
| 162 } | 162 } |
| 163 } | 163 } |
| OLD | NEW |