У вас есть высоконагруженное Django-приложение. Пользователи жалуются на медленные отклики при работе с ORM-запросами. Какой из подходов будет наиболее правильным для оптимизации?
👾 — Использовать select_related и prefetch_related для оптимизации запросов и уменьшения количества обращений к базе
👍 — Заменить все ORM-запросы на чистый SQL, так как он всегда быстрее
🥰 — Увеличить таймаут подключения к базе данных
⚡️ — Отключить транзакции, чтобы ускорить коммиты
Библиотека задач по Python
👾 — Использовать select_related и prefetch_related для оптимизации запросов и уменьшения количества обращений к базе
👍 — Заменить все ORM-запросы на чистый SQL, так как он всегда быстрее
🥰 — Увеличить таймаут подключения к базе данных
⚡️ — Отключить транзакции, чтобы ускорить коммиты
Библиотека задач по Python
Вы случайно закоммитили секретные данные (пароль/ключ API) в публичный репозиторий. Какой из подходов наиболее правильный для удаления этой информации из истории?
👾 — Выполнить git reset --hard и закоммитить снова
👍 — Удалить файл локально и сделать новый коммит с исправлением
🥰 — Использовать git filter-repo (или git filter-branch) для переписывания истории и удалить секреты из всех прошлых коммитов
⚡️ — Просто добавить секрет в .gitignore, чтобы он больше не попадал в коммиты
Библиотека задач по Python
👾 — Выполнить git reset --hard и закоммитить снова
👍 — Удалить файл локально и сделать новый коммит с исправлением
🥰 — Использовать git filter-repo (или git filter-branch) для переписывания истории и удалить секреты из всех прошлых коммитов
⚡️ — Просто добавить секрет в .gitignore, чтобы он больше не попадал в коммиты
Библиотека задач по Python
🎉1
В Django-приложении при росте нагрузки база данных начинает работать медленно из-за большого числа однотипных SQL-запросов. Какой подход наиболее правильный для оптимизации?
👾 — Использовать select_related / prefetch_related для снижения количества запросов
👍 — Переписать все запросы ORM на raw() SQL
🥰 — Увеличить таймаут подключения к базе
⚡️ — Добавить больше воркеров Gunicorn/Uvicorn, чтобы база обрабатывала запросы быстрее
Библиотека задач по Python
👾 — Использовать select_related / prefetch_related для снижения количества запросов
👍 — Переписать все запросы ORM на raw() SQL
🥰 — Увеличить таймаут подключения к базе
⚡️ — Добавить больше воркеров Gunicorn/Uvicorn, чтобы база обрабатывала запросы быстрее
Библиотека задач по Python
В Python-сервисе нужно обрабатывать очень большие объёмы данных построчно из файлов размером в десятки гигабайт. Какой подход наиболее правильный, чтобы избежать проблем с памятью?
Варианты ответа:
👾 — Использовать readlines() для чтения всего файла в список
👍 — Читать файл построчно через итератор (for line in file:)
🥰 — Сначала загрузить файл в pandas.DataFrame, а затем обрабатывать
⚡️ — Использовать json.load() для загрузки файла в память
Библиотека задач по Python
Варианты ответа:
👾 — Использовать readlines() для чтения всего файла в список
👍 — Читать файл построчно через итератор (for line in file:)
🥰 — Сначала загрузить файл в pandas.DataFrame, а затем обрабатывать
⚡️ — Использовать json.load() для загрузки файла в память
Библиотека задач по Python
Ваш Python-сервис должен обрабатывать большое количество одновременных HTTP-запросов. Вы замечаете, что при использовании потоков прироста производительности почти нет. Какой подход наиболее правильный?
👾 — Увеличить количество потоков в ThreadPoolExecutor, чтобы нагрузить CPU
👍 — Перейти на asyncio или uvloop, чтобы эффективно обрабатывать I/O-bound задачи без блокировок
🥰 — Использовать multiprocessing, создавая процесс на каждый запрос
⚡️ — Запускать gc.collect() вручную чаще, чтобы ускорить выполнение потоков
Библиотека задач по Python
👾 — Увеличить количество потоков в ThreadPoolExecutor, чтобы нагрузить CPU
👍 — Перейти на asyncio или uvloop, чтобы эффективно обрабатывать I/O-bound задачи без блокировок
🥰 — Использовать multiprocessing, создавая процесс на каждый запрос
⚡️ — Запускать gc.collect() вручную чаще, чтобы ускорить выполнение потоков
Библиотека задач по Python
Какой язык шаблонов используется по умолчанию в Django?
👾 — Django Template Language
👍 — HTML
🥰 — Jinja
⚡️ — XML
Библиотека задач по Python
👾 — Django Template Language
👍 — HTML
🥰 — Jinja
⚡️ — XML
Библиотека задач по Python
Вы обрабатываете большие массивы числовых данных в Python, и профилирование показывает, что большинство времени тратится на циклы for со встроенными типами. Какой подход наиболее правильный для оптимизации?
👾 — Разбить массивы на списки поменьше и обрабатывать их по частям
👍 — Использовать специализированные библиотеки (например, NumPy), которые выполняют векторные операции вне GIL
🥰 — Переписать цикл на вложенные list comprehension
⚡️ — Принудительно запускать gc.collect() после каждой итерации
Библиотека задач по Python
👾 — Разбить массивы на списки поменьше и обрабатывать их по частям
👍 — Использовать специализированные библиотеки (например, NumPy), которые выполняют векторные операции вне GIL
🥰 — Переписать цикл на вложенные list comprehension
⚡️ — Принудительно запускать gc.collect() после каждой итерации
Библиотека задач по Python
Ваш Python-сервис обрабатывает большое количество сетевых запросов. При профилировании видно, что он простаивает, ожидая I/O. Какой подход наиболее правильный для повышения производительности?
👾 — Увеличить количество потоков в ThreadPoolExecutor
👍 — Перейти на asyncio/uvloop и использовать асинхронные драйверы для работы с I/O
🥰 — Запускать каждый запрос в отдельном процессе через multiprocessing
⚡️ — Чаще вызывать gc.collect() для освобождения памяти
Библиотека задач по Python
👾 — Увеличить количество потоков в ThreadPoolExecutor
👍 — Перейти на asyncio/uvloop и использовать асинхронные драйверы для работы с I/O
🥰 — Запускать каждый запрос в отдельном процессе через multiprocessing
⚡️ — Чаще вызывать gc.collect() для освобождения памяти
Библиотека задач по Python
В преддверии новой активности мы собрали в одну папку 30 Telegram-каналов известных профессионалов и попросили их авторов подготовить для вас документы, которые помогут:
Также они проводят розыгрыш с топовыми призами:
Как участвовать:
1. Подпишись на папку: https://t.iss.one/addlist/AYTpZaCWIxA5NWNi
2. Подтверди участие в боте
До встречи 25 сентября — дата объявления победителя!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2🎉2
В Python-сервисе нужно обрабатывать большое количество CPU-bound задач (например, шифрование или обработку изображений). Вы используете ThreadPoolExecutor, но прироста производительности почти нет. Какой подход будет правильным?
👾 — Увеличить количество потоков в пуле до числа ядер × 10
👍 — Использовать ProcessPoolExecutor или multiprocessing, чтобы обойти GIL
🥰 — Переписать задачи на asyncio, чтобы они выполнялись конкурентно
⚡️ — Вставить вызовы gc.collect() внутри цикла, чтобы ускорить потоки
Библиотека задач по Python
👾 — Увеличить количество потоков в пуле до числа ядер × 10
👍 — Использовать ProcessPoolExecutor или multiprocessing, чтобы обойти GIL
🥰 — Переписать задачи на asyncio, чтобы они выполнялись конкурентно
⚡️ — Вставить вызовы gc.collect() внутри цикла, чтобы ускорить потоки
Библиотека задач по Python
👎1
Uvicorn/FastAPI-сервис использует asyncio и сторонние библиотеки, под капотом создающие потоки. Для CPU-bound задач вы подключили multiprocessing, но периодически ловите подвисания/краши при старте воркеров. Какой способ старта процессов корректнее выбрать?
👾 — fork — самый быстрый, поэтому всегда лучший выбор на Linux
👍 — spawn — запуск чистого интерпретатора, безопасен при наличии потоков/мьютексов у родителя
🥰 — forkserver — ничего не меняет относительно потоков, просто сложнее
⚡️ — Любой — способы эквивалентны на Linux
Библиотека задач по Python
👾 — fork — самый быстрый, поэтому всегда лучший выбор на Linux
👍 — spawn — запуск чистого интерпретатора, безопасен при наличии потоков/мьютексов у родителя
🥰 — forkserver — ничего не меняет относительно потоков, просто сложнее
⚡️ — Любой — способы эквивалентны на Linux
Библиотека задач по Python
В FastAPI вы кладёте correlation-id в contextvars.ContextVar в middleware. В логах он есть в хэндлерах, но иногда пропадает в коде, который выполняется через run_in_executor и в фоновых задачах asyncio.create_task(...). Что делать правильно?
👾 — Заменить ContextVar на глобальную переменную с мьютексом
👍 — Создавать фоновые задачи после установки ContextVar, а для run_in_executor запускать функцию через contextvars.copy_context().run(func, *args) для переноса контекста
🥰 — Перейти на threading.local(), он автоматически работает и в потоках, и в тасках
⚡️ — Включить uvloop — он сам перенесёт контекст в фоновые задачи и executor
Библиотека задач по Python
👾 — Заменить ContextVar на глобальную переменную с мьютексом
👍 — Создавать фоновые задачи после установки ContextVar, а для run_in_executor запускать функцию через contextvars.copy_context().run(func, *args) для переноса контекста
🥰 — Перейти на threading.local(), он автоматически работает и в потоках, и в тасках
⚡️ — Включить uvloop — он сам перенесёт контекст в фоновые задачи и executor
Библиотека задач по Python
Сервис создаёт миллионы однотипных небольших объектов (несколько фиксированных полей). Память растёт, GC давит. Что изменить в моделях, чтобы существенно снизить footprint и ускорить доступ к атрибутам?
👾 — Отключить GC через gc.disable()
👍 — Хранить данные в dict вместо объектов
🥰 — Использовать slots или @dataclass(slots=True) для моделей
⚡️ — Увеличить sys.setrecursionlimit()
Библиотека задач по Python
👾 — Отключить GC через gc.disable()
👍 — Хранить данные в dict вместо объектов
🥰 — Использовать slots или @dataclass(slots=True) для моделей
⚡️ — Увеличить sys.setrecursionlimit()
Библиотека задач по Python
В асинхронном сервисе (Python ≥ 3.11) нужно запустить группу независимых корутин и при первой ошибке гарантированно отменить остальные с корректной агрегацией исключений. Что выбрать?
👾 — asyncio.gather(*cors, return_exceptions=True)
👍 — asyncio.TaskGroup()
🥰 — loop.run_until_complete() по одной корутине в цикле
⚡️ — создать asyncio.create_task на каждую и игнорировать исключения в фоне
Библиотека задач по Python
👾 — asyncio.gather(*cors, return_exceptions=True)
👍 — asyncio.TaskGroup()
🥰 — loop.run_until_complete() по одной корутине в цикле
⚡️ — создать asyncio.create_task на каждую и игнорировать исключения в фоне
Библиотека задач по Python
This media is not supported in your browser
VIEW IN TELEGRAM
📅 24 сентября в 19:00 МСК — бесплатный вебинар с Максимом Шаланкиным.
Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта».
🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций.
🔹 Чем они отличаются от ChatGPT и обычных ботов.
🔹 Как работает цикл агента: восприятие → планирование → действие → обучение.
🔹 Живое демо простого агента.
🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%.
Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏
👉 Регистрируйтесь через форму на лендинге (https://clc.to/webinarAI)
Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта».
🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций.
🔹 Чем они отличаются от ChatGPT и обычных ботов.
🔹 Как работает цикл агента: восприятие → планирование → действие → обучение.
🔹 Живое демо простого агента.
🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%.
Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏
👉 Регистрируйтесь через форму на лендинге (https://clc.to/webinarAI)
🔥1