fork download
  1. #!/usr/bin/env python3
  2.  
  3. import timeit
  4.  
  5. def f():
  6. buf = b""
  7.  
  8. for i in range(20480):
  9. buf += b'c'
  10.  
  11. return buf
  12.  
  13. def g():
  14. buf = bytearray()
  15.  
  16. val = b'c'[0]
  17.  
  18. for i in range(20480):
  19. buf.append(val)
  20.  
  21. return bytes(buf)
  22.  
  23. def h():
  24. buf = []
  25.  
  26. for i in range(20480):
  27. buf.append(b'c')
  28.  
  29. return b"".join(buf)
  30.  
  31. def j():
  32. def inner():
  33. for i in range(20480):
  34. yield b'c'
  35.  
  36. return b"".join(inner())
  37.  
  38. if __name__ == "__main__":
  39. print(timeit.repeat(f, number=3))
  40. print(timeit.repeat(g, number=3))
  41. print(timeit.repeat(h, number=3))
  42. print(timeit.repeat(j, number=3))
Success #stdin #stdout 0.4s 10088KB
stdin
Standard input is empty
stdout
[0.06528711318969727, 0.06430411338806152, 0.06418895721435547]
[0.01108407974243164, 0.011046171188354492, 0.011004924774169922]
[0.012629032135009766, 0.012526988983154297, 0.012479066848754883]
[0.010136842727661133, 0.010067939758300781, 0.010097980499267578]