Можно ли сделать запрос на отдых Flask в течение 1 миллисекунды? - PullRequest
0 голосов
/ 17 марта 2020

Я создаю приложение на Python3 .6 с Flask и uwsgi. Лог c очень прост, он просто возвращает ok в ответе:

# main
import connexion

def main():
    app = connexion.App(__name__)
    app.add_api('openapi.yaml',
                arguments={'title': 'Service'})
    app.run(port=8080)

# endpoint
def health_get():
    return "OK"

, как показано выше, он в основном отвечает на проверку работоспособности. На стороне клиента я использую библиотеку request для отправки запроса на отдых:

s = requests.Session()
...

response = s.get('http://localhost:8080/health')

...

Я измеряю время, потраченное на запрос s.get('http://localhost:8080/health'). Это займет около 3 миллисекунд. И сервер, и клиент работают в localhost, что означает отсутствие задержки в сети. Я не могу думать ни о каком улучшении. Кажется, что каркас занимает большую часть времени. Можно ли улучшить производительность менее чем за 1 миллисекунду? И это не тестовый пример с высокой нагрузкой, достаточно нескольких запросов в секунду.

Если это невозможно, возможно ли подключение через websockt?

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

У меня есть к вам предложение, если вы разрабатываете приложение для пульса и хотите придерживаться python. connexion и requests не являются подходящими кандидатами для этого. Вы можете попробовать bjoern server и python s http-client вместе. Это сократит количество логи оболочки c в коде. Это точно улучшит производительность. На данный момент я не могу предсказать эталон.

0 голосов
/ 17 марта 2020

Я не думаю, что вы сможете улучшить это с помощью лучшего синтаксиса в python. Глядя на более быстрый язык, такой как C ++ или Java, можно помочь, поскольку они компилируются, тогда как python интерпретируется, поэтому замедляет его.

Если вы придерживаетесь python, другой вариант - увеличить ваш пропускная способность. Это может быть достигнуто с помощью ethe rnet.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...