# -*- coding: utf-8 -*- import sys, bz2, timeit fn = sys.argv[1] min_t = 2 if len(sys.argv) <= 2 else float(sys.argv[2]) benchs = [] for i in (1, 10, 100, 1000, 10000, 100000): benchs.append('read(%d)' % i) benchs.append('read()') for i in (1, 10, 100, 1000, 10000, 100000): benchs.append('read1(%d)' % i) benchs.append('read1()') benchs.append('readline()') for s in benchs: stmt = 'with bz2.BZ2File(%r) as f:\n while f.%s: pass' % (fn, s) n = 1 while True: t = timeit.timeit(stmt, 'import bz2', number=n) if t >= min_t: break n = min(int(n * min_t / t * 1.1) + 1, 10 * n) print('%.2g\t%s' % (t / n, s)) sys.stdout.flush()