HTTP frameworks benchmark focused on D libraries

tchaloupka chalucha at gmail.com
Sat May 28 05:44:11 UTC 2022


On Friday, 27 May 2022 at 20:51:14 UTC, zoujiaqing wrote:
> On Thursday, 26 May 2022 at 07:49:23 UTC, tchaloupka wrote:
>
> I fixed the performance bug the first time. (The default HTTP 
> 1.1 connection is keep-alive)
>
> Archttp version 1.0.2 has been released, and retesting has 
> yielded significant performance improvements.
>
> -- zoujiaqing

Hi, thanks for the PR. I've rerun the tests for `archttp` and it 
is indeed much better.
Now on par with `vibe-d`

Some more notes for a better performance (it's the same with 
`vibe-d` too).
See what syscalls are called during the request processing:

```
[pid  1453] read(10, "GET / HTTP/1.1\r\nHost: 192.168.12"..., 
1024) = 117
[pid  1453] write(10, "HTTP/1.1 200 OK\r\nDate: Sat, 28 M"..., 
173) = 173
[pid  1453] write(10, "Hello, World!", 13) = 13
```

It means two separate syscalls for header and body. This alone 
have huge impact on the performance and if it can be avoided, it 
would be much better.

Also read/write while working with a socket too, are a bit slower 
than recv/send.


More information about the Digitalmars-d-announce mailing list