[Python-Dev] 2.5a2 try/except slow-down: Convert to type? (original) (raw)
Sean Reifschneider jafo-python-dev at tummy.com
Wed May 24 12:24:41 CEST 2006
- Previous message: [Python-Dev] 2.5 schedule
- Next message: [Python-Dev] 2.5a2 try/except slow-down: Convert to type?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
We're working at the sprint on tracking this down. I want to provide some history first and then what we're looking for feedback on.
Steve Holden found this on Sunday, the pybench try/except test shows a ~60% slowdown from 2.4.3 to 2.5a2. The original test is, roughly:
for i in range(N): try: raise ValueError, 'something' except: pass
But changing it to the following shows 0% slowdown from 2.4.3 to 2.5a2:
e = ValueError('something') for i in range(N): try: raise e except: pass
The change is that from 2.4.3 to 2.5a2 includes Brett Cannon's patch to make exceptions all new-style objects.
Brett provided the following direction:
Right, I meant change how it (BaseException) is written. Right now it uses PyMethodDef for magic methods and just uses PyType_New() as a constructor. I was wondering if, for some reason, it would be faster if you used a PyType_Type definition for BaseException and used the proper C struct to associate the methods with the class.
Richard Jones has done some investigation, and we're looking at fixing it from the current implementation. This is basically a direct implementation of the old-style exception, but inheriting from object. Converting it to a type in C should reduce the cost dramatically.
We're looking for feedback on where this may cause problems or break things. Thoughts?
Thanks, Sean
Thieves broke into Scotland Yard yesterday and stole all the toilets. Detectives say they have nothing to go on. Sean Reifschneider, Member of Technical Staff <jafo at tummy.com> tummy.com, ltd. - Linux Consulting since 1995: Ask me about High Availability
- Previous message: [Python-Dev] 2.5 schedule
- Next message: [Python-Dev] 2.5a2 try/except slow-down: Convert to type?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]