dev@grizzly.java.net

REST Grizzly Container Perf Issue

From: Jason Lee <jason.d.lee_at_oracle.com>
Date: Fri, 24 Jun 2011 15:26:38 -0500

The REST team is trying to track down the cause of slow startup
performance. In looking at timings, the most expensive operation is
this one:

         ClassLoader originalContextClassLoader =
Thread.currentThread().getContextClassLoader();
         try {
             ClassLoader apiClassLoader = sc.getCommonClassLoader();
             Thread.currentThread().setContextClassLoader(apiClassLoader);
             httpHandler =
ContainerFactory.createContainer(HttpHandler.class, rc); // <-- Here
         } finally {
             
Thread.currentThread().setContextClassLoader(originalContextClassLoader);
         }

where sc is the ServerContext.

What we'd like some help on is determining why the call to
createContainer() takes so long (about 6 seconds). Is there any sort of
guidance you guys can offer us? Can you take a look at your respective
pieces in this operation and see if there's anything that stands out as
a hot spot? I know that's kind of vague, but that's all I know to ask
at this point. Hopefully, my questioning will become more specific as
the discussion progresses. :)

Thanks!

Jason Lee