链接一对一字段时Django内存泄漏

时间:2010-02-26 20:07:35

标签: django memory-leaks

我的模型包含其他模型的一对一字段。我删除了save方法以自动分配这些一对一字段。问题是每当我保存这个模型时,内存使用量会增加大约450k并且永远不会被释放。保存方法如下:

class Link(models.model):
   id = models.CharField(max_length=11, primary_key=True)
   fieldOne = models.OneToOneField(One, null=True, editable=False)
   fieldTwo = models.OneToOneField(Two, null=True,, editable=False)
   fieldThree = models.OneToOneField(Three, null=True,, editable=False)

   def save(self, *args, **kwargs):
       self.fieldOne = One.objects.get(id=self.id)
       self.fieldTwo = Two.objects.get(id=self.id)
       self.fieldThree = Three.objects.get(id=self.id)

       super(Link, self)save(*args, **kwargs)

我相信在调用objects.get()时行会发生内存泄漏,因为当我评论tem时,我注意到mem使用没有增加。

1 个答案:

答案 0 :(得分:1)

您是否正在使用DEBUG投放? DEBUG对内存使用造成了严重影响。

查看有关内存泄漏的文档:

http://docs.djangoproject.com/en/dev/faq/models/#why-is-django-leaking-memory