Flow script performance issue

Maxim Borkunov <[email protected]>
Newsgroups gmane.comp.cms.lenya.devel
Message-ID <[email protected]>
Hi,

I am using lenya 2.0.2 (cocoon-2.1.12-dev) and I made some performance tests with jmeter utility. 50 users in the same time walking through a lenya site - that's my jmeter setup.
Unfortunatly, I found a bottleneck. The users (jmeter threads) freeze for a long time at pages that uses flow scripts. Almost all web server socket listener threads at this time shows the point listed below:

Thread [SocketListener0-24] (Suspended)
            FOM_JavaScriptInterpreter.setupContext(Redirector, Context, FOM_JavaScriptInterpreter$ThreadScope) line: 571
            FOM_JavaScriptInterpreter.callFunction(String, List, Redirector) line: 718
            CallFunctionNode.invoke(Environment, InvokeContext) line: 139
            MatchNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], Environment, InvokeContext, String, Map) line: 47
            MatchNode.invoke(Environment, InvokeContext) line: 108
            PipelineNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], Environment, InvokeContext) line: 69
            PipelineNode.invoke(Environment, InvokeContext) line: 143
            PipelinesNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], Environment, InvokeContext) line: 69
            PipelinesNode.invoke(Environment, InvokeContext) line: 93
            ConcreteTreeProcessor.process(Environment, InvokeContext) line: 235
            ConcreteTreeProcessor.process(Environment) line: 177
            TreeProcessor.process(Environment) line: 254
            MountNode.invoke(Environment, InvokeContext) line: 118
            MatchNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], Environment, InvokeContext, String, Map) line: 47
            MatchNode.invoke(Environment, InvokeContext) line: 108
            PipelineNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], Environment, InvokeContext) line: 69
            PipelineNode.invoke(Environment, InvokeContext) line: 143
            PipelinesNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], Environment, InvokeContext) line: 69
            PipelinesNode.invoke(Environment, InvokeContext) line: 93
            ConcreteTreeProcessor.process(Environment, InvokeContext) line: 235
            ConcreteTreeProcessor.process(Environment) line: 177
            TreeProcessor.process(Environment) line: 254
            Cocoon.process(Environment) line: 699
            CocoonServlet.service(HttpServletRequest, HttpServletResponse) line: 1154
            CocoonServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 689
            ServletHolder.handle(ServletRequest, ServletResponse) line: 427
            WebApplicationHandler.dispatch(String, HttpServletRequest, HttpServletResponse, ServletHolder, int) line: 475
            WebApplicationHandler(ServletHandler).handle(String, String, HttpRequest, HttpResponse) line: 567
            PlusWebAppContext(HttpContext).handle(String, String, HttpRequest, HttpResponse) line: 1565
            PlusWebAppContext(WebApplicationContext).handle(String, String, HttpRequest, HttpResponse) line: 635
            PlusWebAppContext(HttpContext).handle(HttpRequest, HttpResponse) line: 1517
            PlusWebAppContext.handle(HttpRequest, HttpResponse) line: 158
            Server(HttpServer).service(HttpRequest, HttpResponse) line: 954
            HttpConnection.service(HttpRequest, HttpResponse) line: 814
            HttpConnection.handleNext() line: 981
            HttpConnection.handle() line: 831
            SocketListener.handleConnection(Socket) line: 244
            SocketListener(ThreadedServer).handle(Object) line: 357
            ThreadPool$PoolThread.run() line: 534


Is that synchronization in the org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter class important?
Could you please advise how can I solve this performance problem?

P.S. I sent the same message to cocoon dev mailing list but there is no response yet.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.