Guest User

Untitled

a guest
Jun 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. def f1(list):
  2. string = ""
  3. for item in list:
  4. string = string + chr(item)
  5. return string
  6.  
  7. def f2(list):
  8. return reduce(lambda string, item: string + chr(item), list, "")
  9.  
  10. def f3(list):
  11. string = ""
  12. for character in map(chr, list):
  13. string = string + character
  14. return string
  15.  
  16. def f4(list):
  17. string = ""
  18. lchr = chr
  19. for item in list:
  20. string = string + lchr(item)
  21. return string
  22.  
  23. def f5(list):
  24. string = ""
  25. for i in range(0, 256, 16): # 0, 16, 32, 48, 64, ...
  26. s = ""
  27. for character in map(chr, list[i:i+16]):
  28. s = s + character
  29. string = string + s
  30. return string
  31.  
  32. import string
  33. def f6(list):
  34. return string.joinfields(map(chr, list), "")
  35.  
  36. import array
  37. def f7(list):
  38. return array.array('B', list).tostring()
  39.  
  40. from struct import pack
  41. def f8(list):
  42. return pack('%dB' % len(list), *list)
  43.  
  44. def cmpthese(n=0, functions=None):
  45. results = {}
  46. for func_name in functions:
  47. args = ['%s(range(256))' % func_name, 'from __main__ import %s' % func_name]
  48. t = Timer(*args)
  49. results[func_name] = 1 / (t.timeit(number=n) / n) # passes/sec
  50.  
  51. functions_sorted = sorted(functions, key=results.__getitem__)
  52. for f in functions_sorted:
  53. diff = []
  54. for func in functions_sorted:
  55. if func == f:
  56. diff.append(" --")
  57. else:
  58. diff.append("%5.0f%%" % (results[f]/results[func]*100 - 100))
  59. diffs = " ".join(diff)
  60.  
  61. print "%s\t%6d/s %s" % (f, results[f], diffs)
  62.  
  63.  
  64. if __name__=='__main__':
  65. from timeit import Timer
  66. cmpthese(1000, 'f1 f2 f3 f4 f5 f6 f7 f8'.split(" "))
Add Comment
Please, Sign In to add comment