comparison contrib/revsetbenchmarks.py @ 25537:c1e24e1fd45f

revsetbenchmarks: hide most timing under a --verbose flag We mostly only care about total time. Dropping this output give us some room to display more useful information (like percentage different) in future changesets.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Tue, 09 Jun 2015 18:40:06 -0700
parents f3f1b4b86b35
children caff256205ea
comparison
equal deleted inserted replaced
25536:f3f1b4b86b35 25537:c1e24e1fd45f
101 nbidx //= 10 101 nbidx //= 10
102 if not idxwidth: 102 if not idxwidth:
103 idxwidth = 1 103 idxwidth = 1
104 return idxwidth 104 return idxwidth
105 105
106 def printresult(idx, data, maxidx): 106 def printresult(idx, data, maxidx, verbose=False):
107 """print a line of result to stdout""" 107 """print a line of result to stdout"""
108 mask = '%%0%ii) %%s' % idxwidth(maxidx) 108 mask = '%%0%ii) %%s' % idxwidth(maxidx)
109 out = ['%10.6f' % data['wall'], 109 out = ['%10.6f' % data['wall']]
110 '%10.6f' % data['comb'], 110 if verbose:
111 '%10.6f' % data['user'], 111 out.append('%10.6f' % data['comb'])
112 '%10.6f' % data['sys'], 112 out.append('%10.6f' % data['user'])
113 '%6d' % data['count'], 113 out.append('%10.6f' % data['sys'])
114 ] 114 out.append('%6d' % data['count'])
115 print mask % (idx, ' '.join(out)) 115 print mask % (idx, ' '.join(out))
116 116
117 def printheader(maxidx): 117 def printheader(maxidx, verbose=False):
118 header = [' ' * (idxwidth(maxidx) + 1), 118 header = [' ' * (idxwidth(maxidx) + 1),
119 ' %-8s' % 'wall', 119 ' %-8s' % 'time']
120 ' %-8s' % 'comb', 120 if verbose:
121 ' %-8s' % 'user', 121 header.append(' %-8s' % 'comb')
122 ' %-8s' % 'sys', 122 header.append(' %-8s' % 'user')
123 '%6s' % 'count', 123 header.append(' %-8s' % 'sys')
124 ] 124 header.append('%6s' % 'count')
125 print ' '.join(header) 125 print ' '.join(header)
126 126
127 def getrevs(spec): 127 def getrevs(spec):
128 """get the list of rev matched by a revset""" 128 """get the list of rev matched by a revset"""
129 try: 129 try:
139 help="read revset from FILE (stdin if omitted)", 139 help="read revset from FILE (stdin if omitted)",
140 metavar="FILE") 140 metavar="FILE")
141 parser.add_option("-R", "--repo", 141 parser.add_option("-R", "--repo",
142 help="run benchmark on REPO", metavar="REPO") 142 help="run benchmark on REPO", metavar="REPO")
143 143
144 parser.add_option("-v", "--verbose",
145 action='store_true',
146 help="display all timing data (not just best total time)")
147
144 (options, args) = parser.parse_args() 148 (options, args) = parser.parse_args()
145 149
146 if not args: 150 if not args:
147 parser.print_help() 151 parser.print_help()
148 sys.exit(255) 152 sys.exit(255)
175 printrevision(r) 179 printrevision(r)
176 print "----------------------------" 180 print "----------------------------"
177 update(r) 181 update(r)
178 res = [] 182 res = []
179 results.append(res) 183 results.append(res)
180 printheader(len(revsets)) 184 printheader(len(revsets), verbose=options.verbose)
181 for idx, rset in enumerate(revsets): 185 for idx, rset in enumerate(revsets):
182 data = perf(rset, target=options.repo) 186 data = perf(rset, target=options.repo)
183 res.append(data) 187 res.append(data)
184 printresult(idx, data, len(revsets)) 188 printresult(idx, data, len(revsets), verbose=options.verbose)
185 sys.stdout.flush() 189 sys.stdout.flush()
186 print "----------------------------" 190 print "----------------------------"
187 191
188 192
189 print """ 193 print """
202 print 206 print
203 207
204 for ridx, rset in enumerate(revsets): 208 for ridx, rset in enumerate(revsets):
205 209
206 print "revset #%i: %s" % (ridx, rset) 210 print "revset #%i: %s" % (ridx, rset)
207 printheader(len(results)) 211 printheader(len(results), verbose=options.verbose)
208 for idx, data in enumerate(results): 212 for idx, data in enumerate(results):
209 printresult(idx, data[ridx], len(results)) 213 printresult(idx, data[ridx], len(results), verbose=options.verbose)
210 print 214 print