def run_timeit(quotes, iterations, repeat, jit=False, load=False,
cython=False, profile=False):
quotes_schema = QuoteSchema(many=True)
if jit:
if cython:
quotes_schema.jit = CythonJit
else:
quotes_schema.jit = Jit
if profile:
profile = cProfile.Profile()
profile.enable()
dumped_quotes = quotes_schema.dump(quotes).data
gc.collect()
if load:
def marshmallow_func():
quotes_schema.load(dumped_quotes, many=True)
else:
def marshmallow_func():
quotes_schema.dump(quotes)
best = min(timeit.repeat(marshmallow_func,
'gc.enable()',
number=iterations,
repeat=repeat))
if profile:
profile.disable()
file_name = 'optimized.pprof' if jit else 'original.pprof'
profile.dump_stats(file_name)
usec = best * 1e6 / iterations
return usec
评论列表
文章目录