В профиле tracemalloc текущее потребление вернулось почти к исходному, но пиковое осталось высоким: что это означает?
База Hintsage
Память и производительность
Управление памятью, профилирование и оптимизация Python.
Практика
Вопросы: Память и производительность
В отчёте cProfile функция выглядит дорогой, хотя её собственное тело быстрое: какой показатель нужно проверить, чтобы отделить её время от времени вызванных функций?
В обработчике бинарных данных разберите причину лишних копирований и выберите замену, уменьшающую пиковое потребление памяти при последовательной обработке срезов:
def consume(packet):
pass
def handle(data, ranges):
for start, end in ranges:
packet = data[start:end]
consume(packet)
payload = b"x" * 10_000_000
handle(payload, [(0, 1_000_000), (1_000_000, 2_000_000)])
В сервисе после добавления мемоизации память постоянно растёт, хотя сборщик мусора работает: какой механизм кэша это объясняет?
Объясните механизм, благодаря которому генератор обычно снижает пиковое потребление памяти при последовательной обработке данных.
За счёт какого механизма __slots__ уменьшает память экземпляров Python-класса?
Как CPython обнаруживает и освобождает недостижимый цикл ссылок, который не удаляется одним подсчётом ссылок?
Как механизм copy-on-write позволяет процессу, созданному через fork, читать память родителя без немедленного полного копирования?
В приложении RSS процесса растёт, но снимки tracemalloc почти не меняются: какой механизм это объясняет?
Из-за чего освобождение крупных объектов в CPython может не уменьшить RSS процесса?
Показано 41–50 из 50