def html_sample(save=True, path=None, doc=None): _dir = os.path.join(os.path.dirname(__file__), "data") if doc is None: doc = np.random.choice(glob.glob(_dir+"/*.html")) data = StringIO(open( os.path.join(_dir, doc)).read()) max_batch = 70 n_batches = 70 n_samples = 80 # max_batch = 20 # n_batches = 20 # n_samples = 20 run_params = OrderedDict(max_batch=max_batch, n_batches=n_batches, n_samples=n_samples) case = bp.bench("html with_gc", html_parse, data, run_params=run_params) path = path if path is not None else \ get_path("html_parse_"+os.path.splitext(os.path.basename(doc))[0], "", case=case) run_sample_case(case, save=save, path=path, path_suffix="gc") run_params["with_gc"] = False case = bp.bench("html without_gc", html_parse, data, run_params=run_params) run_sample_case(case, save=save, path=path)
def sample(f, *params, name=None, max_batch=100, n_batches=40, n_samples=100, save=True, path=None): if name is None: name = f.__name__ + str(params) if save: if path is None: path = get_path(f.__name__, params, max_batch, n_batches, n_samples) run_params = dict(n_samples=n_samples, max_batch=max_batch, n_batches=n_batches) case = bp.bench(name + "with gc", f, *params, run_params=run_params) run_sample_case(case, save=save, path=path, path_suffix="gc") run_params["with_gc"] = False case = bp.bench(name + "without gc", f, *params, run_params=run_params) run_sample_case(case, save=save, path=path)
# -*- coding: utf-8 -*- import math import benchpy as bp def factorial_slow(n): assert n >= 0 return 1 if n == 0 else n * factorial_slow(n - 1) def pow_slow(x, n): assert n >= 0 return 1 if n == 0 else x * pow_slow(x, n - 1) if __name__ == "__main__": n = 100 groups = [ bp.group("factorial(100)", [bp.bench("math_!", math.factorial, n), bp.bench("slow_!", factorial_slow, n)]), bp.group("pow(100, 100)", [bp.bench("math^", math.pow, n, n), bp.bench("simple^", pow_slow, n, n)]), ] print(bp.run(groups))
# -*- coding: utf-8 -*- import benchpy as bp def cyclic_list(n): for i in range(n): cycle = [] cycle.append(cycle) if __name__ == "__main__": n_cycles = 128 name = "cycle_list({})".format(n_cycles) groups = [ bp.group("+GC", [bp.bench(name, cyclic_list, n_cycles)], with_gc=True), bp.group("-GC", [bp.bench(name, cyclic_list, n_cycles)], with_gc=False) ] res = bp.run(groups, n_samples=16, max_batch=32, n_batches=10, n_jobs=-1) print(res) res.save_info(path="res")
# -*- coding: utf-8 -*- import benchpy as bp def noop(): pass if __name__ == "__main__": print(bp.run(bp.bench("noop", noop), n_samples=4, max_batch=32, n_batches=4))
def bench_f(f_, *args, run_params_=None, **kwargs): if run_params_ is None: run_params_ = {} bp.bench("f", f_, *args, run_params=run_params_, **kwargs).run()
import benchpy as bp from benchpy.run import noop def bench_f(f_, *args, run_params_=None, **kwargs): if run_params_ is None: run_params_ = {} bp.bench("f", f_, *args, run_params=run_params_, **kwargs).run() if __name__ == "__main__": run_params = dict(max_batch=10, n_batches=2, n_samples=2) f = noop run_params_ = dict(run_params) run_params_["n_jobs"] = -1 res = bp.group("benchmark_time", [bp.bench("f", f, run_params=run_params), bp.bench("bench(f)", bench_f, noop, run_params=run_params, run_params_=run_params_)]).run() print(res) print(res.results[1])