In my previous test, the database was not very optimized. Here is the result with a more optimized mysql 5.1:
15.0% - org.apache.velocity.runtime.parser.node.SimpleNode.render 15.0% - org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate 15.0% - org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate 7.5% - com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate 7.4% - org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString 9.1% - org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate 8.4% - com.xpn.xwiki.render.DefaultVelocityManager.getVelocityEngine 6.2% - java.net.SocketInputStream.socketRead0 5.8% - com.xpn.xwiki.web.XWikiAction.execute 5.3% - org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transformOnce 4.2% - org.apache.velocity.runtime.directive.Foreach.render 4.1% - org.apache.velocity.runtime.parser.node.ASTBlock.render 3.4% - org.xwiki.uiextension.internal.WikiUIExtension.getParameters 3.1% - com.xpn.xwiki.doc.XWikiDocument.getRenderedContent 2.8% - org.xwiki.rendering.wikimodel.xwiki.xwiki21.javacc.XWikiScannerTokenManager.jjMoveNfa_6 2.7% - org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock 2.6% - org.xwiki.rendering.wikimodel.xwiki.xwiki21.javacc.XWikiScanner.docElements 2.4% - com.xpn.xwiki.plugin.lucene.SearchResults.getRelevantResults 2.3% - com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate 2.1% - org.apache.velocity.runtime.directive.RuntimeMacro.render 2.1% - org.xwiki.rendering.wikimodel.xwiki.xwiki21.javacc.XWikiScanner.paragraph 2.0% - com.xpn.xwiki.doc.XWikiDocument.getRenderedTitle 2.0% - org.apache.velocity.runtime.parser.node.ASTMethod.execute We could also look into velocity optimizations. Seems like "SimpleNode.render" has a quite important individual cost. Ludovic 2013/2/8 Ludovic Dubost <[email protected]> > > Hi, > > I've been testing newrelic which has some interesting live JVM analysis. > I've been running the JVM Profiling while running a load test going on > various XWiki pages (except activity stream) including AWM, LiveTable > Searches, Content pages, Lucene search and loading ressources. > > Here is a result of the profiling: > > 25.0% - java.net.SocketInputStream.socketRead0 > 32 Collapsed methods (show) > 25.0% - com.xpn.xwiki.store.hibernate.query.HqlQueryExecutor.execute > 21.0% - org.xwiki.query.internal.DefaultQueryExecutorManager.execute > 11.0% - org.xwiki.query.internal.DefaultQuery.execute > 127 Collapsed methods (show) > 11.0% - java.lang.Thread.run > 9.9% - org.xwiki.query.internal.SecureQueryExecutorManager.execute > 4.2% - com.xpn.xwiki.store.hibernate.query.DefaultQueryExecutor.execute > 12.0% - org.apache.velocity.runtime.parser.node.SimpleNode.render > 12.0% - org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate > 12.0% - org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate > 8.1% - > org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString > 4.3% - com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate > 9.2% - org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate > 8.5% - com.xpn.xwiki.render.DefaultVelocityManager.getVelocityEngine > 4.1% - org.apache.velocity.runtime.parser.node.ASTBlock.render > 4.1% - com.xpn.xwiki.web.XWikiAction.execute > 3.6% - > org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transformOnce > 3.2% - org.apache.velocity.runtime.directive.Foreach.render > 2.9% - > org.xwiki.rendering.wikimodel.xwiki.xwiki21.javacc.XWikiScanner.docElements > 2.8% - com.xpn.xwiki.plugin.lucene.SearchResults.getRelevantResults > 2.6% - com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate > 2.4% - com.mysql.jdbc.PreparedStatement.executeQuery > 2.4% - org.xwiki.uiextension.internal.WikiUIExtension.getParameters > 2.3% - > org.xwiki.rendering.wikimodel.xwiki.xwiki21.javacc.XWikiScanner.line > > My understanding is that we spend 25% of time reading from the DB (this > could be livetable related for instance). Around 50 in various velocity > parts. Around 10% in the XWiki rendering and 3% in Lucene search. 2,4% in > UI extensions (no visible rights, probably because running as Admin) > > Velocity is clearly quite expensive. Now I see particularly: > > 8.5% - com.xpn.xwiki.render.DefaultVelocityManager.getVelocityEngine > > Would this mean we are spending 8,5% of the time getting the velocity > engine to use ? > This sounds a lot. > > In any case this is food for thoughts for future optimizations. > > Ludovic > > -- > Ludovic Dubost > Founder and CEO > Blog: http://blog.ludovic.org/ > XWiki: http://www.xwiki.com > Skype: ldubost GTalk: ldubost > -- Ludovic Dubost Founder and CEO Blog: http://blog.ludovic.org/ XWiki: http://www.xwiki.com Skype: ldubost GTalk: ldubost _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

