On Fri, Nov 18, 2011 at 4:27 PM, Vincent Massol <[email protected]> wrote: > Hi devs, > > I've been finding that Jetty takes a lot of time to start lately. So I've run > some profiling on it. > > Starting Jetty (till the STARTING message) takes 15 seconds on my machine (in > debug mode, we win 3 seconds, ie 12s start time), split like this: > > * 50% of the time spent scanning jars in WEB-INF/lib > (JarInputStream.getNextJar()) - 7s > * 10% in Jetty itself - 2s > * 40% in our code in Extension Manager init (2.5s) and in Component > registration from their annotations (2.5s) - 5s > > If I remove the start of the EM in XWikiServletContextListener, we start in 7 > seconds (instead of 15s) > > If I try to start Jetty without any webapp, it starts in 500ms. > > If I remove the oldcore legacy jar (2.5MB) we win 1 second in start up time. > > Note: This is all before XWiki.init() is called on the first request. > > Analysis of ComponentAnnotationLoader (2.5s): > * 1.2s just loading classes from the CL > * 1s getDeclaredFields (reflection API) > * 800ms initializing SLF4J > > Analysis of Extension Manager init (2.5s): > * In DefaultCoreExtensionScanner.loadExtensions():
It's possible you get better result on this method in general since https://github.com/xwiki/xwiki-platform/commit/3b78001e3add0600467849c25a4d61e7effeb190 > ** 500ms URL.toURI() > ** 500ms MavenXpp3Reader.read() - POM reading > ** 150ms org.Reflections scanning > ** 150ms resource loading from CL (getResourceAsStream()) > * In DefaultExtensionLicenseManager.initialize() > ** 314ms in org.Reflections > * 130ms of loading xwiki.properties > > Conclusion > ========= > > * XWiki's size in number of JARs and their sizes makes it long to start Jetty. > * We could make some small optimizations in EM and Component loading but we > wouldn't win that much, on the order of 2s in total (i.e. 15% of total load > time) > > Thanks > -Vincent > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > -- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

