To try it out, I did a few quick tests. For the record, what I tested was GlassFish v2.1.1, v3.1 Full, v3.1 Web Profile, and I included Tomcat 7 for one test just to compare. I also did this all on OS X on a fairly new MacBook Pro.
First, I deployed a fairly small and simple Web-app and then stopped and restarted each app-server several times. My observations on startup times and footprint after start were:
|GlassFish v2.1.1||16 sec||178 MB|
|GlassFish v3.1||6.5 sec||153 MB|
|GlassFish v3.1 Web Profile||5 sec||123 MB|
|Tomcat 7||1 sec||74 MB|
This shows that v3 has clearly made improvements over v2 in both startup time and footprint This is as expected.
What surprised me a bit was that Web Profile had further improvements over the full profile, this because I thought only what was required would be started with the full profile and so it should basically match Web Profile in this case and it didn't. It was also significantly heavier weight. Does this make sense?
Also, Tomcat is clearly the speed demon and lightest weight, but this isn't really an apples to apples comparison as Tomcat doesn't offer as much as any of the other options. It still sets the standard for fast startup and small footprint though.
Next, I deployed another EAR and WAR file that make up our application. Here is what I observed:
|GlassFish v2.1.1||20 sec||207 MB|
|GlassFish v3.1||24 sec||400 MB|
Now this was more surprising. Not only did v3 take longer to startup, the footprint was nearly twice that of v2! Effectively, v2 added 4 seconds to startup a second WAR and an EAR, but v3 added nearly 18 seconds to do the same. And why v3 is using so much more memory, I'm not sure.
Now, perhaps my test is too simple or I'm not looking at the exact right metrics to really measure startup time. But what I'm using is the Real Memory reported by Activity Monitor and both the time it takes for "asadmin start-domain" to return the the start time reported in the server.log file.
As additional background, I'm deploying the same WAR and EAR files to both v2 and v3, and since they run in v2 they are not specific to EE 6 and the only EJBs are SSBs.
So GlassFish experts, help me out. Is what I'm seeing real? Is v3 really slower and larger than v2 for this type of use case?