#!/usr/bin/env python3
import timeit
def f1():
buf = b""
for i in range(102):
buf += b'c'
return buf
def f2():
buf = b""
for i in range(1024):
buf += b'c'
return buf
def f3():
buf = b""
for i in range(10240):
buf += b'c'
return buf
def g1():
buf = bytearray()
for i in range(102):
buf.append(b'c'[0])
return bytes(buf)
def g2():
buf = bytearray()
for i in range(1024):
buf.append(b'c'[0])
return bytes(buf)
def g3():
buf = bytearray()
for i in range(10240):
buf.append(b'c'[0])
return bytes(buf)
if __name__ == "__main__":
print(timeit.repeat(f1, number=100))
print(timeit.repeat(f2, number=100))
print(timeit.repeat(f3, number=100))
print("");
print(timeit.repeat(g1, number=100))
print(timeit.repeat(g2, number=100))
print(timeit.repeat(g3, number=100))
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoKaW1wb3J0IHRpbWVpdAoKZGVmIGYxKCk6CiAgICBidWYgPSBiIiIKCiAgICBmb3IgaSBpbiByYW5nZSgxMDIpOgogICAgICAgIGJ1ZiArPSBiJ2MnCgogICAgcmV0dXJuIGJ1ZgoKZGVmIGYyKCk6CiAgICBidWYgPSBiIiIKCiAgICBmb3IgaSBpbiByYW5nZSgxMDI0KToKICAgICAgICBidWYgKz0gYidjJwoKICAgIHJldHVybiBidWYKCmRlZiBmMygpOgogICAgYnVmID0gYiIiCgogICAgZm9yIGkgaW4gcmFuZ2UoMTAyNDApOgogICAgICAgIGJ1ZiArPSBiJ2MnCgogICAgcmV0dXJuIGJ1ZgoKZGVmIGcxKCk6CiAgICBidWYgPSBieXRlYXJyYXkoKQoKICAgIGZvciBpIGluIHJhbmdlKDEwMik6CiAgICAgICAgYnVmLmFwcGVuZChiJ2MnWzBdKQoKICAgIHJldHVybiBieXRlcyhidWYpCgpkZWYgZzIoKToKICAgIGJ1ZiA9IGJ5dGVhcnJheSgpCgogICAgZm9yIGkgaW4gcmFuZ2UoMTAyNCk6CiAgICAgICAgYnVmLmFwcGVuZChiJ2MnWzBdKQoKICAgIHJldHVybiBieXRlcyhidWYpCgpkZWYgZzMoKToKICAgIGJ1ZiA9IGJ5dGVhcnJheSgpCgogICAgZm9yIGkgaW4gcmFuZ2UoMTAyNDApOgogICAgICAgIGJ1Zi5hcHBlbmQoYidjJ1swXSkKCiAgICByZXR1cm4gYnl0ZXMoYnVmKQoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHByaW50KHRpbWVpdC5yZXBlYXQoZjEsIG51bWJlcj0xMDApKQogICAgcHJpbnQodGltZWl0LnJlcGVhdChmMiwgbnVtYmVyPTEwMCkpCiAgICBwcmludCh0aW1laXQucmVwZWF0KGYzLCBudW1iZXI9MTAwKSkKICAgIHByaW50KCIiKTsKICAgIHByaW50KHRpbWVpdC5yZXBlYXQoZzEsIG51bWJlcj0xMDApKQogICAgcHJpbnQodGltZWl0LnJlcGVhdChnMiwgbnVtYmVyPTEwMCkpCiAgICBwcmludCh0aW1laXQucmVwZWF0KGczLCBudW1iZXI9MTAwKSkK
[0.0020170211791992188, 0.0019440650939941406, 0.0019409656524658203]
[0.041037797927856445, 0.041018009185791016, 0.04107093811035156]
[0.7578439712524414, 0.7591700553894043, 0.7608458995819092]
[0.0020971298217773438, 0.002053976058959961, 0.0020461082458496094]
[0.01930403709411621, 0.01883697509765625, 0.019004106521606445]
[0.18823003768920898, 0.18645501136779785, 0.18684792518615723]