fork download
  1. import timeit
  2.  
  3. def timeit_replace(iter):
  4. replace_setup = """
  5. text = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  6. """
  7. replace_main = """
  8. text.replace('H', '').replace('O', '').replace('G', '').replace('E', '')
  9. """
  10. print 'replace:',
  11. print timeit.timeit(replace_main, replace_setup, number = iter)
  12.  
  13.  
  14. def timeit_replace_uni(iter):
  15. replace_setup = """
  16. text = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  17. """
  18. replace_main = """
  19. text.replace(u'H', u'').replace(u'O', u'').replace(u'G', u'').replace(u'E', u'')
  20. """
  21. print 'replace(unicode):',
  22. print timeit.timeit(replace_main, replace_setup, number = iter)
  23.  
  24. def timeit_sub(iter):
  25. sub_setup = """
  26. text = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  27. import re
  28. pattern = re.compile('[HOGE]')
  29. """
  30. sub_main = """
  31. pattern.sub('', text)
  32. """
  33. print 'sub:',
  34. print timeit.timeit(sub_main, sub_setup, number = iter)
  35.  
  36.  
  37. def timeit_sub_uni(iter):
  38. sub_setup = """
  39. text = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  40. import re
  41. pattern = re.compile(u'[HOGE]')
  42. """
  43. sub_main = """
  44. pattern.sub('', text)
  45. """
  46. print 'sub(unicode):',
  47. print timeit.timeit(sub_main, sub_setup, number = iter)
  48.  
  49. def timeit_translate(iter):
  50. translate_setup = """
  51. text = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  52. """
  53. translate_main = """
  54. text.translate(None, 'HOGE')
  55. """
  56. print 'translate:',
  57. print timeit.timeit(translate_main, translate_setup, number = iter)
  58.  
  59. def timeit_translate_uni(iter):
  60. translate_uni_setup = """
  61. text = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  62. delete = {ord(u'H'): None, ord(u'O'): None, ord(u'G'): None, ord(u'E'): None}
  63. """
  64. translate_uni_main = """
  65. text.translate(delete)
  66. """
  67. print 'translate(unicode):',
  68. print timeit.timeit(translate_uni_main, translate_uni_setup, number = iter)
  69.  
  70. if __name__ == '__main__':
  71. timeit_replace(500000)
  72. timeit_sub(500000)
  73. timeit_translate(500000)
  74. timeit_replace_uni(500000)
  75. timeit_sub_uni(500000)
  76. timeit_translate_uni(500000)
Success #stdin #stdout 8.5s 10840KB
stdin
Standard input is empty
stdout
replace: 0.845347166061
sub: 1.4913828373
translate: 0.403444051743
replace(unicode): 0.987900018692
sub(unicode): 1.63653588295
translate(unicode): 3.04258799553