我从XML文件导入记录,它正在咀嚼内存。我已经通过创建和删除所有元素和子元素来清除内存的XML ElementTree,但它仍然只是堆积如山。Django MemoryError从XML文件导入大量数据
我终于找到了一个解决方案,并希望将其用于其他未来可能会遇到同样问题的人。当我偶然发现这个问题时,我在网上寻找答案: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查询,这在调试时很有用,但它会快速消耗内存在生产服务器上。“
这不是生产服务器,它是我的开发服务器。因此,由于所有执行的查询都存储在哪里,它们在哪里以及如何获取它们?如果它们对调试非常有帮助,为什么它们不易获得?
真棒,伙计。这很酷。感谢您及时的回复。 – Furbeenator 2012-02-22 21:02:25