[erlang-questions] [ANN] misultin v0.7

Bob Ippolito bob@REDACTED
Sun Apr 10 19:36:53 CEST 2011


On Sun, Apr 10, 2011 at 10:20 AM, Loïc Hoguin <essen@REDACTED> wrote:
> On 04/10/2011 06:47 PM, Max Lapshin wrote:
>> It seems to be an eternal process: new webserver which takes not 50
>> microseconds, but 10 of them per request and is 5 times faster becomes
>> the same mochiweb when it reaches it by functionality.
>
> I disagree. Mochiweb is slower because of design issues, not because it
> has more functionality. Most of the functionality in mochiweb that
> hasn't been done in misultin or cowboy so far is either irrelevant
> (json, globals, reloader) or aren't related to the GET method, which is
> the prime target of benchmarks since it's the most used method by far.

This is true, mochiweb is slightly slower than other solutions for two
main reasons:
 * It hasn't made the backwards incompatible change to switch
everything to binaries (wasn't a sensible thing to do four years ago
when I wrote it)
 * It spends time doing header parsing and normalization when it
probably shouldn't (if it was trying to compete on synthetic
benchmarks)

I say slightly slower because the last time I benchmarked it against
misultin, it only differed by a few percent. For most purposes, this
is an irrelevant difference.

I haven't looked at cowboy, but it probably does what mochiweb
would've done if I had written it today for modern Erlang. The
independent functionality in mochiweb is there because Erlang had no
suitable dependency management solution at the time.

> I'm sure misultin and mochiweb also have good reasons for rolling their
> own instead of using httpd or yaws.

Well, yaws had a memory leak and was more complicated than what I
actually wanted, and httpd had this terrible idea that everything
should be managed with apache style config files/request phases and
wasn't easy to embed at the time. Both of them also suffer from a lot
more legacy pain than mochiweb does.

-bob



More information about the erlang-questions mailing list