Это зависит от реализации и типа переменной. Для простых объектов, таких как int, есть некоторые оптимизации. Например, в CPython простой int будет повторно использовать одну и ту же память даже после использования del
. Вы не можете рассчитывать на это, но это иллюстрирует, что вещи сложнее, чем они появляются.
Помните, что когда вы del
вы удаляете имя, это не обязательно объект. Например:
# x is a np.array and contains a lot of data
Было бы более точно сформулировано как:
# x references a np.array which contains a lot of data
del
уменьшит счетчик ссылок на этом объекте, но даже когда он упадет до нуля не гарантируется сбор мусора в ближайшее время.
Предложите вам посмотреть модуль gc
для объяснения и вдохновения. Затем подумайте еще раз.
Если вы получаете «из памяти», то у вас, вероятно, есть фундаментальная проблема с вашим дизайном. Скорее всего, вы загружаете слишком много данных за один раз (попробуйте использовать итераторы?), Или, может быть, ваш код должен быть лучше структурирован.
Я только что видел ваше редактирование. Вам нужен весь этот массив в памяти одновременно? Можете ли вы использовать генератор?
Другой альтернативой является использование базы данных, такой как SQLite или, возможно, shelve
Я использую ленивое размонтирование: umount -l
(это - нижний регистр L
)
Ленивое размонтирование. Отсоедините файловую систему от иерархии файловой системы теперь и очистку все ссылки на файловую систему, как только это больше не занято. (Требует ядра 2.4.11 или позже.)
Существует-f опция к umount, который можно попробовать:
umount -f /mnt/fileshare
Вы указывающий опцию '-t сиф смонтироваться? Также удостоверьтесь, что Вы не указываете 'трудную' опцию смонтироваться.
можно также хотеть рассмотреть fusesmb, так как файловая система будет работать в пространстве пользователя, можно уничтожить его точно так же, как любой другой процесс.
Попробуйте umount-f/mnt/share. Работы хорошо с NFS, который никогда пробуют cifs.
кроме того, смотрите на autofs, он смонтирует долю только при доступе и размонтировании его загробные миры.
существует хорошее учебное руководство в www.howtoforge.net
**
.a ** b
doesn' t имеют смысл в контексте умножения еслиb
isn' t указатель. Это действительно имеет смысл в контексте возведения в степень. Единственное объяснение, которое я вижу, то, что сообщество C/C ++/C# don' t рассматривают научное программирование как реальное программирование. It' s главный вызов и it' s одна из основных причин программисты Fortran смотрят сверху на C/C ++/C#, как являющийся нижними языками для научного программирования. – David Hammen 1 February 2013 в 01:05