Can't find anything very current, but if you look at names here, Backtype, flightcaster, Runa, there's a lot of info. Best is to hit a user group/meetup or start one:
In fairness to the author, he only used event driven servers everywhere. The default assumption would probably be that this was the highest throughput approach, but ignores the sheer maturity of Jetty vs Aleph. I doubt the numbers for ruby would be as good if he'd used WEbrick.
I'm the author of Aleph, the Clojure web server being benchmarked.
The most recent release of Aleph has focused on adding instrumentation and support for easily creating asynchronous workflows. A lot of new abstractions have been introduced, and "Hello World" performance has suffered a bit as a result.
However, now that all this has been introduced (0.2.0 is very close to release), I'm planning a "tick" release [1] that will focus on regaining some of the lost performance.
So please don't judge Clojure's potential for performant Hello World servers by what Aleph can do right now.
thank you for informing the numbers, I get much better results with straight ring and jetty through clojure, so it's annoying to see 'clojure is exactly this slow relative to the others'
I'm thinking that ultimately, you're testing two different things here. Language speed is part of it, but also the performance of your web server library.
I'm not saying it's unfair or meaningless, but it's worth bearing in mind that, for instance, the node.js web server is mostly written in native code, while the clojure web server is written in Clojure. For a large program, I imagine that node would get slower and slower, and Clojure and Scala would get faster and faster.
It's hard to know what you're actually testing without profiling. My guess is it's only the overhead of netty and lamina at play here, and not clojure itself. There are profiling facilities to know for sure, and the author should try to check that out. I can get like 8k request/s from clojure with jetty last time I tried.
I'm surprised that this landed on the front page. What's the point of benchmarking hello world in the first place? Not to mention that data collected from a single ab run with a fixed concurrency number is not significant in any way.
18 comments
[ 3.3 ms ] story [ 48.2 ms ] threadhttp://www.meetup.com/clojure/
http://clojure.org/community
------------------
http://lispjobs.wordpress.com/category/clojure/
http://news.ycombinator.com/item?id=1453259
http://clojure02.managed.contegix.com/display/community/Cloj...
http://www.reddit.com/r/Clojure/comments/d7ofw/akamai_lookin...
The most recent release of Aleph has focused on adding instrumentation and support for easily creating asynchronous workflows. A lot of new abstractions have been introduced, and "Hello World" performance has suffered a bit as a result.
However, now that all this has been introduced (0.2.0 is very close to release), I'm planning a "tick" release [1] that will focus on regaining some of the lost performance.
So please don't judge Clojure's potential for performant Hello World servers by what Aleph can do right now.
[1] http://en.wikipedia.org/wiki/Intel_Tick-Tock
I'm not saying it's unfair or meaningless, but it's worth bearing in mind that, for instance, the node.js web server is mostly written in native code, while the clojure web server is written in Clojure. For a large program, I imagine that node would get slower and slower, and Clojure and Scala would get faster and faster.
note the retraction after he tried to keep everything updated for a while.
https://github.com/pmn/noir-messageboard
It doesn't do much, but it does do more than the usual "Hello World" style apps.