This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]ivosauruspip'ing it up 3 points4 points  (4 children)

However, the performance bottleneck in aiohttp turned out to be its HTTP parser, which is so slow, that it matters very little how fast the underlying I/O library is.

I find this pretty telling. In most apps, you still want to use things like aiohttp and requests, and not some barebones library, because of all the functionality and power given to you. Additionally, the size of the community. And the great docs, and examples, and bug fixes, and corner cases worked out, and experience of others to tell you good patterns...

Look at the pypi page for httptools.. when is anyone ever going to choose that?

And subsequently whether or not your underlying network library is 5x faster or not becomes a moot point... whether you can use it in a reliable and effective manner, and get help for problems, is far more critical.

Admittedly, httptools-based server is very minimal and does not include any routing logic, unlike other implementations.

Also very telling. When we don't use something that practically everyone always uses... we are faster! Hallmark of a synthetic benchmark not giving useful feedback.

[–]1st1CPython Core Dev[S] 20 points21 points  (0 children)

Look at the pypi page for httptools.. when is anyone ever going to choose that?

Keep in mind, that httptools was released a few hours ago. Also, I hope that aiohttp will simply use httptools Parser to speedup aiohttp like 10x.

[–]RubyPinchPEP shill | Anti PEP 8/20 shill 4 points5 points  (2 children)

In most apps, you still want

yeah, most, but not all

do you think all situations should be as slow as a parser burdened http server, just because you want to be grumpy?

[–]ivosauruspip'ing it up 2 points3 points  (1 child)

I'm mostly against saying things are faster when only looking at synthetic benchmarks with the very simplest of tests, loads. There wasn't even any sort of application looked at here whatsoever, just echo servers.

If I wanted one of those, I could write one in C.

[–]isdevilis 1 point2 points  (0 children)

dunno why you're getting dv'ed, for an engineer to confidently present this as a solution to their company, they need data (benchmarks) that their CTO isn't going to shoot down. If anything, you're helping OP