from hachoir_core.benchmark import Benchmark from random import randint def ordered_rules1(rules): l = rules.items() l.sort() return l def ordered_rules2(rules): keys = rules.keys() keys.sort() return [(id,rules[id]) for id in keys] data = {} for i in xrange(1000): data[ randint(-1000,1000) ] = randint(-1000,1000) b = Benchmark(max_time=2.0) b.run(ordered_rules1, data) b.run(ordered_rules2, data) #Run benchmark: 3514 calls (estimate: 2.00 sec) #Benchmark: best=163.79 usec average=171.73 usec worst=921.96 usec total=603.45 ms #Run benchmark: 5436 calls (estimate: 2.00 sec) #Benchmark: best=350.95 usec average=387.83 usec worst=80.87 ms total=2.11 sec