What is the fastest java framework/server combo? [closed]
I'm absolutely confused by all the choices out there. Glassfish, jersey, jax-ws, Grizzly, nginx, cherokee...all of them could be used as a web server and/or application server.
Then there is the framework side. I want that side to be as small as humanly possible. I'm not very happy with the kind of frameworks I found in java, but this one looks good: http://code.google.com/p/spark-java/
But no mention of performance or anything. Does that mean that the server is mainly responsible for the performance and I can use 'spark' with something like nginx? Which would take care of all my performance problems? Maybe put Varnish in front of it for caching?
What is the simplest, fastest solution in java? I'd like something like tornado, gevent, nodejs...only in java.
As already mentioned, this seems like a case of "premature optimization", but if you really want to go for performance try the Simple HTTP Framework. Or a small servlet container like Jetty. They make you start at a pretty basic level and you can evolve your application from there.
As soon as you hit a database though, the performance overhead from any application server or web framework will become insignificantly small.
Take a look at the Grails Framework, deploy on Apache Tomcat, and when performance becomes an issue scale with Terracotta.
I personally enjoy tapestry on tomcat, and some of the applications we've put out have an incredibly high concurrent user count, achieved by careful hardware selection, much performance testing and optimizing of the application code with things like Jmeter and a profiling tool. For other applications, j2ee is in play, so we're talking jboss and the like.
To your requirements I say: handcode your servlets and deploy them on jetty. But remember...there is no golden hammer or silver bullet :-) c2.com/cgi/wiki?GoldenHammer c2.com/cgi/wiki?SilverBullet
The framework that has the fewest network calls will be the fastest. In other words, it doesn't matter which framework you will use, as waiting on the network will kill performance in any framework.
精彩评论