Skip to content

Commit

Permalink
Add a benchmark for web.FileResponse
Browse files Browse the repository at this point in the history
  • Loading branch information
bdraco committed Dec 3, 2024
1 parent f733258 commit 4397fd8
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions tests/test_benchmarks_web_fileresponse.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
"""codspeed benchmarks for the web responses."""

import asyncio
import pathlib

from pytest_codspeed import BenchmarkFixture

from aiohttp import web
from aiohttp.pytest_plugin import AiohttpClient


def test_simple_web_response(
loop: asyncio.AbstractEventLoop,
aiohttp_client: AiohttpClient,
benchmark: BenchmarkFixture,
) -> None:
"""Benchmark creating 100 simple web.Response."""
response_count = 100
filepath = pathlib.Path(__file__).parent / "sample.txt"

async def handler(request: web.Request) -> web.FileResponse:
return web.FileResponse(path=filepath)

app = web.Application()
app.router.add_route("GET", "/", handler)

async def run_file_resonse_benchmark() -> None:
client = await aiohttp_client(app)
for _ in range(response_count):
await client.get("/")
await client.close()

@benchmark
def _run() -> None:
loop.run_until_complete(run_file_resonse_benchmark())

0 comments on commit 4397fd8

Please sign in to comment.