У меня есть несколько связанных вопросов относительно использования памяти в следующем примере.
-
Если я бегу в переводчике,
foo = ['bar' for _ in xrange(10000000)]
реальная память, используемая на моей машине, достигает
80.9mb
. После, я,del foo
реальная память уменьшается, но только до
30.4mb
. Интерпретатор использует4.4mb
уровень4.4mb
так в чем же преимущество, когда ОС не освобождает26mb
памяти? Это потому, что Python "планирует заранее", думая, что вы снова сможете использовать столько памяти? -
Почему он выпускает
50.5mb
в частности - на какой основе выпущено? -
Есть ли способ заставить Python освободить всю использованную память (если вы знаете, что больше не будете использовать столько памяти)?
ПРИМЕЧАНИЕ Этот вопрос отличается от того, как я могу явно освободить память в Python? потому что этот вопрос в первую очередь касается увеличения использования памяти от базовой линии даже после того, как интерпретатор освободил объекты с помощью сборки мусора (с использованием gc.collect
или нет).