summaryrefslogtreecommitdiffstats
path: root/tools/run-bisect-perf-regression.cfg
blob: 085a0fc58b70f0ec62680b8c2dc2a000d8000a38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# Copyright (c) 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Config file for Run Performance Test Bisect Tool

This script is intended for use by anyone that wants to run a remote bisection
on a range of revisions to look for a performance regression. Modify the config
below and add the revision range, performance command, and metric. You can then
run a git try <bot>.

Changes to this file should never be submitted.

Args:
  'command': This is the full command line to pass to the
      bisect-perf-regression.py script in order to execute the test.
  'good_revision': An svn or git revision where the metric hadn't regressed yet.
  'bad_revision': An svn or git revision sometime after the metric had
      regressed.
  'metric': The name of the metric to parse out from the results of the
      performance test. You can retrieve the metric by looking at the stdio of
      the performance test. Look for lines of the format:

      RESULT <graph>: <trace>= <value> <units>

      The metric name is "<graph>/<trace>".
  'repeat_count': The number of times to repeat the performance test.
  'max_time_minutes': The script will attempt to run the performance test
      "repeat_count" times, unless it exceeds "max_time_minutes".
  'truncate_percent': Discard the highest/lowest % values from performance test.

Sample config:

config = {
  'command': './tools/perf/run_measurement --browser=release blink_perf third_party/WebKit/PerformanceTests/Layout/floats_50_100.html',
  'good_revision': '233015',
  'bad_revision': '233115',
  'metric': 'floats_50_100/floats_50_100',
  'repeat_count': '20',
  'max_time_minutes': '20',
  'truncate_percent': '25',
}

On Windows:
  - If you're calling a python script you will need to add "python" to
the command:

config = {
  'command': 'python tools/perf/run_measurement -v --browser=release kraken',
  'good_revision': '185319',
  'bad_revision': '185364',
  'metric': 'Total/Total',
  'repeat_count': '20',
  'max_time_minutes': '20',
  'truncate_percent': '25',
}


On ChromeOS:
  - Script accepts either ChromeOS versions, or unix timestamps as revisions.
  - You don't need to specify --identity and --remote, they will be added to
    the command using the bot's BISECT_CROS_IP and BISECT_CROS_BOARD values.

config = {
  'command': './tools/perf/run_measurement -v '\
      '--browser=cros-chrome-guest '\
      'dromaeo tools/perf/page_sets/dromaeo/jslibstylejquery.json',
  'good_revision': '4086.0.0',
  'bad_revision': '4087.0.0',
  'metric': 'jslib/jslib',
  'repeat_count': '20',
  'max_time_minutes': '20',
  'truncate_percent': '25',
}

"""

config = {
  'command': '',
  'good_revision': '',
  'bad_revision': '',
  'metric': '',
  'repeat_count':'',
  'max_time_minutes': '',
  'truncate_percent':'',
}

# Workaround git try issue, see crbug.com/257689