Claudiu.Popa added the comment: Here's a benchmark:
- with current patch: # ./python -S -m timeit -n 10000 -s 'import dbm.dumb as dbm; d=dbm.open("x.dat", "c");d.close()' 'try:' ' len(d)' 'except OSError:' ' pass' 10000 loops, best of 3: 1.78 usec per loop - using try: return len(self._index) except TypeError: raise error('...') # ./python -S -m timeit -n 10000 -s 'import dbm.dumb as dbm; d=dbm.open("x.dat", "c");d.close()' 'try:' ' len(d)' 'except OSError:' ' pass' 10000 loops, best of 3: 3.27 usec per loop Now this seems odd, maybe catching + reraising an exception has a greater overhead than a func call and checking if an attribute is None. Anyway, I agree that dbm.dumb is not performance critical. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue19385> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com