Итак, у меня есть 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
Как узнать, имеет ли мое приложение Python Flask фрагментацию памяти? ⇐ Python
Программы на Python
1737436999
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")
Подробнее здесь: [url]https://stackoverflow.com/questions/79371235/how-to-find-if-my-python-flask-application-is-having-memory-fragmentation[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия