On Fri, Apr 26, 2013 at 9:01 PM, Michael Bayer <mike...@zzzcomputing.com> wrote: >>>>> All attributes have to be expire-able and act as proxies for a database >>>>> connection so I'm not really sure where to go with that. I'm not too >>>>> thrilled about proposals to build in various "alternate performance" >>>>> behaviors as the library starts to try to act in many different ways that >>>>> the vast majority of users aren't even aware of, it increases complexity >>>>> internally, produces vast amounts of new use cases to test and maintain, >>>>> etc. I'm always willing to look at patches that are all winning, of >>>>> course, so if you have some way to speed things up without breaking usage >>>>> contracts and without major new complexity/brittleness I'd love to look >>>>> at a pull request. >>>> >>>> I know, it's just a probe to see what kind of a speedup could be >>>> obtained by not having that getter's interference. You know... simply >>>> implementing InstrumentedAttribute in C could do the trick... >>> >>> >>> In fact... I'm gonna try that... >> >> feel free! though you might be surprised, a C function that just calls out >> to all the same Python operations anyway is often only negligibly faster, >> not enough to make the extra complexity worth it. > > also if you're looking to help with C, I'd love to get the C extensions out > in the Py3K version, we have a patch that's fallen out of date at > http://www.sqlalchemy.org/trac/ticket/2161 that needs freshening up and > testing.
Will look into that. The point of the C function is to be able to quickly bypass all that _supports_population and function call overheads. The getter is dead-simple, so its cost is dominated by CPython function call overheads, that are readily removable by re-implementing in C. It can reliably and quickly detect when instance_dict returns __dict__, too. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy?hl=en. For more options, visit https://groups.google.com/groups/opt_out.