我从XML文件导入记录,它正在扼杀内存。我已经浏览了创建的XML ElementTree并删除了所有元素和子元素以清除内存,但它仍然只是堆积起来。
我终于找到了一个解决方案,并希望将其用于其他可能在将来遇到同样问题的人。当我偶然发现这个问题时,我正在网上寻找答案:Django MemoryError - How to work with large databases。我的MemoryError不是因为我的Queryset的大小,因为那些不是那么大,但我想我还是试一试。我将所有的objects.all()更改为对象上的任何循环的objects.all()。iterator()。这并没有做太多,因为我只是在三个不同的对象集上循环,没有一个巨大的集合。我在settings.py中不情愿地将DEBUG=True
变为DEBUG=False
,并将内存使用量减少到几乎为零!来自Django Docs:
“同样重要的是要记住,当打开DEBUG运行时,Django会记住它执行的每个SQL查询。这在你调试时很有用,但它会快速消耗生产服务器上的内存“
这不是生产服务器,它是我的开发服务器。因此,由于存储了所有执行的查询,它们在哪里以及如何获取它们?如果它们对调试非常有帮助,为什么它们不是更容易获得?
答案 0 :(得分:1)
答案 1 :(得分:1)
您还可以通过Django Logging记录sql查询,至少在Django 1.3.x
中