Opened 10 years ago
Last modified 9 years ago
#23623 closed Cleanup/optimization
ModelChoiceField generates unused temporary cache — at Version 1
Description (last modified by ) ¶
There is a huge memory consumption when using some admin pages with big production datasets (see also https://groups.google.com/forum/#!topic/django-users/YYlLWyBH_go).
I looked into the ModelChoiceIterator
used to generate the choices for a ModelChoiceField
, and noticed that an unused temporary queryset cache was generated due to the use of .all()
, but unused (there is no variable pointing to the cloned queryset after the iteration).
With the proposed PR, this cache is no longer generated. After applying the patch, I noticed that the maximum memory usage dropped from ~200MB to ~150MB for a model with about 30 000 instances.