On Thu, Mar 21, 2013 at 11:35:37AM +0300, Andrey Tataranovich wrote:
> 15:30 Wed 20 Mar    , Andrey Tataranovich wrote:
> > Мой вылез за пределы 27 млн. инод - это всего 51 инкремент
> > (ежедневный бэкап за последних 50 дней). Объем архива пока сказать
> > не могу, он еще вычисляется.
> 
> Сделал:
> 
> # find /backup/server > filelist.txt
> # ls -lh filelist.txt
> -rw-r--r-- 1 root root 4.9G Mar 20 21:42 filelist.txt
> 
> # wc -l filelist.txt
> 27828638 filelist.txt
> 
> Получается, чтобы итератор отработал до конца мне нужно минимум 5G
> оперативы.
> 
> Есть ли в python простой способ удалять объекты из списка, после их
> использования?

Один возможный способ - использовать Queue, а не список, и какой-то
producer/consumer relationship.  Наипростейший способ - два thread-а,
один читает из файла и ставлет объекты в Queue, другой "читает" из
Queue и обрабатывает прочтенное.  Если при создании Queue укажете
"maxsize" (скажем, несколько тысяч или миллионов), тогда "put" в той
Queue будет ждать, пока consumer удалит достаточно объектов.

Всего лучшего,
Петр

-- 
Peter Pentchev  r...@ringlet.net r...@freebsd.org p.penc...@storpool.com
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint 2EE7 A7A5 17FC 124C F115  C354 651E EFB0 2527 DF13
Thit sentence is not self-referential because "thit" is not a word.

Attachment: signature.asc
Description: Digital signature

Ответить