Larry Martell wrote: > I had some code that did this: > > meas_regex = '_M\d+_' > meas_re = re.compile(meas_regex) > > if meas_re.search(filename): > stuff1() > else: > stuff2() > > I then had to change it to this: > > if meas_re.search(filename): > if 'MeasDisplay' in filename: > stuff1a() > else: > stuff1() > else: > if 'PatternFov' in filename: > stuff2a() > else: > stuff2() > > This code needs to process many tens of 1000's of files, and it runs > often, so it needs to run very fast. Needless to say, my change has > made it take 2x as long.
That is *not* self-evident. Usually stuffX() would take much longer than the initial tests. So the first step would be to verify that if meas_re.search(filename): if 'MeasDisplay' in filename: pass else: pass else: if 'PatternFov' in filename: pass else: pass takes a significant amount of the total time the piece of code you give takes to execute. > Can anyone see a way to improve that? Not really. I'd check if there is a branch that is executed most of the time or that takes much longer to execute than the other ones, and then try to optimize that. -- https://mail.python.org/mailman/listinfo/python-list