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

Reply via email to