Would be great to at least some of the performance work into the 1.0.0 binaries 
as there's a bit over 3x increase in Eclipse startup time and a bit over 2x in 
regular startup time.

Aside from performance I did find two bugs:

  - Web.xml metadata-complete effectively ignore
    https://issues.apache.org/jira/browse/TOMEE-166

  - Omitting <ejb-name> from xml may result in failed deployment
    https://issues.apache.org/jira/browse/OPENEJB-1830

OPENEJB-1830 is not terrible, but TOMEE-166 is pretty bad.  The point of 
metadata-complete is to avoid scanning and quite simply it doesn't result in 
scanning being avoided.

We pass the related TCK tests because we correctly ignore the data we've 
scanned, but applications still have to pay the full price of scanning 
regardless.

A lot of the overall improvements were in the .tld file area.  Those were the 
changes that bought us the most time (over a second off of startup and 
redeploys)

Those are fantastic optimizations, not the "our stuff will be fast, but yours 
will be slow" kind.  If you add a ton of tld libraries in tomcat/lib/, your 
apps will start much faster than they even do in plain Tomcat because of these 
optimizations.

In short, we cache the results of the scan (just the urls, not the file 
contents) and report that back anytime someone asks.  If you have 5 apps, you 
get a 5x improvement on scanning of shared tld libs.  This works regardless of 
how they're shared too.  So if you add a common classloader, for example, 
children of that classloader won't have to each individually scan the common 
classloader on each deploy.



-David

Reply via email to