import random
import timeit

for size in [10, 20, 50, 100, 200, 500, 1000]:
    print "------ size = %d ------" % size
    strings = []
    byteses = []
    for i in range(100000):
        n = random.randrange(0, size)
        s = "x"*n
        b = bytes(s)
        strings.append(s)
        byteses.append(b)

    timer = timeit.Timer("bbb = bytes()\nfor b in byteses: bbb += b",
                         "from __main__ import strings, byteses")
    print "bytes+=    %.3f" % min(timer.repeat(3, 10))

    timer = timeit.Timer("bbb = bytes.join(byteses)",
                         "from __main__ import strings, byteses")
    print "bytes.join %.3f" % min(timer.repeat(3, 10))

    timer = timeit.Timer("sss = ''\nfor s in strings: sss += s",
                         "from __main__ import strings, byteses")
    print "str+=      %.3f" % min(timer.repeat(3, 10))

    timer = timeit.Timer("sss = ''.join(strings)",
                         "from __main__ import strings, byteses")
    print "str.join   %.3f" % min(timer.repeat(3, 10))
