Performance and scalability: ECperf and the Spring Framework

  1. ECperf and the Spring Framework (1 messages)

    I want to do a performance comparison between the new Spring Framework and traditional J2EE models. After some exploratory research ECperf seems to be the de-facto standard for performance comparison. Is it possible to run ECperf under Spring, and has anyone out there done it before? If not how hard do you think it would be to port the model and metrics over to Spring?

    Ideally I would like to run both using JBoss, but since JBoss doesn't seem to be fully J2EE compliant it might be a better idea to use a more standard app server.

    Any other ideas for how I might do a Spring vs. traditional J2EE shootout would be most helpful. I may end up defaulting to running a custom built test model on both, but that would produce results too specific to my test model.

  2. ECperf and the Spring Framework[ Go to top ]


    This is an interesting question. I can't answer re the constraints of the ECPerf benchmark itself; it's so long since I've looked at it that I can't even recall it's technical nature.

    You may be interested in the benchmark results published in Chapter 15 of J2EE without EJB, which includes a comparison of local EJBs in two application servers vs Spring declarative tx management, hitting the same database. (Spring was configured to use the app servers connection pool and JTA implementation, so this was essentially a Spring vs EJB performance test.) This code is available in the Spring CVS.

    We'd been happy to see more benchmarks involving Spring, as we believe that its performance is very good, and that people have the right to see comparisons. However, of course it's very difficult to set up a benchmark to be fair and representative of the real world.

    Of course Spring does not aim to replace the whole J2EE stack. Say you replace EJB with Spring; this will still typically leave the app server responsible for connection pooling and JTA implementation, which are pretty critical for performance. For example, we found in our benchmarks that there was a big difference between the performance of the app servers we used to run our Spring code (although it was less than the difference when we ran the EJBs within the app servers as well).