我的模型包含其他模型的一对一字段。我删除了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使用没有增加。
答案 0 :(得分:1)
您是否正在使用DEBUG
投放? DEBUG
对内存使用造成了严重影响。
查看有关内存泄漏的文档:
http://docs.djangoproject.com/en/dev/faq/models/#why-is-django-leaking-memory