On Feb 8, 2013, at 9:46 AM, Vincent Massol <[email protected]> wrote:

> 
> On Feb 8, 2013, at 12:35 AM, Ludovic Dubost <[email protected]> wrote:
> 
>> 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 ?
> 
> Yes, I had already noticed that. There's a synchronization done on that 
> method that is probably costly. I'll look into it.

I've created and implemented http://jira.xwiki.org/browse/XWIKI-8801

Would be great if you could retest with it.

Thanks
-Vincent

> Thanks
> -Vincent
> 
>> This sounds a lot.
>> 
>> In any case this is food for thoughts for future optimizations.
>> 
>> Ludovic

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to