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 |