]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
A performance fix related to the usage of the :func:`.defer` option
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 13 Jul 2013 20:28:42 +0000 (16:28 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 13 Jul 2013 20:29:07 +0000 (16:29 -0400)
commit731a4daf63dc0fdb784d195e89c5f357420657fb
tree274bd30f51930e070c086b9a8cc34b4e41b52547
parentfd8b2d188c58626bdc0d2f11341bc99ba81ae91d
A performance fix related to the usage of the :func:`.defer` option
when loading mapped entities.   The function overhead of applying
a per-object deferred callable to an instance at load time was
significantly higher than that of just loading the data from the row
(note that ``defer()`` is meant to reduce DB/network overhead, not
necessarily function call count); the function call overhead is now
less than that of loading data from the column in all cases.  There
is also a reduction in the number of "lazy callable" objects created
per load from N (total deferred values in the result) to 1 (total
number of deferred cols).
[ticket:2778]
doc/build/changelog/changelog_08.rst
lib/sqlalchemy/orm/attributes.py
lib/sqlalchemy/orm/loading.py
lib/sqlalchemy/orm/state.py
lib/sqlalchemy/orm/strategies.py
test/aaa_profiling/test_orm.py
test/orm/test_attributes.py
test/profiles.txt