I am supposed to do a performance analysis of servlet containers for Java (JEE) web applications of different types and write a thesis about it. Yet, I am new to this kind of stuff (not to Java, but to optimalization and testing). Could you give me some advice what factors shall I test? Of course I know I can measure processing time of a request, but what else can I test? And how to do it - what tools can I use? I am not allowed to use any commercial software which has no free trial versions as it has to be perfectly legal. I know of Apache JMeter, but I am not sure if I can test something else there apart from the request processing time.
Any piece of advice would be strongly appreciated!
Performance can mean various things. Unless JMeter changed drastically since I last looked at it, it measures round-trip processing time - which includes time the request spent while travelling over the network. Putting measuring code in a servlet filter would provide a more accurate idea of "processing" time (as opposed to round-trip time).
Performance can also mean memory usage and scalability: Does one servlet container use more memory than another while running the same web app? What happens if 10000 clients connect instead of 10?
You could start by checking out what various Java server monitoring tools do:
https://visualvm.dev.java.net/ (this is a client-side tool that can monitor a server through JMX)
Joined: Nov 26, 2010
As I wrote, I am kind of new to this stuff, so I am not sure what can be tested. The round-trip time is fine I think as well as the memory usage and parallel connections of many users, so I need to find a good way how to actually perform the testing of those characteristics in an objective comparable way so that the results are trustworthy (not prone to statistics errors etc) and I need to process the information somehow to present them in an understandable way for both programmers and non-programmers (you know - tables, charts etc.). I'll take a look at the pages you suggested, thanks for it! The primary task of the thesis is to compare the efficiency of the widely-used open-source servlet containers like Tomcat, Glassfish and Jetty etc.