23ca3a0194
The original problem was that queryset cloning was really expensive when filtering with F() clauses. The __deepcopy__ went too deep copying _meta attributes of the models used. To fix this the use of __deepcopy__ in qs cloning was removed. This commit results in some speed improvements across the djangobench benchmark suite. Most query_* tests are 20-30% faster, save() is 50% faster and finally complex filtering situations can see 2x to order of magnitude improvments. Thanks to Suor, Alex and lrekucki for valuable feedback. |
||
---|---|---|
.. | ||
__init__.py | ||
aggregates.py | ||
compiler.py | ||
constants.py | ||
datastructures.py | ||
expressions.py | ||
query.py | ||
subqueries.py | ||
where.py |