#!/usr/bin/env python3
import timeit
def f():
buf = b""
for i in range(20480):
buf += b'c'
return buf
def g():
buf = bytearray()
val = b'c'[0]
for i in range(20480):
buf.append(val)
return bytes(buf)
def h():
buf = []
for i in range(20480):
buf.append(b'c')
return b"".join(buf)
def j():
def inner():
for i in range(20480):
yield b'c'
return b"".join(inner())
if __name__ == "__main__":
print(timeit.repeat(f, number=3))
print(timeit.repeat(g, number=3))
print(timeit.repeat(h, number=3))
print(timeit.repeat(j, number=3))
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoKaW1wb3J0IHRpbWVpdAoKZGVmIGYoKToKICAgIGJ1ZiA9IGIiIgoKICAgIGZvciBpIGluIHJhbmdlKDIwNDgwKToKICAgICAgICBidWYgKz0gYidjJwoKICAgIHJldHVybiBidWYKCmRlZiBnKCk6CiAgICBidWYgPSBieXRlYXJyYXkoKQoKICAgIHZhbCA9IGInYydbMF0KCiAgICBmb3IgaSBpbiByYW5nZSgyMDQ4MCk6CiAgICAgICAgYnVmLmFwcGVuZCh2YWwpCgogICAgcmV0dXJuIGJ5dGVzKGJ1ZikKCmRlZiBoKCk6CiAgICBidWYgPSBbXSAKCiAgICBmb3IgaSBpbiByYW5nZSgyMDQ4MCk6CiAgICAgICAgYnVmLmFwcGVuZChiJ2MnKQoKICAgIHJldHVybiBiIiIuam9pbihidWYpCgpkZWYgaigpOgogICAgZGVmIGlubmVyKCk6CiAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMjA0ODApOgogICAgICAgICAgICB5aWVsZCBiJ2MnCgogICAgcmV0dXJuIGIiIi5qb2luKGlubmVyKCkpCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgcHJpbnQodGltZWl0LnJlcGVhdChmLCBudW1iZXI9MykpCiAgICBwcmludCh0aW1laXQucmVwZWF0KGcsIG51bWJlcj0zKSkKICAgIHByaW50KHRpbWVpdC5yZXBlYXQoaCwgbnVtYmVyPTMpKQogICAgcHJpbnQodGltZWl0LnJlcGVhdChqLCBudW1iZXI9Mykp
[0.06528711318969727, 0.06430411338806152, 0.06418895721435547]
[0.01108407974243164, 0.011046171188354492, 0.011004924774169922]
[0.012629032135009766, 0.012526988983154297, 0.012479066848754883]
[0.010136842727661133, 0.010067939758300781, 0.010097980499267578]