Django MemoryError Импорт большого количества данных из файлов XML - PullRequest
1 голос
/ 23 февраля 2012

Я импортирую записи из файлов XML, и это жует память.Я просмотрел XML ElementTree, который был создан, и удалил все элементы и подэлементы, чтобы очистить память, но он все еще просто накапливается.

Я наконец-то нашел решение и хотел иметь его в SO длядругие, которые могут иметь такую ​​же проблему в будущем.Я искал в Интернете ответы, когда наткнулся на это: Django MemoryError - Как работать с большими базами данных .Моя MemoryError не из-за размера моего Queryset, потому что он не такой большой, но я решил, что все равно попробую.Я изменил все свои objects.all () на objects.all (). Iterator () для любых циклов над объектами.Это мало что дало, так как я перебирал только три разных набора объектов, ни один из которых не был огромным.Я неохотно превратил DEBUG=True в DEBUG=False в settings.py, и это почти полностью сократило использование памяти!Из Django Docs:

" Также важно помнить, что при работе с включенным DEBUG Django запоминает каждый выполняемый SQL-запрос. Это полезно при отладке, но 'Я буду быстро использовать память на рабочем сервере."

Это не рабочий сервер, это мой сервер разработки.Итак, поскольку все выполненные запросы хранятся, где они находятся и как их получить?Если они так полезны для отладки, почему они не более доступны?

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Вы также можете регистрировать sql запросы через Django Logging, по крайней мере, в Django 1.3.x

https://docs.djangoproject.com/en/dev/topics/logging/

1 голос
/ 23 февраля 2012

Вот как отобразить запросы:

from django.db import connection
print connection.queries

Для получения дополнительной информации см. эту часто задаваемые вопросы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...