Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.3.26-incubating
-
None
-
None
-
Linux, Java 8
Description
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.