You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by David Blevins <da...@gmail.com> on 2012/03/01 21:20:38 UTC

Re: Feedback on TomEE 1b2

Thanks so much for this feedback and thanks, Romain, for responding quickly!  Some additional comments.

On Feb 24, 2012, at 3:27 AM, miguelzp wrote:

> First of all thank you for TomEE, I love the philosophy behind it.

Thanks.  We truly do want it to be a "do no harm" addition to Tomcat.  Memory appears to be good, disk size is near as small as it can get, startup/deploy speed is where we need to tighten things up.  Definitely the #1 goal at the moment.

> 
> Actually I was forced to use an EE container due to recent incompatibilities
> of SEAM3. I was no more able to get things done with Tomcat only....
> 
> On the one hand I'll gain a lot of advantages using EE but on the other hand
> I feel quite confirmed that I ever tried to avoid the EE overhead. Let me
> give you some examples:
> 
> - Startup-Time
>  - Tomcat Seam2 Webapp: 25s
>  - TomEE Seam3 Webapp 120s

I'd be really interested in what the Seam2 app startup time is on TomEE.  That should make it far easier to determine how much of that time difference is pure TomEE overhead.

We've done some startup improvements already and have more planed.  I'd love to get some periodic feedback on the trunk code to see what kind of progress we're making judged by a real app.  Hoping to put together a little snapshots downloads page where people can get builds straight from the CI system.

Would you be interested in trying out a snapshot build?

> - Jars needed (with webapp included)
>  - Tomcat Seam2 Webapp: 40MB
>  - TomEE Seam3 Webapp: 60MB

Yep.  Tomcat 7 is about 7MB.  We add another 17MB.  I suspect that delta of 3MB belongs to Seam 3.

Getting the jars we add down from 17MB to maybe 15MB seems possible.  Getting below that we'd probably have to do what Tomcat did.  It used to be around 14MB and then eventually they effectively eliminated all their third party dependencies by forking and repackaging all the code and cutting out the parts they didn't need. 

It's a pretty drastic step but I admit to finding their results too compelling to ignore.  Not only does it trim the size of the server, but it eliminates library conflicts in the process.  I suspect it would be months before something like that happens unless someone volunteers to roll up their sleeves and give it a try.

> - Memory footprint? (I still have no facts)

We should be good there, but definitely let us know what you find.  My profiling with Yourkit had us within 7MB of Tomcat of Heap, but larger on Perm Gen.  This data is from July and is before some of the tuning we've done, but some indication of the profile.

                  Tomcat     TomEE
Heap Space used:   9.3MB      15MB
PermGen used:       15MB      39MB
Classes loaded:    1,913     5,193
Server startup:    341ms    1662ms

The above was with all the sample apps deleted.  I'll see if I can get more current data as well.  The memory is higher than Tomcat, but apparently lower than the other certified servers:

 - http://agoncal.files.wordpress.com/2011/10/2011appservermemory.png
 - http://agoncal.wordpress.com/2011/10/20/o-java-ee-6-application-servers-where-art-thou/

It's really with a few apps deployed that you really start to see the memory profile of the server.  Coming up with a fake app to measure is always really hard.  Getting real app data is a rare treat.

> Maybe you could optimize the resource consumption a bit more e.g. to
> activate even more parts only when they are needed, ... . My first thought
> after installing the first TomEE on a hosted server was where to get a more
> powerful one....
> 
> I think you could catch a lot of Tomcat fans to come over if you would
> really use every small possibility to reduce overhead.

That's the goal and the reason we're still in beta.  We don't want to release a final and have people dislike it for some reason we could fix.  Most people don't come back to look again.  Getting people like yourself to tell us about your experience and try out a few binaries while we make improvements is definitely what we're after at this stage in the game.

> Then you could even call it:
> 
> - "only use what you need" container
> or
> - Bikini container
> or
> - No-fat container
> or
> - Container 0%
> 
> 
> 
> 
> Just one more thing: I didn't get the Tomcat shared classloader working. I
> was used it to put my application jars in a separate lib folder to get
> .war-files smaller. Deployment - especially remote - was a lot faster like
> this...

Thanks, added a JIRA for it:  https://issues.apache.org/jira/browse/TOMEE-147

Feel free to add any details on how you are enabling that.  Feel free to attach any config files.  I know there's a Tomcat doc on it, I'd have to dig to find it.

We've got a setup that can unpack a server, update configs and run tests.  We could set this up and test it in the build.


Thanks again for the feedback!


-David