Kazu Yamamoto ( 山本和彦 )
kazu at iij.ad.jp
Thu Oct 11 07:31:41 CEST 2012
First of all, thank you for implementing acme-http. It much helps me when
I am improving the performance of warp.
> Awesome! That is exactly what acme-http is for! I am definitely
> interested in figuring out ways to improve acme-http so that it can be
> a better reference for 'best practices' when it comes to high
> performance HTTP servers. So, if you discover techniques that can be
> applied to acme-http I am very interested in hearing about them.
> Especially when it comes to the 'black magic' parts. acme-http makes
> no attempts to decode the request body.. because making a faster
> multipart/form-data decoder is relatively straight-forward. With
> acme-http I want to explore the more mysterious bottlenecks -- things
> like maxListenQueue, TCP_NODELAY, etc.
One question and one suggestion.
Question: you set NoDelay to the listen socket. What is the intention?
Do connected sockets inherit this flag? Regardless of inheritance, I'm
not sure this option improves the performance of HTTP servers. It is
the option for interactive applications such as ssh.
Suggestion: allocating ByteString is a heavy job. If you can reuse the
ByteString of recv() for multiple HTTP requests in an HTTP connection,
the performance would be improved much.
More information about the web-devel