Wednesday, August 6, 2008

HTTP Server Drag Racing

I've finished another wave of tweaks to the Wasp I/O event loop, basically just cleaning up some leaks and crashers that snuck in. The current product is pretty stable, but still not ready to build on Windows. (To support the console on Windows, I have to not use LibEvent, which is disappointing as always..) To stress the garbage collector, I have been using the Siege load test utility against the Wasp lib/http-server module. Even at 250 concurrent connections, Wasp manages to perform comparably to HTTP servers written in other dynamic languages. There are sporadic bits of latency, though, due to the stop-the-world garbage collector used by Wasp. (It'll be replaced after 1.0.. Trying to keep my priorities straight, here..) For comparisons between Wasp and THTTPD, see "Drag Racing Against THTTPD Using Siege." It's not terribly rigorous -- just the sort of thing that crops up when you have load testing tools lying around. :) (As always, the bleeding edge source is available at sourceforge; as soon as I get Win32 builds where I want them, I'll cut a new distribution for those chained to Microsoft..)