Mercurial > hg
annotate contrib/revsetbenchmarks.py @ 22519:c87f2a5a6e49
mq: correctly make an empty line after description in new patches
There would in some cases be an empty line between headers and the description -
that does not seem right.
There should also be an empty line between description and diff - but that was
missing.
These two mistakes would sometimes make it up for each other so we fix both at
once to just show the improvement.
Instead of writing an extra newline when writing a header line, write an extra
line when it not is written as a part of the description but is necessary
anyway.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Sat, 20 Sep 2014 17:06:56 +0200 |
parents | d5cef58d8ec8 |
children | 2143d794e960 |
rev | line source |
---|---|
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
1 #!/usr/bin/env python |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
2 |
20746
47fc466825da
contrib: have the revset benchmark test script take a revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20745
diff
changeset
|
3 # Measure the performance of a list of revsets against multiple revisions |
47fc466825da
contrib: have the revset benchmark test script take a revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20745
diff
changeset
|
4 # defined by parameter. Checkout one by one and run perfrevset with every |
47fc466825da
contrib: have the revset benchmark test script take a revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20745
diff
changeset
|
5 # revset in the list to benchmark its performance. |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
6 # |
20747
8c89433ccdcf
contrib: make revset benchmark script able to read from stdin
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20746
diff
changeset
|
7 # - First argument is a revset of mercurial own repo to runs against. |
8c89433ccdcf
contrib: make revset benchmark script able to read from stdin
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20746
diff
changeset
|
8 # - Second argument is the file from which the revset array will be taken |
8c89433ccdcf
contrib: make revset benchmark script able to read from stdin
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20746
diff
changeset
|
9 # If second argument is omitted read it from standard input |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
10 # |
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
11 # You should run this from the root of your mercurial repository. |
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
12 # |
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
13 # This script also does one run of the current version of mercurial installed |
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
14 # to compare performance. |
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
15 |
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
16 import sys |
21548
651d7548a744
revsetbenchmark: automatically finds the perf extension
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21287
diff
changeset
|
17 import os |
20893
b5de9dde181c
revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents:
20855
diff
changeset
|
18 from subprocess import check_call, Popen, CalledProcessError, STDOUT, PIPE |
21287
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
19 # cannot use argparse, python 2.7 only |
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
20 from optparse import OptionParser |
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
21 |
20893
b5de9dde181c
revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents:
20855
diff
changeset
|
22 def check_output(*args, **kwargs): |
b5de9dde181c
revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents:
20855
diff
changeset
|
23 kwargs.setdefault('stderr', PIPE) |
b5de9dde181c
revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents:
20855
diff
changeset
|
24 kwargs.setdefault('stdout', PIPE) |
b5de9dde181c
revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents:
20855
diff
changeset
|
25 proc = Popen(*args, **kwargs) |
b5de9dde181c
revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents:
20855
diff
changeset
|
26 output, error = proc.communicate() |
b5de9dde181c
revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents:
20855
diff
changeset
|
27 if proc.returncode != 0: |
21202
c04e5e937139
revsetbenchmark: fix error raising
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20893
diff
changeset
|
28 raise CalledProcessError(proc.returncode, ' '.join(args[0])) |
20893
b5de9dde181c
revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents:
20855
diff
changeset
|
29 return output |
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
30 |
20850
d0c2535c7aba
revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20849
diff
changeset
|
31 def update(rev): |
d0c2535c7aba
revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20849
diff
changeset
|
32 """update the repo to a revision""" |
d0c2535c7aba
revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20849
diff
changeset
|
33 try: |
d0c2535c7aba
revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20849
diff
changeset
|
34 check_call(['hg', 'update', '--quiet', '--check', str(rev)]) |
d0c2535c7aba
revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20849
diff
changeset
|
35 except CalledProcessError, exc: |
d0c2535c7aba
revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20849
diff
changeset
|
36 print >> sys.stderr, 'update to revision %s failed, aborting' % rev |
d0c2535c7aba
revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20849
diff
changeset
|
37 sys.exit(exc.returncode) |
d0c2535c7aba
revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20849
diff
changeset
|
38 |
21549
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
39 def perf(revset, target=None): |
20851
4130ec938c84
revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20850
diff
changeset
|
40 """run benchmark for this very revset""" |
4130ec938c84
revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20850
diff
changeset
|
41 try: |
21549
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
42 cmd = ['./hg', |
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
43 '--config', |
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
44 'extensions.perf=' |
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
45 + os.path.join(contribdir, 'perf.py'), |
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
46 'perfrevset', |
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
47 revset] |
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
48 if target is not None: |
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
49 cmd.append('-R') |
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
50 cmd.append(target) |
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
51 output = check_output(cmd, stderr=STDOUT) |
20854
bad5399c5d5f
revsetbenchmark: retrieve the benchmark value in python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20853
diff
changeset
|
52 output = output.lstrip('!') # remove useless ! in this context |
bad5399c5d5f
revsetbenchmark: retrieve the benchmark value in python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20853
diff
changeset
|
53 return output.strip() |
20851
4130ec938c84
revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20850
diff
changeset
|
54 except CalledProcessError, exc: |
4130ec938c84
revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20850
diff
changeset
|
55 print >> sys.stderr, 'abort: cannot run revset benchmark' |
4130ec938c84
revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20850
diff
changeset
|
56 sys.exit(exc.returncode) |
4130ec938c84
revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20850
diff
changeset
|
57 |
20852
b2353501d6dc
revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20851
diff
changeset
|
58 def printrevision(rev): |
b2353501d6dc
revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20851
diff
changeset
|
59 """print data about a revision""" |
b2353501d6dc
revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20851
diff
changeset
|
60 sys.stdout.write("Revision: ") |
b2353501d6dc
revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20851
diff
changeset
|
61 sys.stdout.flush() |
b2353501d6dc
revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20851
diff
changeset
|
62 check_call(['hg', 'log', '--rev', str(rev), '--template', |
b2353501d6dc
revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20851
diff
changeset
|
63 '{desc|firstline}\n']) |
b2353501d6dc
revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20851
diff
changeset
|
64 |
20853
95293cf67871
revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20852
diff
changeset
|
65 def getrevs(spec): |
95293cf67871
revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20852
diff
changeset
|
66 """get the list of rev matched by a revset""" |
95293cf67871
revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20852
diff
changeset
|
67 try: |
95293cf67871
revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20852
diff
changeset
|
68 out = check_output(['hg', 'log', '--template={rev}\n', '--rev', spec]) |
95293cf67871
revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20852
diff
changeset
|
69 except CalledProcessError, exc: |
95293cf67871
revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20852
diff
changeset
|
70 print >> sys.stderr, "abort, can't get revision from %s" % spec |
95293cf67871
revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20852
diff
changeset
|
71 sys.exit(exc.returncode) |
95293cf67871
revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20852
diff
changeset
|
72 return [r for r in out.split() if r] |
95293cf67871
revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20852
diff
changeset
|
73 |
95293cf67871
revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20852
diff
changeset
|
74 |
21287
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
75 parser = OptionParser(usage="usage: %prog [options] <revs>") |
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
76 parser.add_option("-f", "--file", |
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
77 help="read revset from FILE", metavar="FILE") |
21549
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
78 parser.add_option("-R", "--repo", |
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
79 help="run benchmark on REPO", metavar="REPO") |
21287
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
80 |
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
81 (options, args) = parser.parse_args() |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
82 |
21286
f0f810096842
revsetbenchmark: add a usage message when no arguments are passed
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21202
diff
changeset
|
83 if len(sys.argv) < 2: |
21287
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
84 parser.print_help() |
21286
f0f810096842
revsetbenchmark: add a usage message when no arguments are passed
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21202
diff
changeset
|
85 sys.exit(255) |
f0f810096842
revsetbenchmark: add a usage message when no arguments are passed
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21202
diff
changeset
|
86 |
21548
651d7548a744
revsetbenchmark: automatically finds the perf extension
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21287
diff
changeset
|
87 # the directory where both this script and the perf.py extension live. |
651d7548a744
revsetbenchmark: automatically finds the perf extension
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21287
diff
changeset
|
88 contribdir = os.path.dirname(__file__) |
21287
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
89 |
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
90 target_rev = args[0] |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
91 |
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
92 revsetsfile = sys.stdin |
21287
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
93 if options.file: |
2d93b74335a2
revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21286
diff
changeset
|
94 revsetsfile = open(options.file) |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
95 |
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
96 revsets = [l.strip() for l in revsetsfile] |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
97 |
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
98 print "Revsets to benchmark" |
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
99 print "----------------------------" |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
100 |
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
101 for idx, rset in enumerate(revsets): |
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
102 print "%i) %s" % (idx, rset) |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
103 |
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
104 print "----------------------------" |
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
105 print |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
106 |
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
107 |
20853
95293cf67871
revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20852
diff
changeset
|
108 revs = getrevs(target_rev) |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
109 |
20855
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
110 results = [] |
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
111 for r in revs: |
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
112 print "----------------------------" |
20852
b2353501d6dc
revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20851
diff
changeset
|
113 printrevision(r) |
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
114 print "----------------------------" |
20850
d0c2535c7aba
revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20849
diff
changeset
|
115 update(r) |
20855
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
116 res = [] |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
117 results.append(res) |
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
118 for idx, rset in enumerate(revsets): |
21549
ea3d75ebea6d
revsetbenchmark: support for running on other repo
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21548
diff
changeset
|
119 data = perf(rset, target=options.repo) |
20855
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
120 res.append(data) |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
121 print "%i)" % idx, data |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
122 sys.stdout.flush() |
20848
11a9393609c8
revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20847
diff
changeset
|
123 print "----------------------------" |
20745
5fb7c36d751f
contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
124 |
20855
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
125 |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
126 print """ |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
127 |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
128 Result by revset |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
129 ================ |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
130 """ |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
131 |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
132 print 'Revision:', revs |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
133 for idx, rev in enumerate(revs): |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
134 sys.stdout.write('%i) ' % idx) |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
135 sys.stdout.flush() |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
136 printrevision(rev) |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
137 |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
138 print |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
139 print |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
140 |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
141 for ridx, rset in enumerate(revsets): |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
142 |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
143 print "revset #%i: %s" % (ridx, rset) |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
144 for idx, data in enumerate(results): |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
145 print '%i) %s' % (idx, data[ridx]) |
dfad9bb23ab4
revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20854
diff
changeset
|
146 print |