import perf def bench_write(loops, bufsize, s): with open("/dev/null", "w", bufsize) as f: range_it = range(loops) t0 = perf.perf_counter() for _ in range_it: f.write(s) f.write(s) f.write(s) f.write(s) t1 = perf.perf_counter() return t1 - t0 def main(): s_ascii = "hellohello\n" s_unicode = "こんにちは\n" bufsize = 8*1024 runner = perf.Runner() runner.bench_time_func("write_ascii_linebuffered", bench_write, 1, s_ascii, inner_loops=4) runner.bench_time_func("write_unicode_linebuffered", bench_write, 1, s_unicode, inner_loops=4) runner.bench_time_func("write_ascii_8k", bench_write, 8*1024, s_ascii, inner_loops=4) runner.bench_time_func("write_unicode_8k", bench_write, 8*1024, s_unicode, inner_loops=4) runner.bench_time_func("write_ascii_32k", bench_write, 32*1024, s_ascii, inner_loops=4) runner.bench_time_func("write_unicode_32k", bench_write, 32*1024, s_unicode, inner_loops=4) def main2(): s_ascii = "hellohello\n" s_unicode = "こんにちは\n" bufsize = 8*1024 runner = perf.Runner() runner.bench_time_func("write_unicode_16k", bench_write, 16*1024, s_unicode, inner_loops=4) main()