"Charles T. Smith" <cts.private.ya...@gmail.com>: > Here's the programs: > > #!/usr/bin/env python > # vim: tw=0 > import sys > import re > > isready = re.compile ("(.*) is ready") > relreq = re.compile (".*release_req") > for fn in sys.argv[1:]: # logfile name > tn = None > with open (fn) as fd: > for line in fd: > #match = re.match ("(.*) is ready", line) > match = isready.match (line) > if match: > tn = match.group(1) > #match = re.match (".*release_req", line) > match = relreq.match (line) > if match: > #print "%s: %s" % (tn, line), > print tn > > vs. > > while (<>) { > if (/(.*) is ready/) { > $tn = $1; > } > elsif (/release_req/) { > print "$tn\n"; > } > } > > Look at those numbers: > 1 minute for python without precompiled REs > 1/2 minute with precompiled REs > 5 seconds with perl.
Can't comment on the numbers but the code segments are not quite analogous. What about this one: #!/usr/bin/env python # vim: tw=0 import sys import re isready = re.compile("(.*) is ready") for fn in sys.argv[1:]: tn = None with open(fn) as fd: for line in fd: match = isready.match(line) if match: tn = match.group(1) elif "release_req" in line: print tn Marko -- https://mail.python.org/mailman/listinfo/python-list