[Python-Dev] Revising RE docs

Gareth McCaughan gmccaughan at synaptics-uk.com
Fri Sep 2 12:40:35 CEST 2005


On Thursday 2005-09-01 18:09, Guido van Rossum wrote:

> They *are* cached and there is no cost to using the functions instead
> of the methods unless you have so many regexps in your program that
> the cache is cleared (the limit is 100).

Sure there is; the cost of looking them up in the cache.

    >>> import re,timeit

    >>> timeit.re=re
    >>> timeit.Timer("""re.search(r"(\d*).*(\d*)", "abc123def456")""").timeit(1000000)
    7.6042091846466064

    >>> timeit.r = re.compile(r"(\d*).*(\d*)")
    >>> timeit.Timer("""r.search("abc123def456")""").timeit(1000000)
    2.6358869075775146

    >>> timeit.Timer().timeit(1000000)
    0.091850996017456055

So in this (highly artificial toy) application it's about 7.5/2.5 = 3 times
faster to use the methods instead of the functions.

-- 
g



More information about the Python-Dev mailing list