python 3.6 aiohttp慢

时间:2019-08-08 20:30:40

标签: python python-3.x performance aiohttp

我有一个python Web应用程序,可以从数据库返回一些数据。但是,当我有100个并发用户时,速度会慢很多。首先,我认为这是数据库问题。但是,在DB上一切正常。因此,我删除了所有与数据库相关的代码。它本身只是一个aiohttp服务。

import asyncio
import asyncpg
from aiohttp import web
import os
import logging
import sys
import time

async def handle(request):
    return web.Response(text="hi")

async def init_app():
    """Initialize the application server."""
    app = web.Application()

    # Configure service routes
    app.router.add_route('GET', '/', handle)
    return app

logging.basicConfig(
    level=logging.DEBUG,
    format='%(levelname)7s: %(message)s',
    stream=sys.stderr,
)
LOG = logging.getLogger('')

loop = asyncio.get_event_loop()
app = loop.run_until_complete(init_app())
web.run_app(app)

现在,如果我运行一个用户,则响应时间为2毫秒。但是,如果我放置100个用户,则响应时间为295毫秒。这是aiohttp的本质吗?

1 个答案:

答案 0 :(得分:1)

我认为您的服务器在将输入的请求打印到stderr上花费的时间最多。

登录到控制台非常昂贵,文件或网络也相对便宜。