#16759: Expensive sql.Query cloning
-------------------------------------+-------------------------------------
     Reporter:  Suor                 |                    Owner:  Suor
         Type:  Bug                  |                   Status:  closed
    Component:  Database layer       |                  Version:  1.3
  (models, ORM)                      |               Resolution:  fixed
     Severity:  Normal               |             Triage Stage:  Ready for
     Keywords:  orm performance      |  checkin
  cloning                            |      Needs documentation:  0
    Has patch:  1                    |  Patch needs improvement:  0
  Needs tests:  0                    |                    UI/UX:  0
Easy pickings:  0                    |
-------------------------------------+-------------------------------------
Changes (by Anssi Kääriäinen <akaariai@…>):

 * status:  new => closed
 * resolution:   => fixed


Comment:

 In [changeset:"23ca3a01940c63942885df4709712cebf4df79ec"]:
 {{{
 #!CommitTicketReference repository=""
 revision="23ca3a01940c63942885df4709712cebf4df79ec"
 Fixed #16759 -- Remove use of __deepcopy__ in qs.clone()

 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.
 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/16759#comment:36>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to