From c408692495b9ddcdb73508cff774a28d9936a217 Mon Sep 17 00:00:00 2001 From: taras Date: Fri, 16 Aug 2024 00:59:40 +0200 Subject: [PATCH] Update benchmark --- docs/source/_static/picows_benchmark.png | Bin 30483 -> 31254 bytes examples/echo_client_benchmark.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/_static/picows_benchmark.png b/docs/source/_static/picows_benchmark.png index 99da1b0a3d883546fe4ff560ab06783c4a227126..04f44bda5e317d6dd12e001f53cb920359c7c719 100644 GIT binary patch literal 31254 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 Vy6AOPwen~pr_X+S-?Swg{sAel-oXF> diff --git a/examples/echo_client_benchmark.py b/examples/echo_client_benchmark.py index d0e8bba..f64f99c 100644 --- a/examples/echo_client_benchmark.py +++ b/examples/echo_client_benchmark.py @@ -149,7 +149,7 @@ async def aiohttp_main(url: str, data: bytes, duration: int) -> None: ax.bar(libraries, counts, label=libraries, color=bar_colors) ax.set_ylabel('Roundtrips per second') - ax.set_title(f'Echo roundtrip performance ({loop_name})') + ax.set_title(f'Echo roundtrip performance ({loop_name}, msg_size={msg_size})') # ax.legend(title="Libraries")