OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Performance Test Bisect Tool | 6 """Performance Test Bisect Tool |
7 | 7 |
8 This script bisects a series of changelists using binary search. It starts at | 8 This script bisects a series of changelists using binary search. It starts at |
9 a bad revision where a performance metric has regressed, and asks for a last | 9 a bad revision where a performance metric has regressed, and asks for a last |
10 known-good revision. It will then binary search across this revision range by | 10 known-good revision. It will then binary search across this revision range by |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
228 committed locally to run-perf-test.cfg. | 228 committed locally to run-perf-test.cfg. |
229 Note: *DO NOT* commit run-perf-test.cfg changes to the project repository. | 229 Note: *DO NOT* commit run-perf-test.cfg changes to the project repository. |
230 $ git cl upload --bypass-hooks | 230 $ git cl upload --bypass-hooks |
231 4. Send your try job to the try server. \ | 231 4. Send your try job to the try server. \ |
232 [Please make sure to use appropriate bot to reproduce] | 232 [Please make sure to use appropriate bot to reproduce] |
233 $ git cl try -m tryserver.chromium.perf -b <bot> | 233 $ git cl try -m tryserver.chromium.perf -b <bot> |
234 | 234 |
235 For more details please visit | 235 For more details please visit |
236 https://sites.google.com/a/chromium.org/dev/developers/performance-try-bots""" | 236 https://sites.google.com/a/chromium.org/dev/developers/performance-try-bots""" |
237 | 237 |
238 REPRO_STEPS_TRYJOB_TELEMETRY = """ | |
239 To reproduce on a performance try bot: | |
240 %(command)s | |
241 (Where <bot-name> comes from tools/perf/run_benchmark --browser=list) | |
tonyg
2014/08/27 16:38:59
I think an important thing to do here is to give t
sullivan
2014/08/27 22:02:49
I'm really sorry this got committed without addres
| |
242 | |
243 For more details please visit | |
244 https://sites.google.com/a/chromium.org/dev/developers/performance-try-bots | |
245 """ | |
246 | |
238 RESULTS_THANKYOU = """ | 247 RESULTS_THANKYOU = """ |
239 ===== THANK YOU FOR CHOOSING BISECT AIRLINES ===== | 248 ===== THANK YOU FOR CHOOSING BISECT AIRLINES ===== |
240 Visit http://www.chromium.org/developers/core-principles for Chrome's policy | 249 Visit http://www.chromium.org/developers/core-principles for Chrome's policy |
241 on perf regressions. | 250 on perf regressions. |
242 Contact chrome-perf-dashboard-team with any questions or suggestions about | 251 Contact chrome-perf-dashboard-team with any questions or suggestions about |
243 bisecting. | 252 bisecting. |
244 . .------. | 253 . .------. |
245 . .---. \ \==) | 254 . .---. \ \==) |
246 . |PERF\ \ \\ | 255 . |PERF\ \ \\ |
247 . | ---------'-------'-----------. | 256 . | ---------'-------'-----------. |
(...skipping 2470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2718 def _PrintReproSteps(self): | 2727 def _PrintReproSteps(self): |
2719 """Prints out a section of the results explaining how to run the test. | 2728 """Prints out a section of the results explaining how to run the test. |
2720 | 2729 |
2721 This message includes the command used to run the test. | 2730 This message includes the command used to run the test. |
2722 """ | 2731 """ |
2723 command = '$ ' + self.opts.command | 2732 command = '$ ' + self.opts.command |
2724 if bisect_utils.IsTelemetryCommand(self.opts.command): | 2733 if bisect_utils.IsTelemetryCommand(self.opts.command): |
2725 command += ('\nAlso consider passing --profiler=list to see available ' | 2734 command += ('\nAlso consider passing --profiler=list to see available ' |
2726 'profilers.') | 2735 'profilers.') |
2727 print REPRO_STEPS_LOCAL % {'command': command} | 2736 print REPRO_STEPS_LOCAL % {'command': command} |
2728 print REPRO_STEPS_TRYJOB % {'command': command} | 2737 if bisect_utils.IsTelemetryCommand(self.opts.command): |
2738 telemetry_command = re.sub(r'--browser=[^\s]+', | |
2739 '--browser=<bot-name>', | |
2740 command) | |
2741 print REPRO_STEPS_TRYJOB_TELEMETRY % {'command': telemetry_command} | |
2742 else: | |
2743 print REPRO_STEPS_TRYJOB % {'command': command} | |
2729 | 2744 |
2730 def _PrintOtherRegressions(self, other_regressions, revision_data): | 2745 def _PrintOtherRegressions(self, other_regressions, revision_data): |
2731 """Prints a section of the results about other potential regressions.""" | 2746 """Prints a section of the results about other potential regressions.""" |
2732 print | 2747 print |
2733 print 'Other regressions may have occurred:' | 2748 print 'Other regressions may have occurred:' |
2734 print ' %8s %70s %10s' % ('Depot'.center(8, ' '), | 2749 print ' %8s %70s %10s' % ('Depot'.center(8, ' '), |
2735 'Range'.center(70, ' '), 'Confidence'.center(10, ' ')) | 2750 'Range'.center(70, ' '), 'Confidence'.center(10, ' ')) |
2736 for regression in other_regressions: | 2751 for regression in other_regressions: |
2737 current_id, previous_id, confidence = regression | 2752 current_id, previous_id, confidence = regression |
2738 current_data = revision_data[current_id] | 2753 current_data = revision_data[current_id] |
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3362 # bugs. If you change this, please update the perf dashboard as well. | 3377 # bugs. If you change this, please update the perf dashboard as well. |
3363 bisect_utils.OutputAnnotationStepStart('Results') | 3378 bisect_utils.OutputAnnotationStepStart('Results') |
3364 print 'Error: %s' % e.message | 3379 print 'Error: %s' % e.message |
3365 if opts.output_buildbot_annotations: | 3380 if opts.output_buildbot_annotations: |
3366 bisect_utils.OutputAnnotationStepClosed() | 3381 bisect_utils.OutputAnnotationStepClosed() |
3367 return 1 | 3382 return 1 |
3368 | 3383 |
3369 | 3384 |
3370 if __name__ == '__main__': | 3385 if __name__ == '__main__': |
3371 sys.exit(main()) | 3386 sys.exit(main()) |
OLD | NEW |