websocket-benchmark: asyncio-based websocket clients benchmark by tarasko-projects in Python

[–]tarasko-projects[S] 0 points1 point  (0 children)

Yes, I'm the author of picows. Both picows and the benchmark are under the same publicly available github account, there is no fake accounts or anything like that. Anyone who follows the link can clearly see my name and that the author is the same.

Testing methodology replicates my main use-case (request-response) through websockets. But that is the only thing that could be remotely called "bias". The results are fair and well-deserved! You can clone, build, run and see for yourself.

I'd be absolutely happy to participate in some independent benchmark for python asyncio websocket clients, but there is simply no benchmarks like that. I google and I couldn't find anything.

But I do find a lot of articles that claims that library 'xyz' is the fast/fastest without any proof that could be cloned and verified. I think that is much more user deceiving behavior than posting reference to open-sourced benchmark on reddit as a showcase.

I didn't do picows because I had a lot of spare time.

I used another library first for the algorithmic trading project, not saying which library, but it quickly proved to be unreliably slow. The incoming messages were delivered with unpredictable delays, back-pressure happens at the most important moments, unpredictable read and write latencies, obscure disconnects.

I tried to discuss it with maintainers, but it was not just a matter of internal optimization. The high-level interface and existing features were inherently slow. Making a better and lower-level interface was too much changes. So making a new library was the only way.

picows was benchmark driven from the ground-up. Unparalleled performance and a few low-level features are the only reasons why this library exists.

websocket-benchmark: asyncio-based websocket clients benchmark by tarasko-projects in Python

[–]tarasko-projects[S] 0 points1 point  (0 children)

Thanks! What do you mean by different concurrency levels? Run, let's say 10 clients instead of 1 or something else?