On 08/12/2010 03:32 PM, Jani Tiainen wrote: >> Hello all, >> >> I have a django application for analysis of accounting information in >> torque batch system. The job is an object connected to several accounting >> event objects: >> >> class Job(models.Model): >> jobid = models.CharField(max_length=16, db_index=True, editable=False) >> server = models.ForeignKey('TorqueServer', editable=False) >> job_owner = models.ForeignKey('User', null=True) >> .... >> >> class AccountingEvent(models.Model): >> timestamp = models.DateTimeField(verbose_name='time stamp') >> type = models.CharField(max_length=1, choices=EVENT_CHOICES) >> job = models.ForeignKey('Job') >> >> >> I have a method that goes through all jobs and tests their accounting >> events. The problem is that my function that does the iteration over all >> jobs eats all memory eventually. It is quite simple function: >> >> maxjobid = >> Job.objects.filter(job_state__shortname='C').aggregate(Max("id"))['id__max >> '] for n in range(1,maxjobid+1): >> j = Job.objects.get(pk=n) >> aes = AccountingEvent.objects.filter(job=j).order_by("-timestamp") >> ae = aes[0] >> if ae.type=='D': >> j.job_state = getJobState('D') >> j.save() >> >> I tried to inspect this with guppy and I see that the number of str and >> unicode objects get really high. I don't understand why python garbage >> collector does not free them. I see this with development server, debug on >> and mysql as a DB backend. > > That is your problem. when DEBUG = True Django ORM records every SQL query > made in a request - or in case of script whole lifetime of a script which can > grow quite huge. > > http://docs.djangoproject.com/en/1.2/faq/models/#why-is-django-leaking-memory >
Thank you very much. Shame on me for not finding this in django faq. -- Tomas Kouba -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.