On Mon, Sep 14, 2020 at 7:39 AM Daniel Kozak <kozzi11@gmail.com> wrote:
On Sun, Sep 13, 2020 at 11:20 PM ryuukk_ via Digitalmars-d <digitalmars-d@puremagic.com> wrote:

I think the plain text one is the most important one to fix
first, such basic concept shouldn't be that slow

As others already pointed out, it is not thats vibe-d perform bad. But the others use some not so nice tricks to be so fast.
This is why I say I can make vibe-d same fast as the others, but it would be cheating from my perspective.

They do not real http parsing, they generally just  match only the minimum what they needed.
They use static buffer with already prepared responses
They do not send all http headers
They use one char Server name http header.

So when I use vibe-d without the http package and just use TCPconnection and do the same as the others I would have the same speed, but this is not what you generally want.


But to be fair, there are many places where vibe-d performance could be improved:
There is a big penalty when you use keep-alive smaller then Duration.max
vibe-d write headers independet from body content which is one of other big performance penalty
vibe-d do address translation with each request thats other performance hit