[CentralOH] Django Management Command Memory Usage
jep200404 at columbus.rr.com
jep200404 at columbus.rr.com
Mon Jun 4 16:28:17 CEST 2012
How can I reduce the memory usage in a Django management command?
I have some Django code like follows in a management program:
class Command(BaseCommand):
...
def handle(self, *args, **options):
for record in Places.objects.all():
if record.x and record.y:
record.point = (
Point(float(record.x)/1000.,
float(record.y)/1000.))
else:
record.point = None
record.save()
django.db.connection.close()
In the settings.py file I have:
DEBUG = False
Places has millions of rows.
top reveals that the program is using 18.6 Gigabytes of memory.
How can I reduce that memory usage?
Am I neglecting to close or release something?
The only dox I'm finding about memory use related to query sets
advise to use iterators instead of converting to a list.
I'm already following that advice, but I'm not finding
further guidance about memory use about record modification.
Since DEBUG is False, I've already heeding the following.
https://docs.djangoproject.com/en/dev/faq/models/#why-is-django-leaking-memory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
I have found that the following might be nice,
but doubt it addresses the memory issue.
record.save(update_fields=['point'])
More information about the CentralOH
mailing list