goran at krampe.se
Thu Sep 11 08:08:07 UTC 2008
Last night I came to milestone 0.001 in a small hobby project I decided to
call Blackfoot (for no apparent reason). It is:
- A replacement for KomHttpServer aimed at primarily serving the needs of
Seaside *in Squeak* (not other Smalltalks). But also other web solutions
- *Not* a fullblown web server like Kom but rather an implementation using
SCGI (Simple CGI from the Python folks). Like FastCGI but mucho simpler.
- Clean, lean and mean code base. I am creating this as a standalone
package (no dependency on TcpService nor DynamicBindings) with BF-prefixed
classes. I want code to be readable and hackable.
- For Dynamically scoped variables I will use the Seaside Notification
pattern (simple and nice).
- It uses regular SocketStream at the bottom and a listen loop more or
less like in Kom/WAListener etc.
- It will not do virtualhosts, file serving, the whole mod-stack that Kom
has etc etc.
...ok, so what is the tantalizing result that I need to have in order to
make such a post? :) Last night I did a quick and dirty benchmark using ab
on a "hello world"-handler. It did nothing but returning 22 bytes "as a
HttpResponse". So far I also use the existing HttpResponse so that code
may very well be optimizable too. I compared with Kom and came roughly up
with these two positives:
- Blackfoot serves around 2x the speed for such small requests. On my
small laptop I got 750 req/sec, while Kom gave about 350. When I removed
all header parsing I got 1000 - so header parsing is still a hefty part of
the story for such small requests. Note that I have not done any bigger
- Blackfoot serves *much* more consistently. Kom had awful "max" values,
especially when cranking up number of clients.
So it looks promising. Oh, I used Cherokee 0.8.1 as webserver - very nice
and very fast little bugger! :) Other possible alternatives with existing
SCGI implementations are Lighttpd, Nginx and of course Apache.
Will get back when I have something that works with Seaside examples.
More information about the seaside