Я создал клиентское приложение, которое использует HTTP для связи с сервером Python 2 с помощью простого API. Сервер достаточно широко использует ORM SQLAlchemy для обслуживания данных этих HTTP-запросов. Проблема в том, что загрузка моего процессора довольно высока, даже с несколькими активными клиентами. Этот сервер должен одновременно обслуживать несколько сотен клиентов со скоростью примерно 1 запрос в секунду на каждого клиента, поэтому он все еще должен быть управляемым (или, я надеюсь, таким).
Как я могу улучшить производительность? Я знаю, что проблема в ORM, так как cProfile показывает это довольно четко. Один запрос выполняет около 10000 инструкций Python, что выглядит довольно странно. Я попытался подключить разные движки баз данных / серверные части и изменил интерпретатор на Pypy просто для удовольствия, но это, очевидно, не помогло первоначальной проблеме, а также не улучшило производительность.
Что я здесь не так делаю? Я действительно надеюсь, что это "хорошо, дух!" проблема.
Должны ли мои отношения быть другого типа? нетерпеливый, ленивый, динамичный и т. д.? Прямо сейчас я не уточняю ничего конкретного.
Помощь с благодарностью.