2 Replies Latest reply on Sep 27, 2001 1:20 PM by Lachlan Macpherson

    JBoss Performance.

    Lachlan Macpherson Newbie

      Hi there,

      I have a question about JBoss Performance. We have been looking at JBoss as a possible Application Server but seem to have come across a bottleneck.

      Running OptimizeIt, we have found that there appears to be a lot of time spent in the CacheKey class which can be shown best by the following Output.

      54.26% - 152249 ms - $Proxy18.getAttributeDefinitions()
       54.26% - 152249 ms - org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke()
       54.26% - 152249 ms - org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer()
       54.26% - 152249 ms - org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke()
       54.26% - 152249 ms - org.jboss.ejb.StatelessSessionContainer.invoke()
       54.26% - 152249 ms - org.jboss.ejb.plugins.LogInterceptor.invoke()
       54.26% - 152249 ms - org.jboss.ejb.plugins.SecurityInterceptor.invoke()
       54.25% - 152239 ms - org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke()
       54.25% - 152239 ms - org.jboss.ejb.plugins.TxInterceptorBMT.invoke()
       54.25% - 152239 ms - org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke()
       54.25% - 152239 ms - java.lang.reflect.Method.invoke()
       54.25% - 152239 ms - com.telelogic.vbs.vm.beans.VMSchemaBean.getAttributeDefinitions()
       54.17% - 151999 ms - $Proxy31.findByPrimaryKey()
       54.16% - 151989 ms - org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invoke()
       54.16% - 151979 ms - org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invokeHome()
       54.16% - 151979 ms - org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome()
       54.08% - 151759 ms - org.jboss.ejb.EntityContainer.invokeHome()
       54.08% - 151759 ms - org.jboss.ejb.plugins.LogInterceptor.invokeHome()
       54.03% - 151619 ms - org.jboss.ejb.plugins.SecurityInterceptor.invokeHome()
       54.03% - 151619 ms - org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome()
       54.03% - 151619 ms - org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions()
       54.03% - 151619 ms - org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext()
       54.03% - 151619 ms - org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome()
       54.03% - 151619 ms - org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome()
       54.03% - 151619 ms - org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome()
       54.03% - 151619 ms - java.lang.reflect.Method.invoke()
       54.03% - 151619 ms - org.jboss.ejb.EntityContainer.find()
       53.95% - 151379 ms - org.jboss.ejb.plugins.CMPPersistenceManager.findEntity()
       52.85% - 148293 ms - org.jboss.ejb.plugins.EntityInstanceCache.createCacheKey()
       52.84% - 148273 ms - org.jboss.ejb.CacheKey.<init>()
       39.69% - 111375 ms - java.rmi.MarshalledObject.<init>()
       39.37% - 110485 ms - java.io.ObjectOutputStream.writeObject()
       39.37% - 110485 ms - java.io.ObjectOutputStream.outputObject()
       39.36% - 110465 ms - java.io.ObjectOutputStream.outputClassDescriptor()
       20.5% - 57534 ms - java.io.ObjectOutputStream.outputClassDescriptor()
       20.48% - 57484 ms - sun.rmi.server.MarshalOutputStream.annotateClass()
       20.33% - 57054 ms - java.rmi.server.RMIClassLoader.getClassAnnotation()
       20.33% - 57054 ms - sun.rmi.server.LoaderHandler.getClassAnnotation()
      


      As you can see, 54% of the thread's time appears to be in the CacheKey class.

      Any ideas as to why this bit of code is so slow?

      regards,

      Lachlan