Как узнать, имеет ли мое приложение Python Flask фрагментацию памяти?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как узнать, имеет ли мое приложение Python Flask фрагментацию памяти?

Сообщение Anonymous »

Итак, у меня есть API, с помощью которого я делаю вызов БД, который извлекает около 500 записей (все строки и все столбцы), после чего я просматриваю каждую строку, обрабатываю данные и публикую их. У меня есть предположение, что здесь что-то не так. Мое приложение выходит из строя, а затем перезапускается. Я использую SQLAlchemy и flask-restx.
Я использовал профиль импорта Memory_profiler для метода профиля. Когда я впервые вызвал API, переменная, содержащая данные БД, имела размер 9,5 МБ, затем для следующего запроса она стала 3,5 МБ, а затем для последующего запроса. Я понятия не имею, почему размер продолжал колебаться, а также для того же API я возвращал процесс.memory_info().rss / (1024 * 1024)
Для каждого запроса RSS память продолжала расти. Как узнать, есть ли в моем коде фрагментация памяти?
Я даже попробовал gc.collect(), не помогло. Я также попробовал del mylist
Код:
@staticmethod
def run():
groups: List[MyGroups] = Group.get_all_groups()
for group in groups:
MyClass.validate_and_publish_group(group) #RabbitMQ
groups = None
del groups

Это API, который будет вызываться
@group_trigger_ns.route("/groups/trigger")
@group_trigger_ns.response(500, "something unexpected happened", model=error_model)
class GroupProcessingTrigger(Resource):
"""Contains all the routes for triggering Groups. """

@group_trigger_ns.response(
code=202, description="Triggers the processing for all groups")
@group_trigger_ns.response(code=405, description="Request must be POST for triggering")
def post(self):
try:
gc.enable()
MyClass.run()
except Exception:
LOGGER.error("[group trigger] error occurred", exc_info=True)
gc.collect()
memory_after_collection = process.memory_info().rss / (1024 * 1024)

return memory_after_collection, 202

@staticmethod
def init_routes():
LOGGER.debug("[API] Group Trigger Route registration done")


Подробнее здесь: https://stackoverflow.com/questions/793 ... gmentation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»