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

    JBoss Performance.

    lrem

      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

        • 1. Re: JBoss Performance.
          starksm64

          Its slow because CacheKey is creating a serialized
          representation of the PK to try to ensure that equals
          and hashCode operate correctly even if the PK has not
          coded this correctly. This does not work universally
          and should be dropped due to the performance hit.

          • 2. Re: JBoss Performance.
            lrem

            Thanks for the reply Scott,

            Does that mean it is a known issue with JBoss which is under review?

            regards,

            Lachlan