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


Ультимативный гайд по поиску утечек памяти в Python

Практика показывает, что в современном мире Docker-контейнеров и оркестраторов (Kubernetes, Nomad, etc) проблема с утечкой памяти может быть обнаружена не при локальной разработке, а в ходе нагрузочного тестирования, или даже в production-среде. В этой статье рассмотрим причины появления утечек в Python-приложениях, доступные инструменты для отладки и мониторинга работающего приложения, а также общую методику поиска утечек памяти.

Читать далее


[Перевод] Сколько объектов выделяет 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()