[ 
https://issues.apache.org/jira/browse/FREEMARKER-80?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16190249#comment-16190249
 ] 

Daniel Dekany commented on FREEMARKER-80:
-----------------------------------------

OK, I got rid of that synchronized call. Please try if it's better with this 
version:
https://dist.apache.org/repos/dist/dev/incubator/freemarker/engine/2.3.27-incubating-SNAPSHOT/

While it's surely bad that {{java.beans.PropertyDescriptor.getReadMethod()}} is 
synchronized (and so I have worked that around), it does very little work 
there, so with only 32 cores it's a little strange that it's an important 
bottle neck. Well, it does {{Reference.get()}} inside it, so who knows... but 
I'm a bit worried that it alone won't fix the performance issue. Anyway, I'm 
also interested what the next bottleneck is.

> Performance bottleneck (from profiling)
> ---------------------------------------
>
>                 Key: FREEMARKER-80
>                 URL: https://issues.apache.org/jira/browse/FREEMARKER-80
>             Project: Apache Freemarker
>          Issue Type: Bug
>          Components: engine
>    Affects Versions: 2.3.26-incubating
>         Environment: Linux, Java 8
>            Reporter: Shevek
>
> Major performance bottleneck running on a 32-core system, limits effective 
> number of threads to about 6: PropertyDescriptor.getReadMethod() is 
> synchronized, and blocks other threads. Partial stack follows:
> java.beans.PropertyDescriptor.getReadMethod()
> BeanModel.invokeThroughDescriptor()
> BeanModel.get()
> Dot._eval()
> I suspect there's a workaround with using a method call directly in the FTL 
> template, but I haven't figured it out yet. However, this is killing our 
> performance. With Velocity, at the cost of a slower renderer, we can run all 
> 32 cores, and get the job done faster.
> I'm not entirely sure how to figure out which piece of FTL is causing this 
> stack.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to