Посты с тэгом memory


[Перевод] Сколько объектов выделяет Python, выполняя скрипты?

Некоторые Python программисты сильно удивляются, когда узнают сколько временных объектов интерпретатор питона выделяет во время работы простого скрипта.

CPython позволяет получить статистику по выделяемым объектам, для этого его нужно скомпилировать с дополнительными флагами.

./configure CFLAGS='-DCOUNT_ALLOCS' --with-pydebug 
make -s -j2

Читать дальше →


SQLAlchemy и большие таблицы (Memory error)

SQLAlchemy в больших таблицах при таком запросе s.query(TableName).all() зависает и выдает ошибку Memory error. Для решения проблемы нужно использовать метод yield_per. Если необходимо еще изменять данные, то нужно делать коммиты каждые N записей.
Пример:

    def fdbarp(self):
        ''' Функция переноса арпов из одной таблицы в другую.
            Около 3млн записей.
        '''
        for i, arp in enumerate(s.query(Arp).yield_per(100)):
            new_arp = newArp()
            new_arp.equipment_id = arp.equipment
            new_arp.mac = arp.mac
            new_arp.ip = arp.ip
            new_arp.first_seen = arp.first_seen
            new_arp.last_seen = arp.last_seen
            new_arp.times = arp.times

            s.add(new_arp)
            if not i%10000:
                s.commit()
                s.close()
            print "arp ", i

        s.commit()