| 208 | |
| 209 | |
| 210 | def do_benchmark(protocol, iters=5000, skip_slow=False): |
| 211 | setup = """ |
| 212 | from __main__ import hm, rs, TDevNullTransport |
| 213 | from thrift.protocol.{0} import {0}{1} |
| 214 | trans = TDevNullTransport() |
| 215 | prot = {0}{1}(trans{2}) |
| 216 | """ |
| 217 | |
| 218 | setup_fast = setup.format(protocol, 'Accelerated', ', fallback=False') |
| 219 | if not skip_slow: |
| 220 | setup_slow = setup.format(protocol, '', '') |
| 221 | |
| 222 | print("Starting Benchmarks") |
| 223 | |
| 224 | if not skip_slow: |
| 225 | print("HolyMoley Standard = %f" % |
| 226 | timeit.Timer('hm.write(prot)', setup_slow).timeit(number=iters)) |
| 227 | |
| 228 | print("HolyMoley Acceler. = %f" % |
| 229 | timeit.Timer('hm.write(prot)', setup_fast).timeit(number=iters)) |
| 230 | |
| 231 | if not skip_slow: |
| 232 | print("FastStruct Standard = %f" % |
| 233 | timeit.Timer('rs.write(prot)', setup_slow).timeit(number=iters)) |
| 234 | |
| 235 | print("FastStruct Acceler. = %f" % |
| 236 | timeit.Timer('rs.write(prot)', setup_fast).timeit(number=iters)) |
| 237 | |
| 238 | |
| 239 | if __name__ == '__main__': |