Встречается на собеседованиях • сегодня

Как улучшить производительность синхронных запросов

Используйте пул соединений (например, requests.Session() в requests), чтобы избежать накладных расходов на установку соединения для каждого запроса.

python
import requests

with requests.Session() as session:
    for _ in range(10):
        response = session.get('https://example.com')  # Переиспользует соединение

Оптимизируйте таймауты:

  • Уменьшите connect и read таймауты, чтобы избежать долгого ожидания.
  • Используйте timeout=(3.05, 27) (connect, read).

Кешируйте ответы, если данные редко меняются (functools.lru_cache).

Распараллеливайте запросы с помощью concurrent.futures.ThreadPoolExecutor:

python
from concurrent.futures import ThreadPoolExecutor

urls = ['https://example.com'] * 10

with ThreadPoolExecutor(max_workers=5) as executor:
    responses = list(executor.map(requests.get, urls))

Для CPU-bound задач переходите на асинхронность (asyncio, aiohttp).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы