I'd like to ask the Java pros here a question about my current study that I am about to do - what are the key contributors to the differences in efficiency of various servlet containers? I need to compare Tomcat/JBoss/Glassfish/Jetty etc. and I need to know what "factors" may affect the results in the most significant way? I am going to write mock applications for that purpose, so any recommendation for a Java feature/framework/library etc. that I might implement there so that I can greatly increase the load of the containers (actually the containers, I do not care about the load of the machine since I am going to run all the tests on the same machine of course), would be appreciated! I need the study to be as objective as possible. Thanks for any help guys!
-
JBoss AS runs Tomcat container and Jetty does the same, if I'm not mistaken. Why would you want to compare the effiency of the servlet containers?Buhake Sindi– Buhake Sindi2011-05-27 07:15:09 +00:00Commented May 27, 2011 at 7:15
-
That is hard to answer. There are many aspect worth of benchmarking and there are many possibilities to do so. I am afraid no useful answer to your question is possible unless you explain, what you want to learn from the gathered data. Perhaps start to explain this: Why are you doing that?jmg– jmg2011-05-27 07:16:29 +00:00Commented May 27, 2011 at 7:16
-
@The Elite Gentleman: Jetty is definitely not based on Tomcat, and while older versions of JBoss used Tomcat as web container, I'm not sure the current one does.Michael Borgwardt– Michael Borgwardt2011-05-27 08:27:38 +00:00Commented May 27, 2011 at 8:27
-
Well, I have to do that comparison because I got it as my research topic related to my diploma thesis. I know it's very academical and not much of use in practice, but anyway, it might be interesting to find out some results at least.Marek Matejka– Marek Matejka2011-05-27 09:26:36 +00:00Commented May 27, 2011 at 9:26
Add a comment
|
2 Answers
Some things that could tax a web container (apart from lots of requests, of course):
- Working with a small heap (e.g. only 128 or 256 MB)
- Passivating sessions (have large serializable objects in every session, too large to keep all in memory)
- Serve static resources (lots of small ones, or some big ones)
- Requests that fail (404 or server error)
- JSPs that include a lot of other JSPs
- Large number of different JSPs
- Large number different servlet mappings
- Large number of chained servlet filters
- Large number of separate applications
- Redeploying applications (make sure the apps themseves have no classloader leak)