The tomcat-test.ear is showing that the optimized container
flag is being ignored and all intra-VM calls are going through
the local invoker stack and should be optimized.
However, the times I'm seeing are 10x slower than the optimized
JBoss-2.4.4/Tomcat-4.0.1 times.
JBoss-3.0.0/Tomcat-4.0.2:
NonOptimized: 1.6 ms/call
Optimized: 1.6 ms/call
JBoss-2.4.4/Tomcat-4.0.1:
NonOptimized: 0.782 ms/call
Optimized: 0.156 ms/call
Here is the call stack for the stateless session bean which shows the
call going through the local invoker which does not use marshalling
of the arguments:
at
org.jboss.test.tomcat.ejb.bean.StatelessSessionBean.getClassLoaders(Stateles
sSessionBean.java:97)
at
org.jboss.test.tomcat.ejb.bean.StatelessSessionBean.getMessageAndTrace(State
lessSessionBean.java:52)
at java.lang.reflect.Method.invoke(Native Method)
at
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(Stateles
sSessionContainer.java:623)
at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSe
ssionInstanceInterceptor.java:77)
at
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor
.java:96)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
java:158)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:64)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:12
7)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
at
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.jav
a:289)
at org.jboss.ejb.Container.invoke(Container.java:611)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:114)
at
org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProx
y.java:150)
at org.jboss.proxy.ejb.GenericProxy.invoke(GenericProxy.java:182)
at
org.jboss.proxy.ejb.StatelessSessionProxy.invoke(StatelessSessionProxy.java:
111)
at $Proxy16.getMessageAndTrace(Unknown Source)
at org.jboss.test.tomcat.servlet.HelloEJB.testBean(HelloEJB.java:79)
at org.jboss.test.tomcat.servlet.HelloEJB.doGet(HelloEJB.java:40)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
The simple perf test also shows much slower numbers. This test
includes the RMI roundtrip overhead and 3.0 is 4x slower:
JBoss-3.0.0
[PerfStressTestCase,DEBUG] +++ testTimings()
[PerfStressTestCase,DEBUG] Found ProbeHome @ jndiName=Probe
[PerfStressTestCase,DEBUG] Created Probe
[PerfStressTestCase,DEBUG] Starting 1000 noop() invocations
[PerfStressTestCase,DEBUG] 1000 noop() invocations = 4891 ms, 4 ms/noop
[PerfStressTestCase,DEBUG] Starting 1000 ping(PING) invocations
[PerfStressTestCase,DEBUG] 1000 ping() invocations = 4266 ms, 4 ms/noop
[PerfStressTestCase,DEBUG] Starting 1000 echo(ECHO) invocations
[PerfStressTestCase,DEBUG] 1000 echo() invocations = 4203 ms, 4 ms/noop
JBoss-2.4.4
[junit] +++ testTimings()
[junit] Found ProbeHome @ jndiName=Probe
[junit] Created Probe
[junit] Starting 1000 noop() invocations
[junit] 1000 noop() invocations = 1953 ms, 1 ms/noop
[junit] Starting 1000 ping(PING) invocations
[junit] 1000 ping() invocations = 1937 ms, 1 ms/noop
[junit] Starting 1000 echo(ECHO) invocations
[junit] 1000 echo() invocations = 2141 ms, 2 ms/noop
I'm not inclined to branch for the 3.0 release until I know why
these numbers are so poor.
xxxxxxxxxxxxxxxxxxxxxxxx
Scott Stark
Chief Technology Officer
JBoss Group, LLC
xxxxxxxxxxxxxxxxxxxxxxxx
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development