This week-end, i’ve spend some time about searching how to optimize PyMT code. And done some interesting benchmark. Next days, i’ll post some of them, in order to remember which is the better solution.
For the first round: let’s test Deque from collections package VS Python List !
Code:
from time import time
# collections VS list
def bench_deque(count):
from collections import deque
q = deque()
for x in xrange(count):
for z in xrange(1000):
q.append(z)
while True:
try:
q.pop()
except:
break
def bench_list(count):
q = []
for x in xrange(count):
for z in xrange(1000):
q.append(z)
for y in xrange(len(q)):
q.pop(0)
def run(f, c=100000):
t = time()
f(c)
print '%-15s time=%.8f count=%d' % (f.func_name, time() - t, c)
run(bench_deque)
run(bench_list)
And the result :
bench_deque time=35.61677003 count=100000 bench_list time=78.20481586 count=100000
Impact for PyMT: wm_pen, wm_touch.