[richfaces-issues] [JBoss JIRA] Updated: (RF-7621) Very bad startup performance after update from 3.2.2 to 3.3.1

Jay Balunas (JIRA) jira-events at lists.jboss.org
Wed Jul 14 09:44:03 EDT 2010


     [ https://jira.jboss.org/browse/RF-7621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jay Balunas updated RF-7621:
----------------------------

    Fix Version/s: Future_4.X
                       (was: 4.0.0.Milestone2)


> Very bad startup performance after update from 3.2.2 to 3.3.1
> -------------------------------------------------------------
>
>                 Key: RF-7621
>                 URL: https://jira.jboss.org/browse/RF-7621
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: performance
>    Affects Versions: 3.3.1
>         Environment: Linux, Java 1.6.0_14, JBoss 4.2.3.
> JBoss opts:
>   JAVA_OPTS: -Dprogram.name=run.sh -server  -Djava.net.preferIPv4Stack=true -Djdbc.connection.debug=true -Djava.awt.headless=true -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -Xmx1024m -Xms128m -XX:MaxPermSize=200m -XX:+CMSClassUnloadingEnabled -Djava.net.preferIPv4Stack=true
>            Reporter: Daniel Lichtenberger
>            Assignee: Alexander Smirnov
>            Priority: Minor
>             Fix For: Future_4.X
>
>
> After updating from RichFaces 3.2.2 to 3.3.1, I experience a *very* steep drop in startup performance of JBoss 4.2. With an EAR with 5 embedded WAR application, JBoss startup time went from 25 to over 40 seconds (RichFaces is stored in the EAR lib folder and shared by all WARs). The effect is even worse when the Yourkit Java Profiler is attached. The deployment of a WAR pegs one core at 100% for about 5 seconds, as opposed to less than 1 second before.
> When I replace the RF 3.3.1 JARs with the 3.2.2 ones, the startup performance goes back to normal. When I pause the JVM during the WAR startup with RF 3.3, it is always doing some kind of initialization for RichFaces, so I suspect it is a combination of RichFaces changes and JBoss classloading performance. Here's a sample stacktrace from the debugger:
> {code}main at 3, priority=5, in group 'jboss', status: 'RUNNING'
> 	  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> 	  at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
> 	  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> 	  at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> 	  at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1,273)
> 	  at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1,204)
> 	  at org.apache.commons.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205)
> 	  at org.apache.commons.digester.Rule.begin(Rule.java:175)
> 	  at org.apache.commons.digester.Digester.startElement(Digester.java:1,563)
> 	  at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source:-1)
> 	  at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source:-1)
> 	  at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source:-1)
> 	  at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source:-1)
> 	  at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source:-1)
> 	  at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source:-1)
> 	  at org.apache.xerces.parsers.XMLParser.parse(Unknown Source:-1)
> 	  at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source:-1)
> 	  at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source:-1)
> 	  at org.apache.commons.digester.Digester.parse(Digester.java:1,887)
> 	  at org.ajax4jsf.resource.ResourceBuilderImpl.registerConfig(ResourceBuilderImpl.java:209)
> 	  at org.ajax4jsf.resource.ResourceBuilderImpl.registerResources(ResourceBuilderImpl.java:153)
> 	  at org.ajax4jsf.resource.ResourceBuilderImpl.init(ResourceBuilderImpl.java:224)
> 	  at org.ajax4jsf.renderkit.ChameleonRenderKitFactory.<init>(ChameleonRenderKitFactory.java:62)
> 	  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeConstructorAccessorImpl.java:-1)
> 	  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> 	  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> 	  at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> 	  at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:560)
> 	  at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:459)
> 	  at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:260)
> 	  at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:186)
> 	  at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:131)
> 	  at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:202)
> 	  at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:195)
> 	  at org.jboss.web.jsf.integration.config.JBossJSFConfigureListener.contextInitialized(JBossJSFConfigureListener.java:71)
> 	  at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3,856)
> 	  at org.apache.catalina.core.StandardContext.start(StandardContext.java:4,361)
> 	  at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790)
> 	  at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:770)
> 	  at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553)
> 	  at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-1)
> 	  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	  at java.lang.reflect.Method.invoke(Method.java:597)
> 	  at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296)
> 	  at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
> 	  at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> 	  at org.apache.catalina.core.StandardContext.init(StandardContext.java:5,312)
> 	  at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-1)
> 	  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	  at java.lang.reflect.Method.invoke(Method.java:597)
> 	  at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296)
> 	  at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
> 	  at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> 	  at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301)
> 	  at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104)
> 	  at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375)
> 	  at org.jboss.web.WebModule.startModule(WebModule.java:83)
> 	  at org.jboss.web.WebModule.startService(WebModule.java:61)
> 	  at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
> 	  at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
> 	  at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source:-1)
> 	  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	  at java.lang.reflect.Method.invoke(Method.java:597)
> 	  at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> 	  at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> 	  at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
> 	  at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> 	  at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> 	  at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
> 	  at $Proxy0.start(Unknown Source:-1)
> 	  at org.jboss.system.ServiceController.start(ServiceController.java:417)
> 	  at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source:-1)
> 	  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	  at java.lang.reflect.Method.invoke(Method.java:597)
> 	  at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> 	  at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> 	  at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
> 	  at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> 	  at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> 	  at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> 	  at $Proxy44.start(Unknown Source:-1)
> 	  at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466)
> 	  at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-1)
> 	  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	  at java.lang.reflect.Method.invoke(Method.java:597)
> 	  at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> 	  at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> 	  at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
> 	  at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> 	  at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
> 	  at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
> 	  at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
> 	  at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:87)
> 	  at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
> 	  at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
> 	  at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> 	  at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> 	  at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> 	  at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> 	  at $Proxy45.start(Unknown Source:-1)
> 	  at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1,025)
> 	  at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1,015)
> 	  at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
> 	  at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
> 	  at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source:-1)
> 	  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	  at java.lang.reflect.Method.invoke(Method.java:597)
> 	  at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> 	  at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> 	  at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
> 	  at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> 	  at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
> 	  at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> 	  at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> 	  at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> 	  at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> 	  at $Proxy9.deploy(Unknown Source:-1)
> 	  at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
> 	  at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
> 	  at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
> 	  at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)
> 	  at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
> 	  at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
> 	  at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source:-1)
> 	  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	  at java.lang.reflect.Method.invoke(Method.java:597)
> 	  at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> 	  at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> 	  at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
> 	  at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> 	  at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> 	  at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
> 	  at $Proxy0.start(Unknown Source:-1)
> 	  at org.jboss.system.ServiceController.start(ServiceController.java:417)
> 	  at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source:-1)
> 	  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	  at java.lang.reflect.Method.invoke(Method.java:597)
> 	  at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> 	  at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> 	  at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
> 	  at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> 	  at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> 	  at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> 	  at $Proxy4.start(Unknown Source:-1)
> 	  at org.jboss.deployment.SARDeployer.start(SARDeployer.java:304)
> 	  at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1,025)
> 	  at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
> 	  at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
> 	  at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
> 	  at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-1)
> 	  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	  at java.lang.reflect.Method.invoke(Method.java:597)
> 	  at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> 	  at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> 	  at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
> 	  at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> 	  at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
> 	  at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> 	  at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> 	  at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> 	  at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> 	  at $Proxy5.deploy(Unknown Source:-1)
> 	  at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
> 	  at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
> 	  at org.jboss.Main.boot(Main.java:200)
> 	  at org.jboss.Main$1.run(Main.java:508)
> 	  at java.lang.Thread.run(Thread.java:619)
> {code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list