re.match() performance

Emanuele D'Arrigo manu3d at gmail.com
Thu Dec 18 14:49:49 CET 2008


Hi everybody!

I've written the code below to test the differences in performance
between compiled and non-compiled regular expression matching but I
don't quite understand the results. It appears that the performance
difference is only around 2%, even if I run the


------------

import re
import time

## Setup
pattern = "<a>(.*)</a>"
compiledPattern = re.compile(pattern)

longMessage = "<a>"+ "a" * 100000 +"</a>"

numberOfRuns = 1000

## TIMED FUNCTIONS
startTime = time.clock()
for i in range(0, numberOfRuns):
    re.match(pattern, longMessage)
patternMatchingTime = time.clock() - startTime

startTime = time.clock()
for i in range(0, numberOfRuns):
    compiledPattern.match(longMessage)
compiledPatternMatchingTime = time.clock() - startTime

ratioCompiledToNot = compiledPatternMatchingTime / patternMatchingTime

## PRINT OUTS
print("")
print("           Pattern Matching Time: " + str(patternMatchingTime))
print("(Compiled) Pattern Matching Time: " + str
(compiledPatternMatchingTime))
print("")
print("Ratio Compiled/NotCompiled: " + str(ratioCompiledToNot))
print("")



More information about the Python-list mailing list