From: Marcelo M. <mm...@ac...> - 2006-03-04 08:02:06
|
Robin Dunn wrote: > William S Fulton wrote: > >> William S Fulton wrote: >> >>> Marcelo Matus wrote: >>> >>>> Here we are ready for 1.3.29. >>>> >>>> All reported errors are fixed and we reached the 2,000 downloads >>>> already... >>>> >>>> so, William, whenever you have time..... >>>> >>>> >>> I'm a bit short of bandwidth right now. Early next week should be >>> good. There still seem to be a few bugs rolling in so probably okay >>> to wait a few more days:) >>> >> >> Unless there are any objections, I'm going to try and make the >> release on Sunday. I don't think we need a release candidate. Please >> start testing from cvs and please no more code changes so that >> testing is less drawn out. > > > This isn't an objection, just a concern. I was working with Andi > Vadja to get PyLucene working with 1.3.28 and he noticed some big > runtime performance problems. Using Python's timeit module he tested > like this: > > python -m timeit -s "from PyLucene import Document" "Document()" > > Here are his results: > > with 1.3.28: 100 loops, best of 3: 14.5 msec per loop > with 1.3.24 (and my hacks): 10000 loops, best of 3: 88.2 usec per > loop > ie, 1.3.24 is 164 times faster :( > > > He noticed the new try/except in the __init__ of the proxy classes and > tested again after hacking them out, with these results: > > without the try/except : 10000 loops, best of 3: 21 usec per loop > this is now 4 times *faster* than 1.3.24, hence 640 times > faster than with the try/except > > > I tried to duplicate the problem with wxPython, but wasn't able to. > Part of it may be that I was not able to use 1.3.28 because of a bogus > syntax error that I couldn't find a workaround for, so I updated to > 1.3.29-cvs and used that instead. Here are my results in timing the > creation of a wx.Size object: > > SWIG 1.3.24: > 10000 loops, best of 3: 40.5 usec per loop > > SWIG 1.3.27: > 10000 loops, best of 3: 46.8 usec per loop > > SWIG 1.3.29, with try/except: > 10000 loops, best of 3: 30.8 usec per loop > > SWIG 1.3.29 without try/except: > 100000 loops, best of 3: 11.7 usec per loop > > > First, does anybody recall a change since 1.3.28 that might have > gotten rid of some unnecessary overhead in proxy object construction > and explain Andi's poor timings? Second, the improvement in my times > without the try/except in the __init__ is an attractive boost, is > there perhaps a way to do it that doesn't have as much cost as a > try/except? > yes, before going to fix the try/except issue, could you time using the swig and the -O option?, thanks. Marcelo |