1ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehimport re 2ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehimport time 3ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 4ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehdef main(): 5ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh s = "\13hello\14 \13world\14 " * 1000 6ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh p = re.compile(r"([\13\14])") 7ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh timefunc(10, p.sub, "", s) 8ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh timefunc(10, p.split, s) 9ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh timefunc(10, p.findall, s) 10ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 11ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehdef timefunc(n, func, *args, **kw): 12ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh t0 = time.clock() 13ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh try: 14ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh for i in range(n): 15ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh result = func(*args, **kw) 16ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh return result 17ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh finally: 18ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh t1 = time.clock() 19ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh if n > 1: 20ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh print n, "times", 21ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh print func.__name__, "%.3f" % (t1-t0), "CPU seconds" 22ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 23ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehmain() 24