Насколько велики накладные расходы на tracemallo c? - PullRequest
1 голос
/ 07 мая 2020

Я хотел бы зарегистрировать в производственной системе текущее использование памяти сценарием Python. AWS имеет Container Insights , но они очень хорошо спрятаны, и я не уверен, как правильно их использовать в других информационных панелях / системах регистрации и изменения. Кроме того, я не уверен, есть ли вообще пиковая память журнала.

Скрипт Python - это производственная система. Он работает на AWS в контейнере Docker, и я столкнулся с проблемами с предыдущим подходом ( ссылка ).

tracemallo c кажется иметь возможность предоставить мне информацию, которую я хочу:

# At the start of the script
import tracemalloc
tracemalloc.start()

# script running...

# At the end
current, peak = tracemalloc.get_traced_memory()
logger.info(f"Current memory usage is {current / 10**6} MB")
logger.info(f"Peak memory usage was {peak / 10**6} MB")
tracemalloc.stop()

Однако в документах указано:

Модуль tracemallo c является инструментом отладки

Так было бы плохой идеей оборачивать это производственным кодом? Сколько это накладных расходов? Есть ли другие причины не использовать это в производстве?

(У меня довольно хорошее представление о том, какие части кода требуют больше всего памяти и где достигается пиковая память. Я хочу контролировать эту часть (или, может быть, скорее размер этих нескольких объектов / нескольких строк кода). Альтернативой tracemallo c кажется использование чего-то вроде этого )

1 Ответ

1 голос
/ 18 мая 2020

Я пытался ответить на тот же вопрос. Лучший ответ, который я нашел, - это

https://www.mail-archive.com/python-list@python.org / msg443129. html

, который указывает на увеличение использования памяти в 3-4 раза с помощью tracemallo c на основе простого эксперимента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...