Akinfold
12 years ago
Чо за хрен у питона с gc? Оперативку можно освободить только убийством процесса интерпретатора... (doh)
latest #19
Akinfold
12 years ago
приложение вставляет в бд 20000 записей и после того как скрипт отработал, вся оперативка остается занятой питоном хотя он ничего не делает
Akinfold
12 years ago
Это как нибудь лечится?
grandse shares
12 years ago
Попробуй del
立即下載
grandse shares
12 years ago
Ну а потом gc.collect()
grandse shares
12 years ago
Я только не пойму как ты так вставляеш - я всю Бд IMDb переганял на 1gb оперативки в фоне, а там миллионы записей и несколько гиг инфы
grandse shares
12 years ago
Выглядит как будто проблема совсем не в питоне
Akinfold
12 years ago
А чо удалять делом? Скрипт то уже давно завершился.Я тут вычитал, что питон не освобождает место занятое под переменные примитивных типов
Akinfold
12 years ago
Но это было о питоне 2.5 а у мня сейчас 2.7... Однако, как дело обстоит в 2.7 с этим я так и не нашел...
Akinfold
12 years ago
Вставляют просто:
Akinfold
12 years ago
Model.get_or_create(code = my_code, defaults={'some_attr' : some_val})
Akinfold
12 years ago
Но там еще каждой ставке предшествуют танцы с бубном над парсингом сток из которых добываются значения для новых записей бд
Akinfold
12 years ago
Может дело в mongoengine с помощью которого вставляю?
Akinfold
12 years ago
Или может это сервер django? (thinking)
Akinfold
12 years ago
У меня просто в башке не укладывается, как может оперативки оставаться занятой интерпретатором после окончания работы скрипа?
grandse
12 years ago
Бр. А как у тебя скрипт запускается?
grandse
12 years ago
Насчет get_or_create может попка быть розовая и нежная - в django ORM кеширование всех select запросов так что памяти кушает прилично, и не
grandse
12 years ago
освбождается пока переменная совсем не удет и ее не скашает gc
grandse
12 years ago
но если скрипт завершился, то значит и интерпретатор выгрузится должен
grandse
12 years ago
Или я чего-то не знаю? :-)
back to top