fork download
  1. import timeit
  2. from itertools import imap, izip
  3.  
  4. setup = [ '''
  5. from itertools import imap, izip
  6. f = lambda seq, size: map ( seq.__getitem__, imap ( slice, xrange ( 0, len(seq), size ), xrange ( size, len(seq), size ) ) )
  7. ''',
  8. '''
  9. from itertools import imap, izip
  10. f = lambda seq, size: map ( ''.join, izip( *([iter(seq)]*size) ) )
  11. ''',
  12. '''
  13. f = lambda seq, size: [seq[i:i+size] for i in xrange(0, len(seq), size)] # yuxio, range -> xrange
  14. ''',
  15. '''
  16. f = lambda seq, size: [seq[i:i+size] for i in range(0, len(seq), size)] # yuxio
  17. ''' ]
  18.  
  19.  
  20. stmt = lambda len_seq, size: 'g = f ( "{0}", {1} )'.format ( 'a'*len_seq, size )
  21.  
  22. for seq_len in [ 100, 1000, 10000 ]:
  23. for size in xrange ( 2, 10, 2 ):
  24. print map ( "{0:1.3f}".format, [ 100 * timeit.timeit ( stmt = stmt ( seq_len, size ), setup = _setup, number = 100000 / seq_len ) for _setup in setup ] )
  25. for size in xrange ( 20, 100, 20 ):
  26. print map ( "{0:1.3f}".format, [ 100 * timeit.timeit ( stmt = stmt ( seq_len, size ), setup = _setup, number = 100000 / seq_len ) for _setup in setup ] )
  27.  
  28.  
Success #stdin #stdout 0.62s 8888KB
stdin
Standard input is empty
stdout
['1.829', '1.544', '1.090', '1.166']
['0.997', '1.202', '0.564', '0.598']
['0.758', '1.045', '0.445', '0.469']
['0.629', '1.004', '0.354', '0.371']
['0.399', '0.989', '0.187', '0.201']
['0.368', '0.989', '0.143', '0.157']
['0.306', '1.036', '0.123', '0.132']
['0.305', '1.271', '0.121', '0.136']
['1.598', '1.258', '0.980', '1.049']
['0.786', '0.920', '0.500', '0.537']
['0.547', '0.825', '0.347', '0.371']
['0.411', '0.783', '0.260', '0.277']
['0.188', '0.714', '0.114', '0.122']
['0.107', '0.701', '0.062', '0.068']
['0.081', '0.687', '0.047', '0.051']
['0.069', '0.701', '0.037', '0.041']
['1.630', '1.238', '0.958', '1.041']
['0.779', '1.008', '0.460', '0.495']
['0.543', '0.896', '0.327', '0.352']
['0.382', '0.815', '0.231', '0.250']
['0.157', '0.739', '0.096', '0.108']
['0.083', '0.647', '0.053', '0.057']
['0.057', '0.637', '0.037', '0.039']
['0.044', '0.632', '0.028', '0.030']